En utilisant ces données:
head(USArrests)
nrow(USArrests)
Je peux faire un PCA ainsi:
plot(USArrests)
otherPCA <- princomp(USArrests)
Je peux intégrer les nouveaux composants
otherPCA$scores
et la proportion de variance expliquée par les composantes avec
summary(otherPCA)
Mais que faire si je veux savoir quelles variables sont principalement expliquées par quels composants principaux? Et vice versa: par exemple, PC1 ou PC2 est-il principalement expliqué par murder
? Comment puis-je faire ceci?
Puis-je dire par exemple que PC1 est expliqué à 80% par murder
ou assault
?
Je pense que les chargements m'aident ici, mais ils montrent la directionnalité et non la variance expliquée telle que je la comprends, par exemple
otherPCA$loadings
Loadings:
Comp.1 Comp.2 Comp.3 Comp.4
Murder 0.995
Assault -0.995
UrbanPop -0.977 -0.201
Rape -0.201 0.974
r
pca
dimensionality-reduction
regression-strategies
user1320502
la source
la source
Réponses:
Vous avez raison, les chargements peuvent vous aider ici. Ils peuvent être utilisés pour calculer la corrélation entre les variables et les principaux composants. De plus, la somme des charges au carré d'une variable sur toutes les composantes principales est égale à 1. Par conséquent, les charges au carré vous indiquent la proportion de variance d'une variable expliquée par une composante principale.
Le problème avec princomp est qu'il ne montre que les chargements "très élevés". Mais comme les chargements ne sont que les vecteurs propres de la matrice de covariance, on peut obtenir tous les chargements en utilisant la
eigen
commande dans R:Maintenant, vous avez les informations souhaitées dans la matrice
explvar
.la source
assault
ouurban pop
nous pourrions le faire? partiellement confus car il n'y a qu'une seule corrélation présente dans la matrice pourassault
Je pense que la réponse acceptée peut être dangereusement trompeuse (-1). Il y a au moins quatre questions différentes mélangées dans le PO. Je les considérerai l'un après l'autre.
De plus, si l'ACP est effectuée sur des covariances (et non sur des corrélations), les chargements vous donneront également des covariances, pas des corrélations. Pour obtenir des corrélations, il faut les calculer manuellement, en suivant PCA. [La réponse actuellement acceptée n'est pas claire à ce sujet.]
Comment sélectionner un sous-ensemble expliquant la quantité donnée de variance, a été suggéré par @FrankHarrell (+1).
la source
la source
Les données sur les arrestations américaines regroupées avec R ne sont qu'un exemple ici, mais je note que les calculs de charges dans la question proviennent d'une ACP de la matrice de covariance . C'est quelque part entre arbitraire et absurde, car les variables sont mesurées à différentes échelles.
La population urbaine ressemble à un pourcentage. La Californie est de 91% et plus.
Les trois variables de la criminalité semblent être le nombre d'arrestations de délits exprimé par rapport à la taille de la population (vraisemblablement pour une certaine période). Vraisemblablement, il est documenté quelque part, que ce soit des arrestations pour 1000 ou 10000 ou autre chose.
La moyenne de la variable d'agression dans les unités données est d'environ 171 et le meurtre moyen est d'environ 8. Ainsi, l'explication de vos charges est qu'en grande partie le modèle est un artefact: il dépend de la variabilité très différente des variables.
Ainsi, bien qu'il y ait un sens dans les données en ce qu'il y a beaucoup plus d'arrestations pour voies de fait que pour meurtres, etc., ce fait connu (ou sans surprise) domine l'analyse.
Cela montre que, comme partout ailleurs dans les statistiques, vous devez penser à ce que vous faites dans une ACP.
Si vous allez plus loin:
Je dirais que le pourcentage urbain est mieux exclu de l'analyse. Ce n'est pas un crime d'être urbain; il pourrait bien entendu servir de proxy pour les variables influençant la criminalité.
Une ACP basée sur une matrice de corrélation aurait plus de sens à mon avis. Une autre possibilité est de travailler avec des logarithmes des taux d'arrestation et non des taux d'arrestation (toutes les valeurs sont positives; voir ci-dessous).
Remarque: la réponse de @ random_guy utilise délibérément la matrice de covariance.
Voici quelques statistiques sommaires. J'ai utilisé Stata, mais c'est assez immatériel.
la source