On Fri, 2010-04-16 at 10:23 -0700, phoebe kong wrote: > Hi all, > > I have a difficulty to calculate the PCA scores. The PCA scores I calculated > doesn't match with the scores generated by R, > > mypca<-princomp(mymatrix, cor=T) > > myscore<-as.matrix(mymatrix)%*%as.matrix(mypca$loadings) > > Does anybody know how the mypca$scores were calculated? Is my formula not > correct?
You need to apply the centring and scaling done because you set 'cor = TRUE' in your princomp call. Here's an example using the inbuilt 'swiss' data set. data(swiss) pc <- princomp(swiss, cor = TRUE) my.scr <- with(pc, scale(swiss, center = center, scale = scale) %*% loadings(pc)) all.equal(my.scr, pc$scores) You can see all of this in the princomp code if you look closely: getAnywhere(princomp.default) HTH > > Thanks a lot! > > Phoebe > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% Dr. Gavin Simpson [t] +44 (0)20 7679 0522 ECRC, UCL Geography, [f] +44 (0)20 7679 0565 Pearson Building, [e] gavin.simpsonATNOSPAMucl.ac.uk Gower Street, London [w] http://www.ucl.ac.uk/~ucfagls/ UK. WC1E 6BT. [w] http://www.freshwaters.org.uk %~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~% ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.