rfactor-analysis

How can I get the initial communalities for an exploratory factor analysis in R?


I would like to obtain the initial communalities for an exploratory factor analysis in R (that is, the R squared of each item when predicted by the other items included in the analysis).

Is there a way to do this with either jmv::efa or psych::fa ?

I only see the uniqueness, which informs me of the communalities AFTER factor extraction (1-uniqueness)...

Thank you for your consideration : )


Solution

  • As you note, the initial communalities in a factor analysis are the squared multiple correlations (SMC) of each variable by the remaining variables. Using the built-in attitude dataset as an example they are easily calculated without additional packages via:

    1 - 1 / diag(solve(cor(attitude)))
    
        rating complaints privileges   learning     raises   critical    advance 
     0.7326020  0.7700868  0.3831176  0.6194561  0.6770498  0.1881465  0.5186447 
    

    The psych package includes the smc() function for convenience:

    psych::smc(attitude)
    
        rating complaints privileges   learning     raises   critical    advance 
     0.7326020  0.7700868  0.3831176  0.6194561  0.6770498  0.1881465  0.5186447