I am trying to estimate a "typical" intelligence model with three latent factors (the intelligence domains PS, WM and Gf) two of which have two indicators and one of which has four indicators. Together, those three factors define a second-order factor of intelligence; g. I expect the intelligence domains to correlate because their correlation gives rise to the common factor g. The model (n = ~1050) converges and has acceptable fit indices when I don't specify correlations between the intelligence domains. But when I try to let them covary, it gives me the following error:

Could not compute standard errors! The information matrix could not be inverted. This may be a symptom that the model is not identified.

Kline (2016) writes that in a model with a second-order factor, there need to be at least three first-order factors with a minimum of two indicators. This is all given, but still, my models seems to be underidentified. How can I solve this? What else could be the problem here?

Here's the error-inducing model I ran in lavaan (R):

model.1.relaxed <- '
PS =~ NA*zst_rw + ss_rw   
WM =~ NA*bzf_rw + zn_seq_rw + zn_vw_rw + zn_rw_rw
Gf =~ NA*mz_rw + fw_rw
g =~ NA*PS + WM + Gf
PS ~~ 1*PS   
WM ~~ 1*WM
Gf ~~ 1*Gf
g ~~ 1*g
zn_vw_rw ~~ zn_rw_rw
zn_seq_rw ~~ zn_rw_rw
zn_seq_rw ~~ zn_vw_rw
WM ~~ Gf
PS ~~ Gf
WM ~~ PS

g ~ agedec

#analyze model 
model.1.relaxed.fit <- sem(model=model.1.relaxed, data=data, estimator="mlm", orthogonal=FALSE)

Many thanks for your thoughts!


1 Answer 1


The same reason a simple 1-factor model with 3 indicators is not identified if you try to estimate all loadings and residual variances. Its df=0 even without residual covariances, so trying to estimate even 1 underidentifies the model.

I expect the intelligence domains to correlate because their correlation gives rise to the common factor g

Then there is no reason to expect their residuals to correlate, after the covariances are accounted for by g. SEM parameters are residual, not marginal, (co)variances, unless the factor(s) happen to be exogenous. In your model, the 3 dimensions are endogenous, explained by g.

  • $\begingroup$ Thank you very much, that makes sense. If I may add a follow-up question: If I wanted to estimate other parameters (e.g., the direct effect of "agedec" on the three latent first-order factors), could I do this by imposing some constraints on this model in order to identify it? I was going to impose equality constraints on all factor loadings of the first-order factors but I'm not sure if that is a valid thing to do. $\endgroup$
    – louise
    Commented Feb 1, 2022 at 14:17
  • $\begingroup$ Correct @emma, you would need additional constraints to estimate effects on all first-order factors as well as g. Typically, this is done by choosing "anchor items" that are not effected by agedec, but technically you could do something like estimate all effects under the constraint that the average of first-order effects == 0 (similar to effects-code identification of latent scales). But read this informative paper: doi.org/10.1177/0146621619835496 $\endgroup$
    – Terrence
    Commented Feb 3, 2022 at 15:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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