# What variables explain which PCA components?

Using this data:

head(USArrests)
nrow(USArrests)


I can do a PCA as thus:

plot(USArrests)
otherPCA <- princomp(USArrests)


I can get the new components in

otherPCA$scores  and the proportion of variance explained by components with summary(otherPCA)  But what if I want to know which variables are most explained by what axis. i.e. is PCA1 or PCA2 mostly explained by murder, how can do do this? Can I say for instance PCA1 is 80% explained by murder or assault? I think the loadings help me here, but they show the directionality not the variance explained as i understand it, e.g. otherPCA$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

-

You are right, the loadings can help you here. They show the correlation between the variables and the principal components. Moreover, the sum of the squared loadings of one variable over all principal components is equal to 1. Hence, the squared loadings tell you the proportion of variance of one variable explained by one principal component.

The problem with princomp is, it only shows the "very high" loadings. But since the loadings are just the eigenvectors of the covariance matrix, one can get all loadings using the eigen command in R:

 loadings <- eigen(cov(USArrests))\$vectors


Now, you have the desired information in the matrix "explvar".

-
thank you random guy, could you possibly show me for example assault or urban pop we could do this? partly confused because there is only one correlation present in the matrix for assault –  user1320502 Feb 18 at 16:10
Sorry, I improved my answer and did not notice you commented my post already. assault loads with -0.995 on PC1. Thus, one can conclude after squaring this value PC1 explains 99% of the variance of the variable assault. After squaring the values of urban pop, you can conclude PC3 explains 4% and PC2 95.5% of the variance of urban pop. –  random_guy Feb 18 at 16:24