Skip to content
Prev 31629 / 398506 Next

R vs SPSS output for princomp

On Tuesday, May 6, 2003, at 03:00 AM, Prof Brian Ripley wrote:

            
I believe that, based on the "Factor Score Coefficients" section of the 
SPSS algorithm document (am I right in thinking that R's "loadings" are 
also "Factor Score coefficients") this is the calculations that SPSS is 
using?

http://www.spss.com/tech/stat/Algorithms/11.5/factor.pdf

To quote (in psuedo latex):

The matrix of factor ladings based on factor m is:

\lambda_m = \omega_m {\gamma_m}^{\frac{1}{2}}

where

\omega_m = (w_1,w_2,...,w_m)
\gamma_m = diag(abs{y_1},abs{y_2},....,abs{y_m})

For a correlation matrix

y_1 >= y_2 >= y_2 >= ... >= y_m are the eigenvalues and w_i are the 
corresponding eigenvectors of R, where R is the correlation matrix.

(skipping down to the bottom of the document)

the coefficients (loadings) are based on (PC without rotation (my 
example))

W = \lambda_m {\gamma_m}^-1

where
S_m = factor structure matrix and
\lambda_m = S_m for orthogonal rotations

I'm afraid that my mathematical skills are not up to comparing these 
algorithm explained in the SPSS document with the R source code :(  
Hopefully the difference is obvious to somebody here.
Yes I do - I'm using only the correlation matrix.  I understood that it 
was common (following Kaiser's suggestion) to extract only components 
which have eigenvalues above 1 (i.e. explain as much variance as at 
least one of the input variables).  I understand that is considered 
statistically crude but is still common.

I guess I'm expecting an interface for PCA not too dissimilar to that 
of factanal (as it is in other statistical packages).  Perhaps there 
are sounds statisical reasons for not wanting to hide this step from 
the user but perhaps it is interesting to you to know people's 
expectations when using the princomp function.
Apologies that this is a bit beyond me right at the moment.  I do, 
however appreciate your comments and the fact that the source is 
available.

James
Doctoral Student
School of Information Studies
Syracuse University