Is it the case that many of the available fit indices generated by package "psych" in R are

  1. not appropriate for EFA, only for CFA (even though generated by package 'psych' in R for EFA)

  2. not useful with non-normal data, because most are derived from chi-square?

I am doing EFA on skewed scale data (scale is 1-100, using PAF and oblique rotation). From the tentative runs with small and large numbers of factors I have done so far it looks as though while KMO and Bartlett and perhaps RMSEA and RMSR are going to be ok, but chi-square is significant and TLI is poor. But it seems that only R produces these indices for EFA at all - perhaps I should not be guided by them?

If I should be paying attention to them even though I am doing EFA and not CFA, are there alternatives for non-normal data? I have come across the Santorra-Bentler scaled chi-square, but this doesn’t seem to be available in package psych and it seems to be used for CFA, not EFA. Another possibility would be to bootstrap, but I am not sure how I would know whether this has been effective and that I should therefore subsequently trust the fit indices, or not.


Probably take a look at this answer, and consider van der Waerden scores before running EFA in order to address skewness. In some respects, skewness can also result in false results due to extreme values in tails of your distributions, which can bias the covariance to the point of claiming there is non-zero covariance, when in fact after skew-zeroing the data the covariance could disappear altogether.

I would also not get hung up on fit statistics for factor analysis or PCA, since the only thing you obtain are eigenvalues and eigenvectors, less the communalities and rotations which can be done.

You mentioned a particular software package, but eigendecomposition of a covariance(correlation) matrix is not not a unique solution for which different software packages obtain the same results. Reconstruction of the covariance matrix using results from different software packages, is however, unique when sandwiching together the decomposed elements like $\mathbf{C}=\mathbf{E}\boldsymbol{\Lambda}\mathbf{E^\top}$ from PCA or $\mathbf{C}=\mathbf{U}\mathbf{W}\mathbf{V^\top}$ from SVD. In other words, you will get exactly the same covariance matrix from individual components spawned by different packages, but won't obtain the same component values from different packages.

Goodness-of-fit statistics for PCA and FA are hinged to, in part, non-unique results, and when rotating, the results are more removed from uniqueness.

  • $\begingroup$ many thanks - this answer has given me a lot of new information. In the answer to which you link (2nd sentence of the 'Skewed Variables' section) you say 'if you need to apply the normality assumption....' I am not quite sure how to judge whether I need it or not. Is this a theoretical consideration, or driven by other factors? Also, I have almost no maths and am not sure how to interpret 'the decomposed elements like... C=UWC from SVD'. (I googled SVD but found other fairly mathematical answers on here). Are there any extremely gentle resources that you recommend for non-maths people? $\endgroup$
    – rumnraisin
    Feb 19 '20 at 22:41
  • $\begingroup$ Regarding 'if you need to apply the normality assumption...', as referenced in your linked post/my previous comment: did this mean 'if you are using an estimation technique that assumes multivariate normality'? Fabrigar et al (1999) suggest that PAF does not assume it. If I am using PAF, do I therefore not need to compute van der Waerden scores? With 60 variables I will try to avoid computing them if I can find simpler solutions, though of course will do so if it is the only way to reach a reasonably trustworthy solution. $\endgroup$
    – rumnraisin
    Feb 19 '20 at 23:40
  • $\begingroup$ You can do a lot of things to reduce skewness, but it's your call on whether or not you don't want skewed variables used for your input covariance(correlation) matrix. Probably try it with and without van der Waerden and see how different the results are. We do a lot of stuff to remove skewness, for example, assign ranks to all the sorted values of each variable, and then run covariance on that, then do your EFA/CFA. Isn't the Likert scale essentially ranks? Problem with tails of distributions is that covariance/correlation are defined on the average, which is biased by skewness. $\endgroup$
    – user32398
    Feb 20 '20 at 19:15
  • $\begingroup$ thank you, that's helpful. I'm looking into van der Waerden scores, e.g. in the bestNormalize package. $\endgroup$
    – rumnraisin
    Feb 20 '20 at 22:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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