Skip to content
Prev 58470 / 398502 Next

Princomp(), prcomp() and loadings()

El mi??, 03-11-2004 a las 17:34, Prof Brian Ripley escribi??:
Mea culpa, even without resort to the example in the help page I 
       should have thought that differences in the divisor for the 
       covariance matrix (or using directly the data matrix, as Sundar 
       Dorai-Raj explained) might account for the small discrepancies.
       My apologies.
Well, the title says: "Rotation Methods for Factor Analysis" and
       this was not enough to deter me from using it on PCA generated 
       loadings. "Factor Analysis" is sometimes meant to include PCA,
       even if they are different beasts. Looking at the help page for
       "loadings" it also says: "Print Loadings in Factor Analysis", 
       yet it is meant to be used with PCA loadings as well, as the
       later the Description section goes on to saying.

       But this is a side question. What I asked in point 2) is why
       loadings(princomp(USArrests)) reports as the last four lines

                         Comp.1 Comp.2 Comp.3 Comp.4
          SS loadings      1.00   1.00   1.00   1.00
          Proportion Var   0.25   0.25   0.25   0.25
          Cumulative Var   0.25   0.50   0.75   1.00

       when the eigenvalues are different and so are the amounts of 
       variance explained by each component. I used "varimax" merely 
       to produce a different set of loadings and check that the same
       behaviour recurred.
The first line reported by loadings, "SS loadings", is right. 
       But the loadings matrix returned by princomp has its columns 
       normalized to 1, while loadings returned by factanal are 
       not. Hence, with the later, the last two lines are what I 
       expected, while with the former they are not.

       Perhaps the loadings matrices returned by princomp and factanal
       should be made of a different class, so loadings (or 
       print.loadings) treats them differently?

       ft.