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 at 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
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%