Analyse en composantes principales
Pourquoi changer de dimension ?
Travailler avec un grand nombre de variables peut poser plusieurs problèmes pratiques et théorique :
Visualisation compliquée : il est impossible de représenter visuellement des données au-delà de 3 dimensions.
Séparation des classes difficile : dans des problèmes de classification, la séparation entre les groupes peut être cachée dans une combinaison de variables plutôt que dans les variables prises individuellement.
Coût computationnel élévé : des modèles complexes peuvent devenir difficiles à ajuster lorsque le nombre de variables est grand.
Corrélations fortes : des variables redondantes rendent les modèles instables ou difficiles à interpréter.
La question naturelle à se poser est donc : peut-on réduire la dimension du jeu de données sans perdre trop d’information ?
Réduire la dimension, ce n’est pas simplement la suppression de variables. En effet, cela risquerait de faire disparaître de l’information pouvant être utile au modèle. Une meilleure approche consiste à construire de nouvelles variables, obtenues comme combinaisons linéaires des variables initiales, qui résument l’information essentielle du jeu de données. Une méthode possible pour cela est l’Analyse en Composantes Principales (ACP).
Analyse en composantes principales
L’ACP est une méthode non-supervisée (sans variables à expliquer) permettant de réduire la dimension d’un jeu de données tout en conservant le plus d’information possible. Cette méthode est utilisée lorsque l’on dispose de \(n\) observations de \(p\) variables numériques continues avec \(p\) trop “grand” pour permettre une modélisation ou une visualisation efficace. La méthode a été introduite par dans Hotelling (1933).
Formulation mathématique
Soit un vecteur aléatoire composé de \(p\) variables \(X = \left( X_{1}, \dots, X_p \right)^{\top}\), centré et ayant comme matrice de variance-covariance \(\Sigma\). Notons \(\alpha_{1} = \left( \alpha_{11}, \dots, \alpha_{1p} \right)^{\top}\), un vecteur de coefficients. On cherche une combinaison linéaire
\[Y_{1} = \alpha_{1}^{\top} X = \sum_{k = 1}^{p} \alpha_{1k}X_k,\]
telle que la variance de \(Y_{1}\) soit maximale. L’idée est simple: on désire combiner \(p\) variables en une seule, mais en “capturant” la plus grande partie possible de la variabilité.
Il faut d’abord ajouter une contrainte sur \(\alpha_{1}\), puisque sinon on n’aurait qu’à prendre \(\alpha_{1k} = \pm \infty\) et on aurait \(\mathrm{Var}(Y_{1}) = +\infty\) ce qui est définitivement maximal ! On contraint donc \(\alpha_{1}\) de sorte qu’il ait une norme égale à \(1\).
Cela revient à calculer : \[\max_{\alpha_1^\top \alpha_1 = 1} \mathrm{Var}(Y_1) = \max_{\alpha_1^\top \alpha_1 = 1} \alpha_1^\top \Sigma \alpha_{1}.\]
Ce problème se résout par les multiplicateurs de Lagrange. Il conduit à l’équation \[\Sigma \alpha_1 = \lambda_{1} \alpha_{1},\] où \(\lambda_{1}\) est la plus grande valeur propre de \(\Sigma\) et \(\alpha_{1}\) le vecteur propre associé.
On définit ainsi la première composante principale. On construit les suivantes en imposant des conditions d’orthogonalité (indépendance linéaire) avec les précédentes, ce qui revient à chercher les vecteurs propres suivants : \[\Sigma \alpha_k = \lambda_k \alpha_k, \quad \text{avec}\quad \lambda_{1} \geq \lambda_2 \geq \dots \lambda_p.\] Les composantes principales sont donc données par \[Y_k = \alpha_k^\top X, \quad\text{avec } \alpha_k \text{ vecteur propre associé à } \lambda_k.\]
Il est possible d’avoir une représentation plus compacte de l’ACP à l’aide de matrices. Soit \(A = \left( \alpha_{1}, \dots, \alpha_p \right) \in \mathbb{R}^{p \times p}\), la matrice dont les colonnes sont les vecteurs propres. On a \(Y = AX\) et la covariance des composantes principales s’écrit \[\mathrm{Var}(Y) = A^\top \Sigma A.\]
Une mesure globale de la variation presente dans les données est donnée par la trace de la matrice \(\Sigma\): \[\text{tr}(\Sigma) = \text{tr}(\Lambda) = \sum_{i = 1}^{p} \lambda_i = \sum_{k = 1}^{p} \mathrm{Var}(Y_k).\]
La proportion de variation expliquée par la composante principale \(Y_k\) est donc donnée par le ratio entre la valeur propre \(k\) et la somme des valeurs propres : \[\frac{\lambda_k}{\lambda_{1} + \cdots + \lambda_p} = \frac{\mathrm{Var}(Y_k)}{\text{tr}(\Sigma)}.\]
De façon similaire, les \(m\) premières composantes expliquent \[100\% \times \frac{\sum_{k = 1}^{m} \lambda_k}{\sum_{k = 1}^{p} \lambda_k} = 100\% \times \frac{\sum_{k = 1}^{m} \mathrm{Var}(Y_k)}{\sum_{k = 1}^{p} \mathrm{Var}(Y_k)}\] de la variabilité dans les variables.
Pratique de l’ACP
Estimation de la matrice de variance-covariance
En pratique, la matrice de variance-covariance \(\Sigma\) est inconnue. Pour faire une ACP, il est nécessaire d’estimer \(\Sigma\) à partir d’un échantillon aléatoire \(X_{1}, \dots, X_n\) de réalisation indépendante de \(X\). Un estimateur (sans biais) de \(\Sigma\) est donné par \[\widehat{\Sigma} = \frac{1}{n - 1} \sum_{i = 1}^{n} \left( X_i - \overline{X} \right)\left( X_i - \widehat{X} \right)^{\top},\] où \(\overline{X}\) est la moyenne empirique de l’échantillon.
La matrice \(\widehat{\Sigma}\) ainsi obtenue est symétrique à coefficients réels donc diagonalisable. Elle admet une décomposition spectrale de la forme \[\widehat{\Sigma} = \widehat{A} \widehat{\Lambda} \widehat{A}^{\top},\] où \(\widehat{A}\) est une matrice orthogonale dont les colonnes sont les estimateurs des vecteurs propres de \(\Sigma\) et \(\widehat{\Lambda}\) est une matrice diagonale contenant les estimateurs des valeurs propres de \(\Sigma\), supposées ordonnées de façon décroissante.
Les composantes principales sont obtenues en projetant les observations \(X_i\) dans la base des vecteurs propres : \[Y_i = \widehat{A}^{\top} X_i.\]
Quelques remarques
Choix du nombre de composantes
Un enjeu central en ACP est de choisir combien de composantes principales retenir. En conserver trop ne réduit pas la dimension et en conserver trop peu peut faire perdre de l’information pertinente. Voici les principales règles empiriques utilisées :
Règle des \(80\%\) : Retenir le nombre minimal de composantes nécessaires pour expliquer au moins \(80\%\) de la variance totale. Ce seuil est arbitraire, mais il donne souvent une bonne intuition.
Règle de Kaiser : Si l’ACP est faite à partir de la matrice des corrélations, alors la moyenne des valeurs propres vaut \(1\). On recommande de ne garder que les composantes ayant une valeur propre supérieure à la moyenne des valeurs propres, soit \(1\).
Règle de Joliffe : Variante plus stricte de la règle de Kaiser, qui suggère de conserver les composantes avec une valeur propre supérieure à \(0.7\) pour une ACP faite avec la matrice des corrélations.
Règle de Cattell (ou du coude) : On trace les valeurs propres \(\lambda_k\) en fonction de leur rang \(k\) et on cherche un point de rupture dans la décroissance. Au-delà de ce point, les composantes supplémentaires expliquent peu de variance supplémentaire.
Ces règles sont des outils d’aide à la décision, mais le choix du nombre de composantes dépend aussi du contexte, des objectifs de l’analyse, et de la facilité d’interprétation.
