[R] A simple question about PRINCOMP

Takatsugu Kobayashi tkobayas at indiana.edu
Thu May 10 20:22:51 CEST 2007


Hi,

I just wonder if this is a rounding error by the princomp command in R.

Although this does not make much sense, using a hypothetical dataset, a,

a<-matrix(runif(1000),100,10)

I did PCA with the princomp, and compared it with the results estimated 
with the eigen and the prcomp commands. And I found some differences in 
the results: opposite signs in the loadings; slight differences in 
variances (lambdas), etc. Since the components are orthogonal to each 
other, correlation coefficients between the PC scores should be zero. 
But when I type

test2<-princomp(a)
cor(test2$scores)

I obtained the following cor matrix:

               Comp.1        Comp.2        Comp.3        Comp.4        
Comp.5        Comp.6        Comp.7        Comp.8
Comp.1   1.000000e+00 -5.819229e-15  1.952317e-16 -1.631710e-16  
5.489998e-17  5.624600e-17  1.582736e-16 -3.048016e-17
Comp.2  -5.819229e-15  1.000000e+00 -1.942578e-16  7.219253e-17 
-7.107726e-17  3.492899e-17 -6.670908e-17  1.527489e-16
Comp.3   1.952317e-16 -1.942578e-16  1.000000e+00  4.922440e-16  
4.105868e-17  6.342858e-16  2.930614e-16  6.296834e-17
Comp.4  -1.631710e-16  7.219253e-17  4.922440e-16  1.000000e+00  
1.308663e-17 -4.556627e-16  2.927150e-16 -1.001956e-17
Comp.5   5.489998e-17 -7.107726e-17  4.105868e-17  1.308663e-17  
1.000000e+00  1.169042e-16  1.401771e-16  4.732978e-17
Comp.6   5.624600e-17  3.492899e-17  6.342858e-16 -4.556627e-16  
1.169042e-16  1.000000e+00 -4.193547e-16  5.742884e-17
Comp.7   1.582736e-16 -6.670908e-17  2.930614e-16  2.927150e-16  
1.401771e-16 -4.193547e-16  1.000000e+00  3.179465e-16
Comp.8  -3.048016e-17  1.527489e-16  6.296834e-17 -1.001956e-17  
4.732978e-17  5.742884e-17  3.179465e-16  1.000000e+00
Comp.9  -4.092284e-17  1.977862e-16 -1.140905e-16 -2.566213e-16  
2.647648e-17  8.279450e-17  1.603418e-16 -4.015096e-17
Comp.10 -1.017709e-17 -2.673821e-17 -5.851822e-17  4.417901e-17  
2.760632e-17  1.247873e-17 -1.622996e-17  4.921851e-17
               Comp.9       Comp.10
Comp.1  -4.092284e-17 -1.017709e-17
Comp.2   1.977862e-16 -2.673821e-17
Comp.3  -1.140905e-16 -5.851822e-17
Comp.4  -2.566213e-16  4.417901e-17
Comp.5   2.647648e-17  2.760632e-17
Comp.6   8.279450e-17  1.247873e-17
Comp.7   1.603418e-16 -1.622996e-17
Comp.8  -4.015096e-17  4.921851e-17
Comp.9   1.000000e+00  2.843887e-16
Comp.10  2.843887e-16  1.000000e+00

Aren't all off-diagonal elements in this particular matrix zeros? I am 
sure that these off-diagonal values are substantially small and close to 
zero. But is this because of these commands' rounding error or that I 
did something wrong...?

Thanks in advance.

Taka



More information about the R-help mailing list