Deciding on Rotation and Factor Extraction Methods
Rotations
If we are thinking that there might be two or more factors that underly our measurement scale, then we do we think those two factors might be correlated?
The answer to this is almost always yes, because we wouldn’t expect different sub-dimensions of a construct to be perfectly uncorrelated.
For that reason, an easy decision here is to use an oblique rotation by default, such as fa(data = ?, nfactors = ?, rotate = "oblimin").
Even if these factors we estimate turn out to not be correlated, then an oblique rotation can estimate that too. The point of an oblique rotation is that we’re not forcing the factors to be uncorrelated.
| type | common methods | what happens |
|---|---|---|
| no rotation | rotate = "none" |
Tries to maximise loadings on to the first factor |
| orthogonal rotation | rotate = "varimax" |
Keeping factors uncorrelated (orthogonal), tries to maximise the variance of loadings (i.e. have lots of high loadings and lots of low loadings) |
| oblique rotation | rotate = "oblimin"rotate = "promax" |
Tries to find a balance between a simple factor structure and the degree of correlation between factors |
Factor extraction
In EFA, the process of identifying how our variables map onto some number of factors is called “factor extraction”. It’s like how, in linear modelling, the process of identifying the values of the intercept and the slope is called “coefficient estimation”. In linear modelling, we also saw that there are a few different ways to estimate coefficients—for example, using different optimisers. And similarly, in EFA, there are a few different ways to extract factors.
We’re not going to delve too much into factor extraction methods here, beyond mentioning the top three choices below and when you might use them. The main contenders are Maximum Likelihood (ml), Minimum Residuals (minres) and Principal Axis Factoring (paf).
| method | what it does | best for | requirements |
|---|---|---|---|
minres |
Minimizes squared differences between observed and model implied correlation matrices | You have a large number of variables, or ML fails to converge | |
ml |
Estimates factor loadings most likely (max likelihood) to have produced the observed correlation matrix | large sample size | multivariate normality |
paf |
Uses squared multiple correlations as initial communality estimates | When data appear non-normal, or unsuitable for ML |
You can find a lot of discussion about different methods both in the help documentation for the fa() function from the psych package, and there are lots of discussions both in papers and on forums. This is a complicated issue, but when you have a large sample size, a large number of items, for which each has a similar amount of shared variance, then the extraction methods tend to agree. Don’t fret too much about the factor extraction method!