After R reads the data, say-

v1 <- c(1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,4,5,6)
v2 <- c(1,2,1,1,1,1,2,1,2,1,3,4,3,3,3,4,6,5)
v3 <- c(3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,5,4,6)
v4 <- c(3,3,4,3,3,1,1,2,1,1,1,1,2,1,1,5,6,4)
v5 <- c(1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,6,4,5)
v6 <- c(1,1,1,2,1,3,3,3,4,3,1,1,1,2,1,6,5,4)
m1 <- cbind(v1,v2,v3,v4,v5,v6)

if I run-

factanal(~v1+v2+v3+v4+v5+v6, factors = 3, scores = "Bartlett")$scores

I can get observation-wise factor scores. But when I do this-

fa<-fac(r,nfactors=3,rotate="varimax", scores="Bartlett")

I can't get individual-wise factor scores. Is it possible to get individual-wise factor scores using psych? Actually I need to use psych, because I need to put spearman's rank correlation matrix as the starting point for factor analysis. Kindly suggest me.

Thank You

  • 2
    $\begingroup$ You'll probably need to provide raw data, and not just a correlation matrix, if you want to compute regression scores. Try this instead: fac(data.frame(v1,v2,v3,v4,v5,v6), nfactors=3, rotate="varimax", scores="Bartlett")$scores. $\endgroup$
    – chl
    Jul 12, 2012 at 6:17

1 Answer 1


Blain, I'm not R user so can't be an expert. Anyway... What I see from your code is that you input correlation matrix in place of initial case-wise data into fac. This way you can't hope to obtain case-wise factor scores! What you can obtain at best is the matrix of regressional coefficients by which the scores can be computed.

A separate concern is you plan to base your future factor analysis on Spearman correlation. I don't know psych and its options but I suspect that the package just will process such matrix as if it were Pearson correlation. Linear factor analysis is mathematically based on Pearson correlations (or on covariances or cosines or sum-of-squares-and-cross-products, or on inferred Pearson correlations such as tetrachoric ones) and is not meant for rank correlations. The only justification to use Spearman instead of Pearson in the analysis would be your belief that the former reflects underlying linear relationships more accurately than the observed Pearson coefficient. But whence can you get this certainty?

  • $\begingroup$ (+1) I can confirm that Pearson correlations are used, by default. (With raw data, pairwise correlations are computed.) The 6 by 3 matrix of beta weights is returned as fa$weights, in the present case. $\endgroup$
    – chl
    Jul 12, 2012 at 9:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.