[R] Princomp(), prcomp() and loadings()

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Wed Nov 3 17:24:52 CET 2004

F.Tusell wrote:

> In comparing the results of princomp and prcomp I find:
>    1. The reported standard deviations are similar but about 1% from
>       each other, which seems well above round-off error.
>    2. princomp returns what I understand are variances and cumulative
>       variances accounted for by each principal component which are
>       all equal. "SS loadings" is always 1. 
>    3. Same happens after the loadings are varimax-rotated, which in 
>       general should alter the proportions of variance accounted by 
>       each component.
> It looks as if the loadings() function were expecting the eigenvectors
> to be normalized to the corresponding eigenvalue.
> Transcript and version information follow signature. Thank you for any
> clues.

Did you read the corresponding help files?

from ?prcomp:


      The calculation is done by a singular value decomposition of the
      (centered and possibly scaled) data matrix, not by using 'eigen'
      on the covariance matrix.  This is generally the preferred method
      for numerical accuracy.

from ?princomp:


      The calculation is done using 'eigen' on the correlation or
      covariance matrix, as determined by 'cor'.  This is done for
      compatibility with the S-PLUS result.  A preferred method of
      calculation is to use 'svd' on 'x', as is done in 'prcomp'.



More information about the R-help mailing list