2

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-

r<-cor(m1)
library(psych)
fa<-fac(r,nfactors=3,rotate="varimax", scores="Bartlett")
fa$score

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

ttnphns
  • 51,648
  • 40
  • 253
  • 462
Blain Waan
  • 3,345
  • 1
  • 30
  • 35
  • 2
    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`. – chl Jul 12 '12 at 06:17

1 Answers1

7

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?

ttnphns
  • 51,648
  • 40
  • 253
  • 462
  • (+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. – chl Jul 12 '12 at 09:53