I am performing a simultaneous confirmatory factor analysis to check whether the items of a survey refer to intended separate underlying concepts without cross loading on the concepts. Since I am doing this in the context of a course on SEM, I am also paying attention to how this is estimated by the software. I learned that the model should not be under-identified, where there are more parameters to estimate than there is information available, i.e. the model is more complex than the data. Now what I think is, that my model is under-identified, however, the lavaan
package in R
has no problem fitting it, and suggests there are even 38 more degrees of freedom. My model looks like this:
The variables with an asterisk are ordinal manifest variables which are turned into continuous latent response variables. This is the model specification in R:
TP.cfa <- 'tpeff =~ plcpvcr + plccbrg + plcarcr
tpfairdis =~ plcvcrp + plcvcrc
tpfairproc =~ plcrspc + plcfrdc + plcexdc
cooperation =~ caplcst + widprsn + wevdct'
fit.cfa <- cfa(TP.cfa, data=ESS5BE, ordered=c("plcvcrp","plcvcrc", "plcrspc", "plcfrdc", "plcexdc", "caplcst", "widprsn", "wevdct"))
summary(fit.cfa, fit.measures=TRUE, modin=T)
If I count correctly there are 25 pieces of information available: 3 for the 3 continuous manifest variables {k(k+1)/2}, and 22 proportions for the ordinal manifest variables (6 of these have 4 response categories, 2 have 3 categories, and for one ordinal variable c-1 proportions are unique information).
Lavaan estimates 53 parameters: 6 covariances, 7 factor loadings, 3 intercepts, 22 thresholds and 15 variances.
Now my question is, would R be able to estimate the model, even if it is under-identified? Or do I really have an over-identified model, with 38 degrees of freedom, and then where do these come from?