Anonymous posted on Friday, July 01, 2005 - 9:59 am
I am running a growth mixture model and wanted to assess some distal outcomes, I put them in the usevar list like an example in the manual and got an estimate of the means in each class; however, I would like to know if they differ from each other, is there a way to test this statistically?
bmuthen posted on Saturday, July 02, 2005 - 6:00 pm
Run the model with and without holding the means equal across classes to get a chi-square test as 2 times the difference in log likelihood for the two models.
Anonymous posted on Friday, July 08, 2005 - 3:01 pm
I am trying to predict from 3 latent classes to 4 continuous outcomes. I found the previous posting about how to determine if outcomes differ from one another to be useful. However, since I have 3 different classes, how can I determine which classes differ? I can imagine holding the means of the outcomes equal across two classes while allowing them to be free in a third and examining log-likelihood values. However, I am concerned that this will lead to multiple tests and will inflate my Type I error rate. Do you have any guidance on this? Thank you!
I wouldn't worry too much about this. You can take a conservative approach to avoid criticism by using a smaller p-value.
Anonymous posted on Wednesday, July 20, 2005 - 2:35 pm
Following on the previous posting. I have 4 latent classes. The largest group is the best performing group. If I hold the distal outcome to be equal for all 4 classes, it is not surprising that null hypothesis will be rejected as the other 3 classes differ from the always good class. Do you have any suggestion on pair-wise testing the differences in distal outcome in the 3 smaller classes? By the way, for binary distal outcome, where can I find the standard error for calculating confidence interval for odds ratio?
Thank you so much!!
bmuthen posted on Wednesday, July 20, 2005 - 2:49 pm
For the pair-wise testing, you can compute the quantities from the estimated model and Tech3 information using the approach of correlated t tests (Tech3 gives the covariance between estimates in different classes). I think the OR confidence interval is presented in the output (at least in v 3.12).
lulu posted on Wednesday, November 02, 2005 - 1:22 pm
I have a question about the confidence intervals for the parameter estimates. Mplus gives symmetric confidence intervals by default. I am wondering is that based on normal approximation, i.e. the estimate+/-se*z? by the way, I was using growth mixture modeling
You can use Model Test to get a Wald chi-square test in a single run, or you can do 2 runs and compute chi-square as the 2*LL diff with and without means held equal across the classes.
Jungeun Lee posted on Wednesday, July 18, 2007 - 4:52 pm
Thanks for your response! I have a three class growth mixture model and wrote a syntax to get a Wald chi-square test. Mplus gave me error message. Could you let me know what I am missing here? %c#1% [tcdel16] (m1);
Thanks for the response! I deleted the line and got a Wald test. Down below is the output that I got from it. Can I say that all those means are different from each other based on the output? Since the line 0=m2-m3 was deleted, I am not sure that the output reflects this relationship also or not... I think that I am not super clear about why 0=m2-m3 adds redundancy to the test.
Wald Test of Parameter Constraints Value 260.266 Degrees of Freedom 2 P-Value 0.0000
I have done a mixture analyses over 13 measurements of the development of delinquency. For each of these trajectories, I would like to examine whether they relate differentially to the development of parenting . That is, I have 10 measurements of parenting and I would like to do a multivariate growth model including the intercept and slopes for parenting and the intercept and slopes for the same measure of delinquency.
Is this possible? Using the delinquency measure in the mixture analyses, and then subsequently using the growth factors of this delinquency measure in a multigroup multivariate model, with groups formed by latent trajectories? Are there maybe others who have used this approach before?
You can include a growth model the for parenting variable as part of the GMM. It is not a good idea to estimate a model in steps if it can be estimated simultaneously. So I would do a parallel process growth mixture model.
Michelle posted on Wednesday, June 17, 2009 - 12:01 pm
I am working on an LCGA model of healthy aging measured at 4 timepoints (4 waves of data across 20 years), with three latent classes and three known classes (based on age). I would like to predict mortality as a distal catgeorical outcome; mortality is recorded at each wave, so essentially this is a time-varying distal outcome. Can I predict death at each wave, or do I need to collapse this variable into a "mortality-at-any-time" variable? If I can use the time-varying measure, how would I write this in the commands? All the examples I have seen have been for a single distal outcome.
Finally, I am wondering how to instruct MPlus to handle the missing data for this model. Essentially, people become "missing" on the healthy aging measure once they have died - it seems to me this is not MAR, and I am wondering how to instruct MPlus to handle this.
Michelle posted on Wednesday, June 17, 2009 - 1:48 pm
Addendum to previous post - the question about the missing data would be two-fold. We do have some people who are missing (as might be dealt with using MAR techniques) but then we also essentially have a dichotomous outcome (physically healthy or not) that would be censored when someone dies. Is there a way to handle two types of missing-ness? Or should I just create a dataset where people are removed after they die - i.e. they would have different numbers of observations of the outcome measure?
You are right that it is important to think carefully about missing data due to death. This is a big topic and there are many aproaches you can take using Mplus. I recently gave a talk on this but haven't written it up yet. MAR may hold if previous observed values on the outcome is what predicts death. To be on the safe side, however, you want to explore "NMAR" techniques - this essentially brings in dropout information into the model. For example, you can augment your growth mixture model with a dropout model by adding a survival model for the time of death. Survival can for example be a function of trajectory class. By adding this dropout information, you are making the MAR assumption more plausible.
Michelle posted on Thursday, June 18, 2009 - 6:24 am
Thanks - this is helpful. I look forward to reading more about this - will the talk be posted here on the website?
Anne Chan posted on Wednesday, April 14, 2010 - 11:16 am
I am trying to look for the ways to conduct pairwise test to check if there are signficant differenes between each pair of classes generated from mixture growth modeling in terms of a continuous distal outcome. May I ask: (1) Do I have to do it by saving the class membership into the data file. And then use the class membership as a observed variable for further test? (2) If I test the differences by running the model with and without holding the means equal across classes and check if the chi-square are significantly differences between models, does it mean I have to run the test for several times so as to check the difference between each test? (3) I understand there is an alternative way to do it (by MODEL TEST). However, I checked the user guide and could not find a example to follow. May I ask can you point me to an example? Also, is that (checking if the each pair of classes are difference in term of a continuous distal variable) covered in the online video?
Note that I do not have separate "b0" (i.e., intercept coeff) in the above equation. I don't see it in the output.
Question #3: If I use Model Test to test the difference in means of distal outcome, can I use original model to infer the difference in means about the second model (i.e., the model with different covariate values)?
You need to use MODEL TEST to obtain the Wald Test. See the user's guide for further information.
John Woo posted on Tuesday, December 07, 2010 - 3:37 pm
Linda, my question was whether the results for MODEL TEST are available when using TYPE=IMPUTATION. I know there are some functions (such as cprob) that are not available in the outputs for running imputed datasets.
When I ran my model yesterday using TYPE=IMPUTATION and MODEL TEST, I got clean results (i.e., no error messages), except I did not get any Wald test results.
I am using LCA with covariates, many of which are categorical. I have created dummy variables for these covariates (n-1 dummy variables for an n-level covariate). Using MODEL TEST, I can get a multiple df Wald test for each covariate. Is there any way to run more than one Wald test at the same time? (rather than having to change the MODEL TEST statement and re-run for each covariate)
Thanks for the quick reply. I would love it if the ability to specify more than one MODEL TEST became a feature in a future update. (1)
Also, (2) the ability to specify categorical covariates with LCA would be nice (i.e. the program would automatically create the dummy variables and also, if used in MODEL TEST, it would know to do a multiple df test automatically).
In order of preference for future consideration, I'd want (1).
I have 10 repeated measures on felt emotions to predict consumption, a continuous distal outcome, for two groups of people. Specifically, I would like to test the hypothesis that the linear and quadratic trends are different for the two groups, and that these differences in trajectories predict consumption. Following Bengt's recommendation to me in another thread, I used the examples 8.6 and 8.8 to create the GMM below:
a) is this is the right approach, given my research hypotheses? b) how do I find out what is the effect of the linear and quadratic factors on the outcome?
DATA: FILE IS als.dat; VARIABLE: NAMES ARE Subject Cond subno litedark leftone lefttwo ap1-ap10 ag1-ag10; USEVARIABLES ARE leftone ap1-ap10; CLASSES = cg (2) c(2); KNOWNCLASS = cg (litedark = 1, litedark = 2); ANALYSIS: TYPE = MIXTURE; MODEL: %OVERALL% i s q| ap1@0ap2@1ap3@2ap4@3ap5@4ap6@5ap7@6ap8@7ap9@8ap10@9; c on cg; %cg#1.c#1% %cg#2.c#1% %cg#1.c#2% %cg#2.c#2% OUTPUT: TECH1 TECH8 CINTERVAL;
Your i, s, q means will vary across all 2 x 2 classes in this setup, but that is probably what you want. I assume your distal is "leftone" and its mean will vary over the 2 x 2 classes, so that is the effect of growth on distal here (also including an effect of membership of your cg). I don't think you can disentangle the influence of linear and quadratic factors on the distal because they interact. That's why it is better to let the 2 mixture classes of c influence the distal as is done here. So in sum, I think this probably gives what you might want.
Anna Wolf posted on Monday, April 08, 2013 - 5:30 am
I was hoping to get some assistance with comparing intercepts and slopes across classes.
I’ve run a latent class growth analysis with a dummy covariate (e.g. treatment vs control groups). There are three classes.
My understanding from previous posts is that I should use Wald chi-2 testing via Model Test. I’m just not exactly sure of what the syntax would look like.
I think I need to added the following to my syntax: MODEL TEST: 0=p1-p2; 0=p1-p3;
I've also added the labels: (p1), (p2), (p3) for the thee 'slope on treatment' commands for each class. Does this test the mean slope differences between the classes?
If so, how do I also go about comparing the intercepts across classes?
It looks like you have done this correctly. For the intercepts, you would label them and do the same test.
Anna Wolf posted on Wednesday, April 10, 2013 - 5:41 pm
Thanks Linda for your speedy reply!
So, just to clarify, the Wald Test of Parameter Constraints result for the above syntax would compare the slopes of both class 2 (p2) and class 3 (p3) with class 1 (p1). Is that correct?
Thus, a significant Wald result would mean that there is a significant difference between the slopes of both class 2 and 3 compared to class 1. Is that right?
Ultimately, I am wanting to compare the slopes of all three classes separately (e.g. class 1 (p1) with class 2 (p2), class 1 (p1) with class 3 (p3), and class 2 (p2) with class 3 (p3)). Is it still correct to just add the syntax:
MODEL TEST: 0=p1-p2
to compare class 1 with class 2, then repeat accordingly for the direct (pairwise) comparisons for the other two classes in separate analyses? e.g.
Hi, I am new to GMM but want to assess whether class predicts a distal outcome (remission). When I run the GMM without the distal outcome, a 3-class model fits best. A 2-class model seems to fit best when adding the categorical outcome (and using LCGA. 1. Is this syntax correct? Does %c#1% change the specification of the model? a) Without distal outcome: Variable: names are FAMILYID prepars midpars postpars remiss ; usevar = prepars midpars postpars ; missing=all (999); CLASSES = c(3); Analysis: type=mixture; Starts=500 20; stiterations=20; Model: %OVERALL% i s | prepars@0midpars@1postpars@2; %c#1% i s; %c#2% i s; %c#3% i s; Output: sampstat standardized tech1 TECH8 TECH11 TECH14;
b) with distal outcome Variable: names are FAMILYID prepars midpars postpars remiss ; usevar = prepars midpars postpars remiss; missing=all (999); CLASSES = c(2); CATEGORICAL = remiss; ANALYSIS: TYPE = MIXTURE; STARTS = 500 20; MODEL: %OVERALL% i s | prepars@0midpars@1postpars@2; OUTPUT: TECH1 TECH8 TECH11 TECH14;
Thank you for your feedback. When I fix this syntax and re-run, I still get a better fit for the 2-class model when including a distal outcome, and better fit for the 3-class model without the outcome when allowing class-varying variance. When I do not allow the variance to vary by class, neither fits very well.
1. How does adding a distal outcome affect the class formation?
2. When I have read papers using this method they have tended to generated the model for class formation first, then added the distal outcome and interpreted the relationship between classes and outcome (but do no re-interpret the class formation). I would have thought the results would be similar, but is it more appropriate to interpret the classes in the presence of an outcome (thus it is a complete model) or independently?
The two approaches (including distal in a 1-step approach, or doing a 3-step analysis where the distal is not included in the 1st step) answer different questions. This paper on our website discusses why a distal can change class formation:
Asparouhov, T. & Muthén, B. (2014). Auxiliary variables in mixture modeling: Three-step approaches using Mplus. Structural Equation Modeling: A Multidisciplinary Journal, 21:3, 329-341. The posted version corrects several typos in the published version. An earlier version of this paper was posted as web note 15. Appendices with Mplus scripts are available here.
For a newer paper, see
Asparouhov, T. & Muthén, B. (2014). Auxiliary variables in mixture modeling: Using the BCH method in Mplus to estimate a distal outcome model and an arbitrary second model. Web note 21.
I have a 5-class LCGM predicting to a categorical distal outcome. I based my model syntax on example 8.6(GMM with a categorical distal outcome), also including covariates with R3STEP on the AUX command.
I am familiar with the discussion of using BCH and DCAT in predicting distal outcomes, and am thinking that these are now the preferred options over the example in 8.6 to predict to a distal outcome.
Question: Is the current recommendation to use BCH(for continuous distal outcomes) and DCAT for categorical outcomes?
Daniel Lee posted on Monday, September 26, 2016 - 11:25 am
Hi Dr. Muthen,
I am using the 3-step approaches, R3STEP and D3STEP, separately to examine predictors and distal outcomes for my 2-class GMM (stress). I'm wondering if there is a way to examine predictors of the latent classes, as well as distal outcomes of the latent classes, all in a single model.
So for example, if gender is a predictor for my 2 class model (stress), and my 2 class model also predicts nicotine use (in a separate model however), can I look at this together in a single model?
Daniel Lee posted on Monday, September 26, 2016 - 12:04 pm
Also- as follow-up to my last question: If the above is possible (including predictors and outcomes of latent growth classes into one model) can you point to resources that can offer some instruction (i.e., explanation and codes).
See section 3.2 of the paper on our website including the table at the end of recommended approaches:
Asparouhov, T. & Muthén, B. (2014). Auxiliary variables in mixture modeling: Using the BCH method in Mplus to estimate a distal outcome model and an arbitrary second model. Web note 21.
Daniel Lee posted on Tuesday, September 27, 2016 - 6:33 am
Thank you so much, Dr. Muthen!
Daniel Lee posted on Friday, September 30, 2016 - 7:44 pm
On September 26, 2016 (4:13 PM), you gave the excellent recommendation of utilizing the BCH method. I find this approach fascinating. I had two questions about this method:
1) Can I include multiple covariates of latent growth classes and multiple outcomes?
2) For the growth term, would the .inp code look something like this:
Model: %Overall% int slp | dis1@0dis2@1dis3@2; int slp on gender ses; alcohol nicotine on gender; %C#1% int slp; dis1-dis3(1); alcohol nicotine on gender ses; %C#2% int slp; dis1-dis3(2); alcohol nicotine on gender ses;
So the big picture idea is...gender and ses (wave 1) predicts the latent growth classes (2-class GMM model)...and the latent classes predict alcohol and nicotine use (measured at the last wave of data collection).
This model did not run, and I'm sure I'm slipping up here somewhere. You expertise is greatly appreciated!
Hello Dr. Muthen, I am interested in predicting a complex distal outcome model but am new to the approaches laid out in your 2014 papers.
I previously specified a GMM model with 3 classes (self-regulation growth across 9 time points) with trajectories following an exponential curve where growth parameters (level, slope, rate) vary across the classes (but vars/covars do not).
I would like to look at a distal auxiliary model predicting nonlinear literacy growth:
Following the example in Asparouhov, T. & Muthén, B. (2014)- I tried to rerun my 3 class solution including the input needed to save the BCH weights. However, I get the error: TYPE=MIXTURE is not available for multiple group analysis. Can you give any insight as to where I went wrong?
Here is the beginning input: Variable: NAMES = id class class3 HTT42Le HTT4348 HTT4954 HTT5560 HTT6166 HTT6772 HTT7378 HTT7984 htt85up wjlwwp3f wjlwwp3s wjlwwp4f wjlwwp4s wjlwwkf wjlwwks wjlww1f wjlww1s wjlww2f wjlww2s;
Thank you for directing me to 8.8, it is a great example of using known class with gmm (and I tweaked some of my code based upon it). However, I think I am still misunderstanding. It seems to me that 8.8. would be useful if I was using self-reg as known class and asking does literacy follow different trajectories within those 'known classes.' This is a good question, but a bit past where I was heading for this analysis. At the moment, I am hoping to incorporate the probabilistic nature of the original self-reg trajectory assignment into predicting the later literacy model (auxiliary model) with one literacy trajectory per one self-regulation group/trajectory. I have had success using self reg as known classes, but was worried my estimates were biased, which is why I was looking into the BCH approach. Could you clarify for me if there is a way to take into account the probabilistic nature of the self-reg trajectories when I predict literacy?
Please send the output of your BCH attempt to Support along with your license number.
Belle posted on Saturday, April 28, 2018 - 1:43 am
Is there a way other than having one constrained model (constraining intercept and slope to be equal to one another for each group) and one freely estimated model to look at whether two groups have overall different growth trajectories (at Interecpt AND slope)?
Either of the two ways is fine. In the approach of running 2 models you use a likelihood-ratio chi-square test and in the Model Test approach you use a Wald chi-square test; they typically give the same result.
You should compare unstandardized estimates.
Belle posted on Saturday, April 28, 2018 - 10:20 am
So this is correct: running a freely estimated model THEN a constrained model and what I do is put information from both chi squares in a calculator I found online and then that gives me a p value. So if that p value is significant there is a difference between both groups growth trajectory?
Sometimes I get discrepencies between these two tests.. I figured it’s because in one approach I’m just looking at slope and the other I’m looking at the whole Model. Any advice about this issue I’m encountering? Or which is the most unbiased way to go?
When I set my s@0 for one group because I’m getting an error message about “positive definite...linear dependency” among that particular group I am not longer able to do the WALD. It simple won’t run. Am I perhaps doing something wrong or will it just not run because I’m fixing the slope variance for that group? Do I need to fix it for both groups? I use the code above. I just add “s@0” for one group. I get a message saying “a1 is ambiguous” or something about parameter estimate isn’t in the model.
Also, when interpreting intercept and slope on in standardized I should just look at the I and S for each group because everything else is fixed so I don’t see estimates for each “timepoint”, right?
Follow up on Q2: When I do the invariant testing (fix I and S in both groups equal to each other) my DF is 24 instead of 26 when I freely estimate. But I then do the chi square diff test (put in DF difference and both 'chi-square model fit') and the results state that the group growth trajectories are different.
When I do the Wald for I and Wald for S, I get a result on both saying Wald is not significant. When I do the Wald for I and S I get 26 DF like when I freely estimate the model.
Are these methods not comparable? If so, which one is correct for my question?
"Are these groups statistically significantly different in regards to their growth trajectories"
Thank for your reply! Looking forward your response.