Cette question concerne en grande partie les définitions de PCA / FA, les opinions peuvent donc différer. Mon opinion est que PCA + varimax ne devrait pas être appelé PCA ou FA, mais plutôt explicitement désigné, par exemple, comme "PCA à rotation Varimax".
Je devrais ajouter que c'est un sujet assez déroutant. Dans cette réponse , je veux expliquer ce qu'est une rotation en fait est ; cela nécessitera quelques mathématiques. Un lecteur occasionnel peut passer directement à l'illustration. Ce n’est qu’alors que nous pourrons discuter de la question de savoir si la rotation de la PCA + doit ou non être appelée "PCA".
Une référence est l'ouvrage de Jolliffe "Analyse en composantes principales", section 11.1 "Rotation des composantes principales", mais j'estime que cela pourrait être plus clair.
Soit une matrice de données que nous supposons centrée. PCA correspond ( voir ma réponse ici ) à une décomposition en valeurs singulières: . Il existe deux vues équivalentes mais complémentaires sur cette décomposition: une vue "projection" de style plus PCA et une vue "variables latentes" de style plus FA. n × p X = U S V ⊤Xn×pX=USV⊤
Selon la vue PCA-style, nous avons trouvé un tas de directions orthogonales (ce sont des vecteurs propres de la matrice de covariance, également appelée "directions principales" ou "axes"), et "composantes principales" ( également appelés «scores» de la composante principale) sont des projections des données sur ces directions. Les composantes principales ne sont pas corrélées, la première a une variance maximale possible, etc. On peut écrire:U S X = U S ⋅ V ⊤ = Scores ⋅ __gVirt_NP_NNS_NNPS<__ directions principales .VUS
X=US⋅V⊤=Scores⋅Principal directions.
Selon la vue de type FA, nous avons trouvé des "facteurs latents" de variance unitaire non corrélés qui génèrent les variables observées via des "chargements". En effet, sont des composantes principales normalisées (non corrélées et avec variance unitaire), et si nous définissons les chargements comme suit: , puis (Notez que .) Les deux vues sont équivalentes. Notez que les chargements sont des vecteurs propres mis à l'échelle par les valeurs propres respectives ( sont des valeurs propres de la matrice de covariance).L=VS/ √U˜=n−1−−−−−√U X= √L=VS/n−1−−−−−√S ⊤=SS/ √
X=n−1−−−−−√U⋅(VS/n−1−−−−−√)⊤=U˜⋅L⊤=Standardized scores⋅Loadings.
S⊤=SS/n−1−−−−−√
(Je devrais ajouter entre parenthèses que PCA FA≠ ; FA vise explicitement à trouver des facteurs latents mappés linéairement aux variables observées via des chargements; il est plus souple que PCA et donne des chargements différents. C’est pourquoi je préfère appeler cela plus haut. "Vue de style FA sur PCA" et non pas FA, même si certaines personnes le considèrent comme l’une des méthodes FA.)
Maintenant, que fait une rotation? Par exemple, une rotation orthogonale, telle que varimax. Premièrement, elle ne considère que composants, c.-à-d.:Ensuite, il faut un carré orthogonal matrice , et branche dans cette décomposition: où les rotations sont données park<p
X≈UkSkV⊤k=U˜kL⊤k.
k×kTTT⊤=IX≈UkSkV⊤k=UkTT⊤SkV⊤k=U˜rotL⊤rot,
~ U r o t = ~ U k T T L r o tLrot=LkTEt mis en rotation des notes normalisées sont données par . (Le but de ceci est de trouver telle sorte que soit aussi proche que possible de la plus petite densité possible, afin de faciliter son interprétation.)
U˜rot=U˜kTTLrot
Notez que ce qui est en rotation sont: (1) les scores standardisés, (2) les chargements. Mais pas les scores bruts et pas les directions principales! Donc, la rotation a lieu dans l' espace latent , pas dans l'espace d'origine. C'est absolument crucial.
Du point de vue de la FA, il ne s'est pas passé grand chose. (A) Les facteurs latents ne sont toujours pas corrélés et standardisés. (B) Ils sont toujours mappés sur les variables observées via des chargements (en rotation). (C) La quantité de variance capturée par chaque composante / facteur est donnée par la somme des valeurs au carré de la colonne de chargements correspondante dans . (D) Géométriquement, les chargements couvrent toujours le même sous-espace dimensionnel dans (le sous-espace recouvert par les premiers vecteurs propres PCA). (E) L’approximation de et l’erreur de reconstruction n’ont pas changé du tout. (F) La matrice de covariance est toujours aussi approchée: k R p k X Σ≈ L k L ⊤ k = L r o t L ⊤ r o t .LrotkRpkX
Σ≈LkL⊤k=LrotL⊤rot.
Mais le point de vue de la PCA s'est pratiquement effondré. Les chargements pivotés ne correspondent plus aux directions / axes orthogonaux dans , c'est-à-dire que les colonnes de ne sont pas orthogonales! Pire, si vous projetez [orthogonalement] les données dans les directions données par les chargements pivotés, vous obtiendrez des projections corrélées (!) Et ne pourrez pas récupérer les scores. [Au lieu de cela, pour calculer les scores normalisés après rotation, il faut multiplier la matrice de données avec le pseudo-inverse des chargements . Alternativement, on peut simplement faire pivoter les partitions standardisées originales avec la matrice de rotation:L r o tRpLrotU˜rot=X(L+rot)⊤U˜rot=U˜T ] De plus, les composants pivotés ne capturent pas successivement la quantité maximale de variance: la variance est redistribuée entre les composants (même bien que toutes les composantes tournées capturent exactement la même variance que toutes les composantes principales originales).kk
Voici une illustration. Les données sont une ellipse 2D étendue le long de la diagonale principale. La première direction principale est la diagonale principale, la seconde lui est orthogonale. Les vecteurs de chargement PCA (vecteurs propres mis à l'échelle par les valeurs propres) sont indiqués en rouge - pointant dans les deux sens et également étirés d'un facteur de visibilité constant. Ensuite, j'ai appliqué une rotation orthogonale de aux chargements. Les vecteurs de charge résultants sont affichés en magenta. Notez comme ils ne sont pas orthogonaux (!).30∘
Une intuition de style FA est la suivante: imaginez un "espace latent" où les points remplissent un petit cercle (proviennent d’un gaussien 2D avec des variances unitaires). Cette distribution de points est ensuite étirée le long des chargements PCA (en rouge) pour devenir l'ellipse de données que nous voyons sur cette figure. Cependant, la même distribution de points peut être pivotée puis étirée le long des chargements PCA pivotés (magenta) pour devenir la même ellipse de données .
[Pour voir réellement qu'une rotation orthogonale de chargements est une rotation , il faut regarder un biplot PCA; là, les vecteurs / rayons correspondant aux variables d’origine se déplaceront simplement.]
Résumons. Après une rotation orthogonale (telle que varimax), les axes "rotation principale" ne sont pas orthogonaux et leur projection orthogonale n’a aucun sens. Il faut donc laisser tomber ce point de vue des axes / projections. Il serait étrange de l’appeler encore PCA (ce qui est tout à propos de projections avec variance maximale, etc.).
Du point de vue de FA, nous avons simplement fait pivoter nos facteurs latents (normalisés et non corrélés), ce qui est une opération valide. Il n'y a pas de "projections" dans FA; au lieu de cela, les facteurs latents génèrent les variables observées via des chargements. Cette logique est encore préservée. Cependant, nous avons commencé avec les composantes principales, qui ne sont pas réellement des facteurs (l’ACP n’est pas identique à l’AC). Il serait donc étrange d'appeler cela aussi FA.
Au lieu de débattre de la question de savoir si un "devrait" plutôt appeler PCA ou FA, je suggérerais d’être méticuleux pour spécifier la procédure exacte utilisée: "PCA suivie d’une rotation varimax".
Post Scriptum. Il est possible de considérer une autre procédure de rotation, où est inséré entre et . Cela ferait tourner les scores bruts et les vecteurs propres (au lieu des scores et des chargements standardisés). Le plus gros problème de cette approche est qu’après une telle "rotation", les scores ne seront plus décorrélés, ce qui est assez fatal pour PCA. On peut le faire, mais ce n’est pas ainsi que les rotations sont généralement comprises et appliquées.TT⊤USV⊤