I am trying to perform PCA with varimax rotation on a set of data with 2 variables, in order to orthogonalise them (not for dimension reduction). I used prcomp()
to perform PCA and it gave me results like this:
> print(variable.pca)
Standard deviations:
[1] 1.1104314 0.8420727
Rotation:
PC1 PC2
LogFreq -0.6646101 -0.7471903
Simulation -0.7471903 0.6646101
> summary(variable.pca)
Importance of components:
PC1 PC2
Standard deviation 1.1104 0.8421
Proportion of Variance 0.6349 0.3651
Cumulative Proportion 0.6349 1.0000
Then I applied varimax()
to the variable.pca$rotation. And here's the results:
$loadings
Loadings:
PC1 PC2
LogFreq -0.665 -0.747
Simulation -0.747 0.665
PC1 PC2
SS loadings 1.0 1.0
Proportion Var 0.5 0.5
Cumulative Var 0.5 1.0
$rotmat
[,1] [,2]
[1,] 1.000000e+00 -7.142042e-16
[2,] 7.142042e-16 1.000000e+00
This result is completely uninterpretable to me. I thought that, after varimax rotation, one variable should load heavily on one factor and nearly 0 on the other factor, whereas the other variable should be the reverse. Was there something I did wrong? Or should I not use prcomp()
to perform orthogonalisation? I'm pretty new to using PCA for orthogonalisation.
prcomp
works only, if there are more than 2 factors/axes? $$ \small \text{loadings = csvdatei("clip") }\\ \small \text{load1 = rot(loadings,"varimax") }\\ \small \text{ load1 = \{\{ 0.00, -1.00 \}, } \\ \small \text{ \{ -1.00, 0.00 \} \} } $$ $\endgroup$Rotation
) and varimax (or quartimax) rotated it in SPSS. I suppose Gottfried was doing the same thing. SPSS rotated it to binary-valued matrix, as expected and as it was with a 5x5 eigenvector matrix in the answer stats.stackexchange.com/a/154445/3277. So, SPSS does it correct way. I can't say anything to what's up there with R. $\endgroup$