Peter Tice posted on Thursday, June 01, 2000 - 9:34 am
I'm new to Mplus but thus far have little trouble running basic growth mixture models based on 4 data waves. However, the 4 data waves contain three age cohorts (e.g., age 12, 15, 18 @ Time 1). I'd like to run growth mixture models that tranform my analyses of four waves into a cohort-sequential design. The data structure I'm looking to build these growth mixture models from looks like:
Orginal data structure: t1 t2 t3 t4 12 15 18 25 15 18 21 28 18 21 24 31
From the manual I understand that multiple cohort designs can be used for growth modeling, but does that extend to growth mixture modeling. I have yet to find an example. Ideally, with the cohort-sequential design I'd like to compare BIC values in a series of growth mixture models delineating the appropriate number of latent classes. In short, my preference is for one growth mixture model integrating the three cohorts into an analysis spanning ages 12-31; instead of estimating growth mixture models for each age cohort separately (i.e., 12-25; 15-28; 18-31)
At the present time, Mplus cannot handle the model you are interested in because mixture models cannot have missing data. The cohort-sequential structure needs TYPE=MISSING. This will be available for mixture models in Version 2 which we plan to release in the Fall of 2000 if all goes well.
Peter Tice posted on Monday, May 14, 2001 - 1:17 pm
This is a follow up from my original message dated June 1, 2000. I now have access to version 2.0 and need some guidance in setting up the cohort-sequential design.
I tried using the MCOHORT option but the error message informs me that this does not apply to mixture models. Right now I'm struggling with transforming four observation periods (t1 t2 t3 t4) into seven age categories (12 15 18 21 24/25 31).
I recently tried using my cohort variable (t1age) and setting up some conditional statements in the define command; such as if (t1age EQ 12) then d12 = t1....if (t1age EQ 15) then d15 = t1....if (t1age EQ 18) then d18 = t1....and so on. Under this strategy I did employ ANALYSIS: TYPE = MIXTURE MISSING. I receive a series of warnings telling me that the variable has been assumed to be a Y variable, an error message informing me that at least one variable has been assumed to be a Y variable (check covariances), and "one or more variables in the data set has no non-missing values. check your data and format statement." The output file then proceeds to show me the variables in my data set (original and created). From this I see that I've lost my variance in the del1-del4 (original, continuous outcome) and that my new del12-del31 have 0 observations.
I need some direction on this one, as the manual does not provide an example of mixture modeling using a planned missing data design, and I'm less sure on whether the proper route is to use the COPATTERN option.
I would create the data outside of TYPE=MIXTURE. You can use TYPE=MCOHORT BASIC along with SAVEDATA to get a data set with the variables strung out the way you want. Then use TYPE=MIXTURE MISSING on the new data set. Follow example 24.2 in the Mplus User's Guide. Just add BASIC to the TYPE= statement. If you have problems with this, send me your input and data at firstname.lastname@example.org and I'll sort it out.
Peter Tice posted on Wednesday, May 23, 2001 - 2:02 pm
Is there any difference in the strategy for selecting start values for growth mixture models that do not have missing data (by design) v. models that do? If so, what strategy tends to work best for growth mixture models based on planned missing data designs?
Following are the strategies we recommend for finding starting values for growth mixture models. We don't differentiate between models with and without missing data.
· Strategy 1
· Do a conventional one-class analysis
· Use estimated growth factor means and standard deviations as growth factor mean starting values in a multi-class model - mean plus and minus .5 standard deviation
· Strategy 2
· Estimate a multi-class model with the variances and covariances of the growth factors fixed to zero
· Use the estimated growth factor means as growth factor mean starting values for a model with growth factor variances and covariances free
Peter Tice posted on Monday, June 04, 2001 - 1:37 pm
I am able to successfully estimate a 1 class model. However, I am experiencing difficulties finding appropriate starting values for models that include 2 or more classes. I began by letting Mplus estimate the 1 class parameter estimates (intercept, slope, and quadratic) assuming that there is no within-class variation (something to which I want to maintain in all future model estimations - that is, estimates that include 2 or more classes). This strategy, however, does not enable me to estimate variance around the growth factor means. Using the sample means from the 7 observed measures (del12-del31) I estimated an overall mean and standard deviation for purposes of the mean +/- 1/2 sd strategy. This did not help. I received the following error message with the 2 class model:
"The estimated covariance matrix for the Y variables in class 1 could not be inverted. Problem involving variable del31. Computation could not be completed in iteration 4. Change your model and/or starting values...."
I've received a similar error message when trying to use start values from earlier mixture models based on single cohorts (instead of the sequential design as I'm trying to do here). Thus, how can I detect the problem involving variable del31? Does this have to do with a potential data distribution assumption, namely normally distributed data. For I'm using delinquency data with del31 representing delinquency frequency at age 31 (which includes many zero's as expected).
p.s. the mean +/- 1/2 sd strategy worked well for me when estimating mixture models that were based on single cohorts.
It's hard for me to totally understand what you've done. It sounds like a combination of the two stragegies outlined above. If send me the successful one class run and then the next attempt that is not successful, I can take a look at them. We have found that one of the two strategies above work well. Perhaps there is some misunderstanding that will be obvious by looking at your outputs. Please send them to email@example.com.
I have a question about a longitudinal study, which I think can be approached as a cohort sequention design. I am studying the development of alcoholism, measured by total number of symptoms of alcoholism at 4 time points. At the first time period, the men range in age from 22 to 48, with most of the men in the age range of 25 to 40. The men were interviewed at 3 year intervals. Because there would be so much missing data if I used actual age of the men, I have grouped them into 3-year intervals. At time 1, I have ages 25-27,28-30, 31-33, . . ., up to 46-48. The endpoint ages have few cases in them. I have been able to run the growth mixture model, by allowing no variance in the growth factors. To try to run the model with variance in growth factors, I have used starting values from the model with no variance in growth factors and I have used the one-class solution +/- 1 s.d. as starting values for the growth factors. Neither of these results in a model that converges. I have several questions. 1) The alcoholic men were recruited when they were convicted of a drunk driving offense, so in some ways they are similar at time 1 - does it still make sense to group them by ages, or is there something else I should put in my model to model the importance of the event at time 1. 2)What else could I do to get the model to converge if the two different methods of finding starting values does not work? 3) What to do with the endpoints where there are very few people? Should I combine them into a larger age range, or just not use them? 4)Approximately 30% of the sample has no symptoms at any time points (the control group), what to do with these zeros? 5) Do you think it makes sense to group the ages into ranges as I have done? (I also tried grouping into larger age ranges - 5-year spans and I also could only get the 2 class model to converge if I set the variances to zero, unfortunately the results for the growth factors were different for this age grouping than for the 3-year time span, which lowers my confidence in these results. ) Thanks for the help.
bmuthen posted on Tuesday, March 26, 2002 - 6:13 pm
Your approach sounds reasonable. For 1) and 2), have you looked at the individuals' development over the 3 time points to give you ideas of growth curve shapes? Is there a spike in the outcome at the first time point? Do they follow the normative curve, that is a downward slope after 25 (see the Muthen & Muthen 2000 article in JSA)? You mention that a growth model with zero growth factor variances converges - does it seem to fit the observed data well? Regarding 3), this should not be a problem given that you have few parameters specific to those tail ages. But have you checked the covariance coverage for the variables in the missing data output? You don't want too small coverage. Regarding 4), there are emerging methodologies for outcomes with strong floor effects. In the meanwhile, why not analyze only the non-control group to check the difference.
Maria Wong posted on Wednesday, April 03, 2002 - 7:45 am
Hello, I am doing latent growth curve analyses on children's externalizing and internalizing problems. Data were gathered every three years (wave 1: 3-5 years old, wave 2: 6-8, wave 3: 9-11, wave 4: 12-14). I am using age instead of wave as the indicator of time. Some covariance coverages are 0, e.g., no children were measured both at 3 and 4 years old. In addition, close to 2/3 of the data is missing at each age. I have trouble getting the h1 model to converge a. Is it OK to have zero coverage on some variables? b. I tried to sharpen the h1 convergence criterion (I used .00001) but wasn't sure whether I did it right. Any recommendations? c. If the h1 model doesn't converge, is it reasonable to use wave instead of age as the unit of time? Thank you very much for your time!
Zero coverage is OK. Low coverage can be a problem. The only thing H1 does is give you a chi-square statistic. Perhaps you should run without H1 and seen what the results look like. Using wave instead of age would be OK if it allows you to answer your research question.
1)Can you define what you mean by "low coverage"? Are there particular rules for what values are too low, or a way to figure this out for our particular case?
2)If a latent growth model results in a slope variance that is not significantly different from zero, does this indicate that it does not make sense to do a growth mixture model allowing different slopes across classes?
3)In some examples of growth mixture modeling with latent trajectory classes, I see that you have allowed for different variances of growth factors and residual variances of observed variables across classes, whereas in others these parameters are free(not fixed to 0), but equal across classes. Can you explain the criteria used to decide which of these choices to use in this modeling?
1. Each element in the coverage matrix should preferably have coverage greater than 50%. A coverage less than 10% usually gives numerical problems. This is discussed in Joe Shafer's missing data book.
2. That may be true but testing it in practice will answer the question for sure.
3. In some examples there is a class which has lower variability than other classes. For example, in paper #87 (downloadable from the Mplus home page), the students in the low normative class have much less variability than the other classes. You can see this graphically by plotting the individual observed trajectories for each class. See the graphics of paper #82. You can test this by a chi-square difference test where in one model the variances are equal across classes and in the other model one class has its variance free from the others. To get the chi-square difference, take two times the difference of the log likelihood values. We recommend starting with the intercept variance only being different.
I am (again) working on a growth mixture model of symptoms of alcoholism over ages 12-42. Since the outcome is count data with many zeros, I have been using zero-inflated Poisson model. The syntax I used is like Example 8.5 in the User's guide(3rd ed). When I look at the graphs of estimated means and sample means (or alternatively the Residuals of means in RESIDUALS output), I find that the residuals are quite high as compared to the means (off by 40-50% at times). From prior exchanges with Mplus support, I believe this means that the model is poorly fitting. I have experimented with freeing intercept and slope variance in individual classes, and this has shown model fit improvement (using difference of loglikelihood, which I hope is acceptable), but hasn't affected the residuals. 1) Is there any overall fit statistic for this model which would tell me if the model is acceptably fitting or not? 2) Do you think that the high residuals of means shows a poor fitting model? (In some cases, I think that I have found that models with a significantly better loglikelihood have worse residuals.) 3) Is the 2 times loglikelihood difference test valid for nested models with these distributions? 4)MOST IMPORTANT: Can you suggest any types of model modifications that would help to give me a better fitting model? I cannot use MODINCES with algorithm = integration, so cannot get them from the software.
I have a cohort sequential design with time-varying predictor variables. However, the time varying predictor variables have missing values because of the cohort sequential desgin. 1. MPLUS generates mixtures without time-varying covariates and i am satisfied with the results, but 2.MPLUS refuses to obtain mixtures with a time-varying variable with missing data. How can i overcome this situation?
You would need to bring the covariates into the model and make distributional assumptions about them. Mention their variances in the MODEL command. If this does not help, send your input, data, output, and license number to firstname.lastname@example.org.
Yes. You can handle that either analogous to the multiple group example 6.18 in the Version 5 UG - replacing multiple groups with KNOWNCLASS due to the mixture aspect, or you can handle that by a missing data approach (all individuals have missing data on some of the different time points).
I have 3 questions and will be glad to receive some advice from you.
1) I have a cohort-sequential design with 3 data waves and 8 age cohorts. For analyses purposes I calculated new variables putting several cohorts together: delinquency at age 15, delinquency at age 16,… I have about 50 – 200 cases for each newly created variable. I then calculated LGMM and estimated the missing values with ML. Despite that the calculations worked quite well I have a conceptual question: The different cohorts included in one class may differ in specific characteristics (e.g. gender distribution, cohort-effects) and therefore may influence the shape of the trajectory. I wonder if you have an idea how I can deal with this issue. Do you know any paper discussing this issue?
2) Do you consider it as problematic to model quadratic shapes with this data (given that there are only 3 data waves for each case “in reality”)
3) What strategy do you propose to predict latent class membership (LGMM) by one time-varying covariate?
1) see the Mplus Version 5 User's Guide ex 6.18 for an analysis that enables testing of equality across cohorts of certain parameters.
2) In a usual, single-cohor design 3 time points is not sufficient to identify all the parameters of a quadratic growth model (there are only 3 covariances to identify 6 growth factor variance-covariance parameters). But depending on the particular arrangement of the multiple cohort design it may be possible to identify more parameters than in a single-cohort design. Try it and see if you get a message of a non-identified model.
3) Without a specific example, I have a hard time imagining a latent class variable predicted by a time-varying covariate - because then the latent class variable changes over time and the analysis would seem better conceptualized in terms of a latent transition model.
I have been reading through the support forums for Mplus to find some help with setting up the programming for cohort sequential designs and think my problems are similar to the setup Mohini Lokhande mentioned on 08/04/2008.
I am working on a dataset with a cohort sequential design with 5-11 year olds that are measured 3 times on the same variables. So for example, 5 year olds have data at 5, 6 and 7 years while 7 year olds have data for 7, 8, and 9 years. Using this design, there are missing data both at random and by design.
I have tried to control for the data missing by design (using both the DATA COHORT step as well as setting up the variables outside Mplus and using PATTERN IS), but I get the message "NO CONVERGENCE IN THE MISSING DATA ESTIMATION OF THE SAMPLE STATISTICS. THIS MAY BE DUE TO SPARSE DATA LEADING TO A SINGULAR COVARIANCE MATRIX ESTIMATE" and am unable to even get descriptive stats from TYPE = BASIC. It was my understanding that the pattern steps would help account for data that is missing and is supposed to be missing.
I am unclear if I have an insufficient N for the different time points (my overall N is 201 with even distribution across ages 5-11 at wave 1) or if I am not setting up the data properly.
I would be happy to send along my programming if that is helpful and would appreciate all help and guidance you can provide. Thanks in advance!
You may want to try the multiple group approach to multiple cohort that is shown in Example 6.18. This can work better with sparse data. If you continue to have problems, send your files and license number to email@example.com.
Anne Chan posted on Friday, February 19, 2010 - 4:08 pm
Hello. My research would like to look at how students' interest changes from age 11, age 13, to age 15 . I am working on a dataset with a cohort sequential design with 3 measurement waves. There are 3 cohorts in my dataset. For the youngest cohorts, I have their data from 13 to 15 year old (age 11 data is missing). For the olderest cohorts, I have their data from 11 to 13 years old (age 15 is missing). For the middle cohort, I have all the data.
In this case, can I just treat the missing as "random" and do GMM as if it is a single cohort data (and I will restructure the dataset according to the age of the respondents so as to fit this purpose) or I should do a MULTIPLE COHORT model? If I have to do a multiple cohort GGM model, can you point me to an example?