Latent Growth Curves with Twin Data PreviousNext
Mplus Discussion > Growth Modeling of Longitudinal Data >
Message/Author
 Chris Schatschneider posted on Wednesday, December 20, 2006 - 6:56 am
Hello all,

We are trying to fit a latent growth curve model and also derive estimates of genetic and environmental influences on the intercept and slope parameters. Because of text limitations, we will post our code in the next message.

When we fit this model, we get multiple error messages about model identification and that the psi matrix is nonposdef.

Anyone else out there trying to fit one of these models?

Thanks

Chris
 Chris Schatschneider posted on Wednesday, December 20, 2006 - 6:57 am
here part of the code.

USEVARIABLES are zyg astot1 astot2 bstot1 bstot2 cstot1 cstot2;
MISSING are .;
GROUP = zyg(1=mz 2=dz);

Analysis: type is meanstructure;

MODEL:
i_1 s_1 | astot1@0 bstot1@1 cstot1@2;
i_2 s_2 | astot2@0 bstot2@1 cstot2@2;
i_1-i_2 (var_i);
s_1-s_2 (var_s);
i_1 with i_2 (covmz_i);
s_1 with s_2 (covmz_s);


MODEL dz: i_1 with i_2 (covdz_i);
s_1 with s_2 (covdz_s);

MODEL CONSTRAINT:
New (ai ci ei hi as cs es hs);
var_i = ai**2 +ci**2 + ei**2;
covmz_i = ai**2 +ci**2;
covdz_i = .5*ai**2 +ci**2;
hi = ai**2/(ai**2+ci**2+ei**2);

var_s = as**2 +cs**2 + es**2;
covmz_s =as**2 +cs**2;
covdz_s =.5*as**2 +cs**2;
hs= as**2/(as**2+cs**2+es**2);
 Linda K. Muthen posted on Wednesday, December 20, 2006 - 7:34 am
Please send your input, data, output, and license number to support@statmodel.com.
 George E. Higgins posted on Wednesday, December 20, 2006 - 9:37 am
Hi Chris,

I am trying to do the same thing. If you come up with any solutions, I would greatly appreciate it if you would share them with me.
 Bengt O. Muthen posted on Wednesday, December 20, 2006 - 10:17 am
Chris, the model looks fine but the script has a slip in the use of the list function. You say

i_1 s_1 | astot1@0 bstot1@1 cstot1@2;
i_2 s_2 | astot2@0 bstot2@1 cstot2@2;
i_1-i_2 (var_i);
s_1-s_2 (var_s);

Here, the list function in the 3rd statement implies that i_1 through i_2 have their variances held equal - but this list includes the growth factor in between, namely s_1 (the factors are in the order stated: i_1, s_1, i_2, s_2). You want to say

i_1 i_2 (var_i);

Same type of problem for s_1-s_2. You can see that you didn't get what you wanted in your Tech1 output for the Psi matrix. Checking Tech1 is very useful for these more complex models.

Also, with this type of modeling, make sure that the growth factors don't correlate above 1 in a run where you first don't impose the ACE model structure (so just using a standard parallel process growth model). You see this in the STDYX column - if the WITH estimates are greater than 1, you might want to correlate concurrent residuals of the outcomes to channel some of the observed correlation that way, for example for time 1:

astot_1 with astot_2;


So Chris' corrected script can also serve as a response to George Higgins' request for a twin growth model input.
 Bengt O. Muthen posted on Wednesday, December 20, 2006 - 10:22 am
I also just noticed that you don't hold the means equal across the twins. They should be equal by the same argument that the variances are equal (but means could be unequal across the MZ-DZ distinction). The observed variable means are captured by the growth factor means, so add:

[i_1 i_2] (1);
[s_1 s_2] (2);
 George E. Higgins posted on Wednesday, December 20, 2006 - 11:20 am
Thank you. I'll give this a try!
Back to top
Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action: