How to go past a model implied cov not positive definite error?

Attachment | Size |
---|---|
ZyphurPGS.drawio.png | 127.27 KB |
Hi all,
I am trying to specify the CLPM in the attached figure (It's an extension of Zyphur's 2020 general CLPM, but with PGSs). I specified both using lavaan syntax in umx and matrix algebra (first time, hope it is correct, but looks like so). It is identified, the model runs ok. But when I try to get power or the ncp statistic it fails, as the model's implied cov is not positive definite.
- What can I do to avoid this? lbounds and ubounds will help me there?
Lavaan code:
model = "
# random intercepts
xir =~ 1*X1 + 1*X2 + 1*X3 +1*X4 + 1*X5 + 1*X6
yir =~ 1*Y1 + 1*Y2 + 1*Y3 + 1*Y4 + 1*Y5 + 1*Y6
# crosslaged
Y2 ~ X1
X2 ~ Y1
Y3 ~ X2
X3 ~ Y2
Y4 ~ X3
X4 ~ Y3
Y5 ~ X4
X5 ~ Y4
Y6 ~ X5
X6 ~ Y5
# instrument
X1 + X2 + X3 + X4 + X5 + X6 ~ PGSx
Y1 + Y2 + Y3 + Y4 + Y5 + Y6 ~ PGSy
# innovations
innoX1 =~ 1*X1
innoX2 =~ 1*X2
innoX3 =~ 1*X3
innoX4 =~1*X4
innoX5 =~1*X5
innoX6 =~1*X6
innoY1 =~1*Y1
innoY2 =~1*Y2
innoY3 =~1*Y3
innoY4 =~1*Y4
innoY5 =~1*Y5
innoY6 =~1*Y6
X2 ~ innoX1
X3 ~ innoX2
X4 ~ innoX3
X5 ~ innoX4
X6 ~ innoX5
Y2 ~ innoY1
Y3 ~ innoY2
Y4 ~ innoY3
Y5 ~ innoY4
Y6 ~ innoY5
# # correlations
xir ~~ yir
#means
X1 ~ 1
X2 ~ 1
X3 ~ 1
X4 ~ 1
X5 ~ 1
Y1 ~ 1
Y2 ~ 1
Y3 ~ 1
Y4 ~ 1
Y5 ~ 1
# variances
innoX1 ~~ 1*innoX1
innoX2 ~~ 1*innoX2
innoX3 ~~ 1*innoX3
innoX4 ~~ 1*innoX4
innoX5 ~~ 1*innoX5
innoX6 ~~ 1*innoX6
innoY1 ~~ 1*innoY1
innoY2 ~~ 1*innoY2
innoY3 ~~ 1*innoY3
innoY4 ~~ 1*innoY4
innoY5 ~~ 1*innoY5
innoY6 ~~ 1*innoY6
"
m1 <- umxRAM(model, lavaanMode = "lavaan")
m1 <- mxGenerateData(m1,nrows = 1000, returnModel = T)
m1 <- umxRAM(m1, tryHard = "yes")
umxSummary(m1)
plot(m1)
id <- mxCheckIdentification(m1)
# Identified!
Now where it errs:
umxPower(m1, update = "Y2_to_X3", sig.level = 0.05, explore = T)
gives me:
Error incurred trying to run model: model = mxTryHard(model) might help?
The job for model 'drop_Y2_to_X3' exited abnormally with the error message: fit is not finite (The continuous part of the mode
l implied covariance (loc2) is not positive definite in data 'drop_Y2_to_X3.data' row 488. Detail:
covariance = matrix(c( # 16x16
and,
mxCompare(m1, mxTryHard(omxSetParameters(m1, labels=c('Y2_to_X3','X2_to_Y3'),
values= 0,
free= F),2))
Gives me:
All fit attempts resulted in errors - check starting values or model specification
Error in if (rfu == "r'Wr") { : argument is of length zero
P.S.:Is it possible to inline the image in this quesiton instead of using the attachment function?
This was discussed last
This was discussed last meeting, the trick is setting the starting values.
Log in or register to post comments