I’m scratching my head over some weird stuff happening with my factor analysis in R. I used the psych package for EFA and then Lavaan for CFA to double-check things. But now I’m not sure what to believe.
I know EFA and CFA are different beasts, but shouldn’t they give similar results if I use the same factor structure? Here’s what’s bugging me:
- EFA shows a 3-factor structure with all loadings under 1.
- CFA with the same structure gives standardized loadings over 1 and warns about negative residual variance.
This makes me nervous about trusting the psych package results. I’m using oblique rotation, which can give loadings over 1, but only if residual variance is positive, right?
So which one should I trust? EFA says everything’s fine, but CFA is throwing red flags. Has anyone run into this before? Any tips on how to make sense of it?
# Example code (not actual)
library(psych)
library(lavaan)
# EFA
efa_result <- fa(my_data, nfactors = 3, rotate = 'oblimin')
# CFA
cfa_model <- 'factor1 =~ item1 + item2 + item3
factor2 =~ item4 + item5 + item6
factor3 =~ item7 + item8 + item9'
cfa_result <- cfa(cfa_model, data = my_data)
I’m really stuck here. Help!