In cases, data is ordered categorical, exploratory factor analysis (EFA) is best implemented using polychoric correlations and diagonally weighted least squares (for example, see here).
To my knowledge, the only way of impementing factor analysis using DWLS in R is lavaan
. It requires specifying an EFA within a CFA framework (E/ CFA). For more info, see amongst others here).
However, E/ CFA also requires one to choose an anchor item for each factor whose cross-loadings are fixed to zero. It therefore is more restrictive than conventional EFA. In fact, E/ CFA is considered an "intermediate step" between EFA and CFA (see here on page 83).
To my knowledge, the only software package that allows one to run an EFA with DWLS is Mplus. But it is also quite costly. Thus, my only option is lavaan
in R. However, I would I then select anchor items?
As of now, my thinking is to run a fa
within R using weighted least squares to get an idea of the items with the highest loading on each factor. Based on these results I could then select the anchor items and then run E/ CFA with lavaan
. However, would this be robust enough? Are there better ways?