[R] prcomp function
kicker
dreamcatcher101 at web.de
Wed Nov 10 14:41:03 CET 2010
Hello,
I have a short question about the prcomp function. First I cite the
associated help page (help(prcomp)):
"Value:
...
SDEV the standard deviations of the principal components (i.e., the square
roots of the eigenvalues of the covariance/correlation matrix, though the
calculation is actually done with the singular values of the data matrix).
ROTATION the matrix of variable loadings (i.e., a matrix whose columns
contain the eigenvectors). The function princomp returns this in the element
loadings.
..."
Now please take a look at the following easy example:
first I define a matrix A
>A<-matrix(c(0,1,4,1,0,3,4,3,0),3,3)
then I apply PCA on A
>trans<-prcomp(A,retx=T,center=F,scale.=F,tol=NULL)
>eval<-trans$sdev*trans$sdev #eval is the vector of the eigenvalues of
cov(A) (according to the cited help text above)
>evec<-trans$rotation #evec is the matrix with the eigenvectors of cov(A) as
columns (according to the cited help text above)
now the eigenvalue equation should be valid, i.e. it should hold
cov(A)%*%ev[,1]=ew[1]*ev[,1]. But it doesn´t, my result:
cov(A)%*%ev[,1]= t(-0.8244927, -0.8325664,0.8244927)
ew[1]*ev[,1]=t(-8.695427,-7.129314,-10.194816)
So my question is : why does the eigenvalue equation not hold ?
The eigenvalue equation holds when I set center=T in the options of the
prcomp function. But as far as I know and as I understand the help text it
should have no influence on the eigenvalue equation whether the data are
centered or not. I know about the advantages of centered date but I want to
understand how the prcomp function works in the case of uncentered data.
Thank you very much for your efforts.
--
View this message in context: http://r.789695.n4.nabble.com/prcomp-function-tp3036088p3036088.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list