Hi all,
One component of my SEM model features a latent variable formed of three binary manifest variables.
As my manifest variables are binary, I am required to declare them as ordered to lavaan (thereby causing the model to default to the DWLS estimator). (I believe that I must do this as these manifest variables are endogenous – they have a direct cause/arrows pointing into them!) The model is created in the following manner:
ctr.model <- 'exp_c =~ pri_Child_Char_Rec6 + pri_Child_Char_Rec5 + pri_Child_Char_Rec4'
ctr.fit <- cfa(model = ctr.model, data = Uwezo6plus_primary, std.lv = T, ordered = c("pri_Child_Char_Rec4", "pri_Child_Char_Rec5", "pri_Child_Char_Rec6"))
The model produces the following warning message: In lav_object_post_check(object) :
lavaan WARNING: some estimated ov variances are negative – this concerns the manifest variable: pri_Child_Char_Rec6
...
I attempt to fix the variance of the negatively estimated manifest variable by calculating its variance (using var) and then using the output in the model:
ctr.model <- 'exp_c =~ pri_Child_Char_Rec6 +
pri_Child_Char_Rec5 + pri_Child_Char_Rec4
pri_Child_Char_Rec6 ~~ 0.06291843*pri_Child_Char_Rec6'
ctr.fit <- cfa(model = ctr.model, data = Uwezo6plus_primary, std.lv = T, ordered = c("pri_Child_Char_Rec4", "pri_Child_Char_Rec5", "pri_Child_Char_Rec6"))
Fixing variance in this manner does not work (unless I do not declare manifest variables as ordered), so I instead set the parameters of two manifest variables to be equal to each other:
ctr.model <- 'exp_c =~ a*pri_Child_Char_Rec6 + a*pri_Child_Char_Rec5 + pri_Child_Char_Rec4'
ctr.fit <- cfa(model = ctr.model, data = Uwezo6plus_primary, std.lv = T, ordered = c("pri_Child_Char_Rec4", "pri_Child_Char_Rec5", "pri_Child_Char_Rec6"))
This works – no variances are negative and the model runs with no warnings.
My questions are:
- Is there any way to fix variance within an ordered model?
- If no, is setting the parameters of two manifest variables to be equal an OK way of dealing with the problem?
Thanks again for any help - I could not find the answer in this forum. And huge apologies if I have made an incorrect assumption that the manifest variables should be declared as ordered! Please let me know if this is the case.
Joe
- Is there any way to fix variance within an ordered model?