# [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).
contain the eigenvectors). The function princomp returns this in the element
..."

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.

```