

Piecewise Growth With Individually Va... 

Message/Author 

J. Cheadle posted on Friday, September 24, 2004  10:32 am



Dear Linda & Bengt: Is it possible to estimate piecewise growth curves with individually varying times of observation? Are there any examples available? I am trying to reproduce HLM results of a piecewise growth curve analysis with individually varying times of observation. There are 4 waves of data, 4 at fall and spring of kindergarten and first grade. The spring of first grade is only a 20% subsample (which translates to 30% coverage in the longitudinal file for children who did not change schools).. The overall structure of the L1 model is, Y=pi1 + pi2*tma + pi3*tmb + pi4*tmc Where tma=kindergarten, tmb=summer, and tmc=first grade. The data for case one in personperiod format looks like: wave tma tmb tmc 1 3 0 0 2 8 0 0 3 9 3 1 4 9 3 8 Of course, I reshape the data for use in MPlus (tma1tma4, tmb1tmb4, tmc1tmc4). Obviously there is a df issue here, so we fix the level1 variances with (1Reliability)*Test Variance. I have played around a bit trying to get the model specified correctly, but so far I have been unable to duplicate the HLM results. A specification like this doesn’t work: ! THE GROWTH MODEL i s1  r1r4 AT ta1ta4; i s2  r1r4 AT tb1tb4; i s3  r1r4 AT tc1tc4; This just generates the error: *** ERROR in Model command Random slopes previously defined: I S2 Anyway, amongst many others, this is the model that seems like it should be the correct one. At this point I’m not sure what to do. I’ve also run the model with and without the missing cases (as I’ve said, trying a variety of specifications…) and varying how I include the time variables (ie, r2r4 AT tb2tb4). Any advice is appreciated, thank you! 

Jon Heron posted on Wednesday, February 15, 2012  1:20 am



I've revisited the issue of a piecewise linear growth model with varying times of observation. This is discussed extensively here http://www.statmodel.com/discussion/messages/14/498.html?1321583317 without a clear answer. Applying the two suggestions made by Linda and Bengt gives me close but not identical results. Bengt's model of Dec 31  to fit two intercepts i1 and i2 with constraints gives corr(i1,i2)=1 however this corr is estimated thus incurring one more parameter  so these two models will never agree? Using model constraint to fix this at zero yields a non posdef Psi. My goal is to get these two models to agree so do you have any suggestions? As a 2ndry point, I don't feel I'm getting the growth part right. With fixed times the model: i s1  y1@0 y2@1 y3@2 y4@2 y5@2; i s2  y1@0 y2@0 y3@0 y4@1 y5@2; ensures that the lines meet at an elbow, but my model with varying ages looks like this: i1 s1  y1 y2 at age1 age2; i2 s2  y3 y4 y5 at age3 age4 age5; and I'm unable to add the y's more than once. many thanks, Jon 


Please send the three outputs and your license number to support@statmodel.com. Then we can see exactly what we are dealing with. 

Jon Heron posted on Monday, March 19, 2012  12:45 am



Well we have a solution to this old chestnut, but it's much simpler than I expected. The syntax closely mirrors that for the standard piecewise/fixedages model. Note the need to derive new age variables for t4 and t5 as well as a constant "zero". Define: agedif4 = age4  age3; agedif5 = age5  age3; zero = 0; Variable: Names are id age1 age2 age3 age4 age5 tot1 tot2 tot3 tot4 tot5; usevariables = tot1tot5 age1 age2 age3 agedif4 agedif5 zero; tscores = age1 age2 age3 agedif4 agedif5 zero; Analysis: type = random; Model: intcpt slope1  tot1 tot2 tot3 tot4 tot5 at age1 age2 age3 age3 age3; intcpt slope2  tot1 tot2 tot3 tot4 tot5 at zero zero zero agedif4 agedif5; 

Jon Heron posted on Monday, March 19, 2012  3:17 am



Update for more than two linear splines you need to create more than one zero constant. Define: zero1 = 0; zero2 = 0; zero3 = 0; adif32 = age3  age2; adif43 = age4  age3; adif54 = age5  age4; Model: intcpt slope1  tot1 tot2 tot3 tot4 tot5 at age1 age2 age2 age2 age2; intcpt slope2  tot1 tot2 tot3 tot4 tot5 at zero1 zero1 adif32 adif32 adif32; intcpt slope3  tot1 tot2 tot3 tot4 tot5 at zero2 zero2 zero2 adif43 adif43; intcpt slope4  tot1 tot2 tot3 tot4 tot5 at zero3 zero3 zero3 zero3 adif54; 


In reply to Jon's comment, can I ask why you would have to define new age variables? Why couldn't your model command look like: Model: intcpt slope1  tot1 tot2 tot3 tot4 tot5 at age1 age2 age3 age3 age3; intcpt slope2  tot1 tot2 tot3 tot4 tot5 at zero zero zero age4 age5; If anyone could help my understanding that would be great. I have tried both with my own data and they do not produce the same results. 

Back to top 

