J'ai effectué une analyse en composantes principales (ACP) avec R en utilisant deux fonctions différentes ( prcomp
et princomp
) et j'ai observé que les scores de l'ACP différaient par leur signe. Comment cela peut-il être?
Considère ceci:
set.seed(999)
prcomp(data.frame(1:10,rnorm(10)))$x
PC1 PC2
[1,] -4.508620 -0.2567655
[2,] -3.373772 -1.1369417
[3,] -2.679669 1.0903445
[4,] -1.615837 0.7108631
[5,] -0.548879 0.3093389
[6,] 0.481756 0.1639112
[7,] 1.656178 -0.9952875
[8,] 2.560345 -0.2490548
[9,] 3.508442 0.1874520
[10,] 4.520055 0.1761397
set.seed(999)
princomp(data.frame(1:10,rnorm(10)))$scores
Comp.1 Comp.2
[1,] 4.508620 0.2567655
[2,] 3.373772 1.1369417
[3,] 2.679669 -1.0903445
[4,] 1.615837 -0.7108631
[5,] 0.548879 -0.3093389
[6,] -0.481756 -0.1639112
[7,] -1.656178 0.9952875
[8,] -2.560345 0.2490548
[9,] -3.508442 -0.1874520
[10,] -4.520055 -0.1761397
Pourquoi les signes ( +/-
) diffèrent-ils pour les deux analyses? Si j’utilisais alors les composantes principales PC1
et PC2
comme prédicteurs dans une régression, c’est-à-dire que lm(y ~ PC1 + PC2)
cela changerait complètement ma compréhension de l’effet des deux variables sur la y
méthode que j’ai utilisée! Comment puis-je dire que cela PC1
a, par exemple, un effet positif y
et PC2
un effet négatif sur y
?
En outre: si le signe des composants PCA n'a pas de sens, est-ce vrai aussi pour l'analyse factorielle (FA)? Est-il acceptable d'inverser (inverser) le signe des scores individuels des composants PCA / FA (ou des chargements, en tant que colonne de la matrice de chargement)?
la source
Réponses:
PCA est une simple transformation mathématique. Si vous modifiez les signes du ou des composants, vous ne modifiez pas la variance contenue dans le premier composant. De plus, lorsque vous changez les signes, les poids (
prcomp( ... )$rotation
) changent également les signes, l'interprétation reste donc exactement la même:spectacles
et
pca2$loadings
montrerAlors, pourquoi l'interprétation reste-t-elle la même?
Vous faites la régression PCA de la
y
composante 1. Dans la première version (prcomp
), supposons que le coefficient soit positif: plus la composante 1 est grande, plus le y est grand. Qu'est-ce que cela signifie quand il s'agit des variables d'origine? Le poids de la variable 1 (1:10
en a) étant positif, cela montre que plus la variable 1 est grande, plus le y est grand.Maintenant, utilisez la deuxième version (
princomp
). Puisque le composant a changé de signe, plus le y est grand, plus le composant 1 est petit - le coefficient de y <sur PC1 est maintenant négatif. Mais le chargement de la variable 1 l'est aussi. cela signifie que plus la variable 1 est grande, plus la composante 1 est petite, plus y est grand - l'interprétation est la même.La meilleure façon de voir cela est peut-être d'utiliser un biplot.
spectacles
Le même biplot pour la deuxième variante montre
Comme vous le voyez, les images pivotent de 180 °. Cependant, la relation entre les poids / charges (les flèches rouges) et les points de données (les points noirs) est exactement la même; ainsi, l'interprétation des composants est inchangée.
la source
princomp
. Ainsi, lors de la projection, mes données projetées sont également inversées dans certaines dimensions. Mon objectif est de faire la classification sur les coefficients. Le signe n'a toujours pas d'importance ici?Cette question se demande beaucoup sur ce forum, donc je voudrais compléter @ excellente réponse de Janvier avec un peu des considérations plus générales.
À la fois l’analyse en composantes principales (ACP) et l’analyse factorielle (AF), nous utilisons les variables originalesX1, x2, . . . Xré estimer plusieurs composantes latentes (ou variables latentes) z1, z2, . . . zk . These latent components are given by PCA or FA component scores. Each original variable is a linear combination of these components with some weights: for example the first original variable x1 might be well approximated by twice z1 plus three times z2 , so that x1≈2z1+3z2 . If the scores are standardized, then these weights (2 and 3 ) are known as loadings. So, informally, one can say that
From here we can see that if we take one latent component, e.g.z1 , and flip the sign of its scores and of its loadings, then this will have no influence on the outcome (or interpretation), because
The conclusion is that for each PCA or FA component, the sign of its scores and of its loadings is arbitrary and meaningless. It can be flipped, but only if the sign of both scores and loadings is reversed at the same time.
la source
princomp
. So during the projection, my projected data are also flipped in sign in some of the dimensions. My goal is to do classification on the coefficients. The sign still doesn't matter here?This was well answered above. Just to provide some further mathematical relevance, the directions that the principal components act correspond to the eigenvectors of the system. If you are getting a positive or negative PC it just means that you are projecting on an eigenvector that is pointing in one direction or180∘ away in the other direction. Regardless, the interpretation remains the same! It should also be added that the lengths of your principal components are simply the eigenvalues.
la source