Un marché, quelques thèmes et une longue traîne
Standardisez chaque colonne de rendements (moyenne 0, écart type 1) et appelez Z le résultat, avec n jours et p actifs. La matrice de corrélation est C=ZᵀZ/n. Une composante principale est un vecteur propre vⱼ de C : la direction de l'espace des actifs selon laquelle les rendements standardisés varient le plus, puis le plus parmi les directions orthogonales à la première, et ainsi de suite. Sa valeur propre λⱼ est la variance le long de cette direction, les valeurs propres somment à p (la variance totale de p colonnes standardisées), et λⱼ/p est le ratio de variance expliquée. Le score Z vⱼ est la série temporelle de cette composante. numpy.linalg.eigh renvoie les valeurs propres par ordre croissant, donc triez-les en décroissant ; le signe d'un vecteur propre est arbitraire, fixez donc une convention (par exemple la plus grande composante positive) avant de comparer à quoi que ce soit.
Ne garder que les k premières composantes reconstruit les données par Ẑ=Z VₖVₖᵀ. L'erreur quadratique moyenne de la reconstruction est la variance écartée divisée par p : 1/pΣ_(j>k)λⱼ. Sur les 2 500 derniers jours de bourse de 61 actions et ETF, la première composante porte 37,4 % de la variance et les quatre suivantes 7,3 %, 6,2 %, 3,3 % et 2,8 %. Le premier score a une corrélation de 0,998 avec le rendement moyen équipondéré : c'est le marché, trouvé sans qu'on le dise. Les composantes suivantes sont des thèmes sectoriels et de style. Pourtant la queue est lourde : 3 composantes donnent la moitié de la variance, mais il en faut 22 pour 80 % et 34 pour 90 %, et l'erreur de reconstruction vaut 0,626 avec une composante, 0,430 avec cinq et 0,213 avec vingt. L'ACP comprime la partie commune du marché ; elle ne fait pas ressembler 61 actifs à trois.
- Standardisez, puis diagonalisez la matrice de corrélation ; les valeurs propres somment au nombre d'actifs.
- Les signes sont arbitraires : fixez une convention et comparez les vecteurs par cosinus absolu.
- La première composante des rendements d'actions est le marché ; la queue de petites composantes compte encore.
Lab : ce qui est noté
- Standardiser10 pts
- La diagonalisation20 pts
- Variance expliquée10 pts
- Contrôle contre scikit-learn15 pts
- Combien de composantes10 pts
- Erreur de reconstruction15 pts
- L'étude20 pts