Could not compute standard errors in lavaan but why?

I am estimating a two-factor model in lavaan via sem(). I try and estimate this model in two different ways that should be equivalent (unless I am missing something) but one way gives an error message stating that "Could not compute standard errors! The information matrix could not be inverted. This may be a symptom that the model is not identified."

First way. Model has two uncorrelated latents (L1 and L2) but I fix the coefficient from L2 to RGR_Fo to zero. This model converges without errors, fits the data, and has 13 df.

R code:

mod2<-"L1 =~ RGR_Ta+RGR_Cb+RGR_Fo+RGR_Ma+RGR_Ca+RGR_Cn+RGR_Pa+RGR_Sa
L2 =~ RGR_Ta+RGR_Cb+**0*RGR_Fo**+RGR_Ma+RGR_Ca+RGR_Cn+RGR_Pa+RGR_Sa
L1 ~~ 0*L2
"
fit.mod2<-sem(mod2,data=Xavier.dat)
summary(fit.mod2,rsquare=T)


Second way. I fit exactly the same model except that I don't fix the coefficient from L2 to RGR_Fo to zero (as in line 2 of the above code). This model converges but with the above error, although the X2 value is identical to that of the first model and doesn't show lack of fit (of course, with one less df).

Code:

mod2<-"L1 =~ RGR_Ta+RGR_Cb+RGR_Fo+RGR_Ma+RGR_Ca+RGR_Cn+RGR_Pa+RGR_Sa
L2 =~ RGR_Ta+RGR_Cb+**RGR_Fo**+RGR_Ma+RGR_Ca+RGR_Cn+RGR_Pa+RGR_Sa
L1 ~~ 0*L2
"
fit.mod2<-sem(mod2,data=Xavier.dat)
summary(fit.mod2,rsquare=T)


I have tried fitting this second model using, as starting values, the final values obtained from the first way, but the error message persists.

I don't understand the difference since both models are identified with plenty of df and so fixing a coefficient to zero or estimating it when it really is zero should give the same result.

• There's something weird in your syntax. What does **0*RGR_Fo** mean? Jan 11, 2021 at 17:10