Help in understanding notation for NO-GROWTH MODEL (OpenMx) and ERROR message

Posted on
No user picture. Aivil Joined: 03/14/2019
Hello,
I´m having a hard time understanding the OpenMx notation from this handbook "Growth Modeling" (Grimm, Ram & Estabrook, 2017).

The authors compare the script from MPlus and OpenMx with regard to the specification of a no-growth model (attached as pics). While in Mplus is pretty straightforward, I don´t understand why the latent factor variance (psi_11) and the indicators residual variances are set at 80 and 60 respectively in the OpenMx script.

As we are estimating a no-growth model, why don´t we simply put a 1 to express the fact that these parameters are fixed? Where do these values come from??

In addition, I have tried running this model on my data with exactly the same code just changing the names of variables.... and I obtain this error message... does anybody know why??

**Error: Nice try, you need to add '2' to either manifestVars or latentVars before you can use them in a path.**

MANY THANKS

Replied on Fri, 03/15/2019 - 11:34
Picture of user. Ryne Joined: 07/31/2009

Hi Aivil,

The variance terms you're talking about represent the intercept and residual variances. While no growth is being modeled, individuals are free to vary in their initial or overall level. The highlighted portion of the code describes the variance term for the intercept (eta1) and the residual variances for the seven math items. We constrain the residual variance to be constant over time by giving all the residual variance terms the same label ('th').

We don't need to constrain the slope factors to anything because we omit them from the model! Rather than create a slope factor only to make its mean and variance zero, we just leave it out entirely. The entire model is a single latent intercept factor and residual variance terms.

The 80s and 60s are the starting values for those parameters. We think that the variance in intercepts is 80 and residual variance is 60.

Without seeing your code, it looks like number 2 got put some place where OpenMx was expected a variable name, like a 'from' or 'to' argument in an mxPath statement.

Does that answer your question?

Thanks,
Ryne

Replied on Fri, 03/15/2019 - 11:51
No user picture. Aivil Joined: 03/14/2019

In reply to by Ryne

Hello Ryne,
Thank you so much for your time and your immediate reply.
Yes, it makes more sense now. I just have an additional question: is there a reason why the authors have fixed the starting values at 80 and 60? I understand that they represent the variance in intercepts and residual variances, but why 80 and 60 exactly?

I will copy the code here, I just naively copy pasted the one from the book and then changed it based on my data... Sorry I am a newbie in OpenMx


trial.model <- mxModel('No Growth, Path Specification',
type='RAM', mxData(observed=dfwide_prova, type='raw'),
manifestVars=c( 'depression_scale_2','depression_scale_3',
'depression_scale_4','depression_scale_5',
'depression_scale_6','depression_scale_7',
'depression_scale_8'),latentVars= "eta_1",
# variance paths
mxPath(from=c('eta_1','depression_scale_2','depression_scale_3',
'depression_scale_4','depression_scale_5',
'depression_scale_6',
'depression_scale_7','depression_scale_8',
arrows=2, free=TRUE, values=c(80, 60, 60, 60, 60, 60, 60, 60),
labels=c('psi_11', 'th', 'th', 'th', 'th', 'th', 'th', 'th'))),
# factor loadings
mxPath(from='eta_1',to=c('depression_scale_2','depression_scale_3',
'depression_scale_4','depression_scale_5',
'depression_scale_6',
'depression_scale_7','depression_scale_8'),
arrows=1, free=FALSE, values=1),
# means and intercepts
mxPath(from='one', to='eta_1',
arrows=1, free=TRUE, values=40, labels='alpha_1')
)# close model

Error: Nice try, you need to add '2' to either manifestVars or latentVars before you can use them in a path.

Thanks!!!!!!!

Replied on Fri, 03/15/2019 - 14:15
No user picture. Aivil Joined: 03/14/2019

In reply to by AdminRobK

Thank you so much, now it works.

In the meantime, I have read Ryne´s post about setting starting values (https://openmx.ssri.psu.edu/thread/1366) but I still don´t get why in the example from the book they have been set to 80 and 60.

Thanks again