Un mercado, unos pocos temas y una cola larga
Estandarice cada columna de rendimientos (media 0, desviación típica 1) y llame Z al resultado, con n días y p activos. La matriz de correlación es C=ZᵀZ/n. Una componente principal es un vector propio vⱼ de C: la dirección del espacio de activos en la que los rendimientos estandarizados varían más, luego más entre las direcciones perpendiculares a la primera, y así sucesivamente. Su valor propio λⱼ es la varianza a lo largo de esa dirección, los valores propios suman p (la varianza total de p columnas estandarizadas) y λⱼ/p es la razón de varianza explicada. La puntuación Z vⱼ es la serie temporal de esa componente. numpy.linalg.eigh devuelve los valores propios en orden creciente, así que ordénelos de mayor a menor; el signo de un vector propio es arbitrario, así que fije una convención (por ejemplo la mayor componente positiva) antes de comparar con nada.
Conservar solo las k primeras componentes reconstruye los datos como Ẑ=Z VₖVₖᵀ. El error cuadrático medio de la reconstrucción es la varianza descartada dividida por p: 1/pΣ_(j>k)λⱼ. En los últimos 2.500 días de negociación de 61 acciones y ETF, la primera componente lleva el 37,4 % de la varianza y las cuatro siguientes el 7,3 %, 6,2 %, 3,3 % y 2,8 %. La primera puntuación tiene una correlación de 0,998 con el rendimiento medio equiponderado: es el mercado, hallado sin decírselo. Las siguientes componentes son temas sectoriales y de estilo. Aun así la cola es pesada: 3 componentes dan la mitad de la varianza, pero hacen falta 22 para el 80 % y 34 para el 90 %, y el error de reconstrucción es 0,626 con una componente, 0,430 con cinco y 0,213 con veinte. El PCA comprime la parte común del mercado; no hace que 61 activos parezcan tres.
- Estandarice y luego diagonalice la matriz de correlación; los valores propios suman el número de activos.
- Los signos son arbitrarios: fije una convención y compare vectores por coseno absoluto.
- La primera componente de los rendimientos de acciones es el mercado; la cola de pequeñas componentes aún importa.
Lab: qué se califica
- Estandarizar10 pts
- La descomposición en valores propios20 pts
- Varianza explicada10 pts
- Comprobación contra scikit-learn15 pts
- Cuántas componentes10 pts
- Error de reconstrucción15 pts
- El estudio20 pts