Skip to content
Prev 313280 / 398503 Next

In factor analysis in the psych package, how can I work out which factors the columns in $scores relate to? How do I know what each of the scores is scoring?

Dear Professor Carlson
Thank you so much! The $Structure command displays the loadings with the same style of column heading as the $scores (i.e.  [,1]       [,2]        [,3]       [,4]        [,5]       [,6]       [,7]       [,8]         [,9]      [,10]       [,11]), and makes me so much more confident that the columns in the $scores are displayed in the same order as the columns in $loadings, even though $loadings has  different column headings to $scores (the column headings of $loadings are MR4           MR3        MR2          MR6           MR7          MR5           MR1          MR8         MR10          MR9         MR11).
Thank you!
Best wishes
Brent



-----Original Message-----
From: David L Carlson [mailto:dcarlson at tamu.edu] 
Sent: Thursday, 6 December 2012 2:45 p.m.
To: Brent Caldwell; 'r-help at R-project.org'
Cc: 'William R Revelle'
Subject: RE: [R] In factor analysis in the psych package, how can I work out which factors the columns in $scores relate to? How do I know what each of the scores is scoring?

I think you are safe in assuming that the first factor is used to compute the first factor score column. The factor.scores() procedure is used by fa() to compute the factor scores so it provides details regarding how they are computed beyond the information in the fa() help page. As I understand the help file, the default rotation is oblimin so 

"In the oblique case, the factor loadings are referred to as Pattern coefficients and are related to the Structure coefficients by S = P and thus P = S??1. When estimating factor scores, fa and factanal differ in that fa finds the factors from the Structure matrix and factanal seems to find them from the Pattern matrix. Thus, although in the orthogonal case, fa and factanal agree perfectly in their factor score estimates, they do not agree in the case of oblique factors. Setting oblique.scores = FALSE will produce factor score estimate that match those of factanal."

So you might want to look at $Structure.

The $scores part of the output is a matrix without column names (they are just numbered). The V1, V2, . . . is added by the write.csv() function and is not part of the actual output from fa(). 

-------
David