[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