Anonymous posted on Monday, June 03, 2002 - 1:10 pm
I am working on a latent class growth analysis (LCGA) of binary indicators, similar to the one in example 25.11 of the Version 2 manual. The only differences are (a) three timepoints instead of four, and (b) a non-linear growth pattern represented with Helmert contrast coefficients (i.e., comparing each timepoint to the mean of those following). In performing this analysis, I have encoutered two points of confusion. The first is general, the second more specific to my model.
First, what is the scale of the "Factor Means" (e.g., intercept and slope factors)? Are these logits, or something else?
Second, the 2-class model runs normally (though the fit is unexceptional), but I begin to encounter estimation problems with a 3-class solution. These typically involve the Fisher Information Matrix in some way. The program cautions me that my start values may be poor, or the model may be unidentified, or both. So far, changing the start values has changed the details of the intermediate solution, but hasn't solved the problem. Furthermore, the error messages frequently cite "parameter #8," which led me to notice that, with 3 binary indicators, the underlying contingency table would have 8 "patterns", only seven of which represent unique pieces of information. Is the model, therefore, underidentified in the absolute sense (you can't have more parameters in the model than the number of unique pieces of information -- period)? Or is this more likely a sign of empirical underidentification (model is ok in principle but isn't right for the data)?
I would appreciate any insights from those with more experience in LCGA than I have! Thank you.
bmuthen posted on Tuesday, June 04, 2002 - 6:43 am
Yes, the scale of the factor means is logits.
The best way to check for identification is to request the MLF estimator (this is done automatically in Mplus version 2.1). For identification of all parameters you have to have at least as many pieces of information as parameters, so from this point of view you can only have 7 parameters.
Dustin posted on Friday, February 04, 2005 - 2:48 pm
I am interested in understanding the similarities and differences in latent growth trajectories that are identified using various statistical approached. Is LCGA with binary variables in Mplus identical to Nagin's proc traj modeling program in terms of extracting groups? In addition, would you expect to obtain different trajectory groups using GGMM in comparison to the previously mentioned techniques? I know a lot of it has to due with stopping points, but if you chose to extract the same number of latent classes would you anticipate obtaining the same results across the different procedures?
bmuthen posted on Friday, February 04, 2005 - 2:57 pm
see Muthen (2004) from the Kaplan-edited book which is in pdf on our web site.
I would expect the same number of classes with Mplus or Proc Traj if the models are the same, that is, LCGA. I would expect a different number of classes with GGMM given that within class variability is allowed unlike in LCGA.
Dustin posted on Saturday, February 05, 2005 - 10:07 am
I can not find the examples for the GGMM model referenced in the Muthen (2004) chapter of the Kaplan-edited book. Have they not been posted yet?
bmuthen posted on Saturday, February 05, 2005 - 1:45 pm
Correct. If you have a specific example you are interested in, I could send it to you.
Dustin posted on Sunday, February 06, 2005 - 10:31 am
That would be great. I am interested in the delinquency GGMM model that was specified in the chapter. I am attempting to do a GGMM using a binary indicator of delinquency across 13 time points from age 7 to 19 with missing data (using a linear and quadratic curve components). In your experience, is this model too computationally complex for GGMM. I notice that you fixed the quadratic slope variance to zero to help simplify the book chapter model. Was this done due to the computational complexity of the model? I was planning to let the linear and quadratic slope variance be freely estimated given that both parameters are significant in the conventional one-class growth model.
bmuthen posted on Sunday, February 06, 2005 - 11:55 am
3 random effects is computationally heavy with growth mixtures. You can reduce the burden by using integration = 5. But typically you don't need a random quadratic but can set its variance at zero - because you have classes that pick up much of the variation. I would do an LCGA model first (all variances zero) and then add intercept variance, then add linear slope variance.
Dustin posted on Monday, February 07, 2005 - 3:59 am
Sounds good. Thanks for the advice. I look forward to receiving your syntax.
bmuthen posted on Monday, February 07, 2005 - 5:08 pm
Dustin posted on Wednesday, February 09, 2005 - 10:39 am
I would actually like the syntax for the GGMM model that was specified in the book. Sorry for the misunderstanding. I have already run the LCGA with my data without any problems. It would be interesting to see the model and output for the different class solutions using GGMM in the book if it is avaiable. Again, my e-mail is email is firstname.lastname@example.org
bmuthen posted on Wednesday, February 09, 2005 - 10:52 am
Will send it to you.
Anonymous posted on Monday, March 07, 2005 - 4:55 am
I have performed lcga on 3 identity dimensions simultaneously and lcga on 2 adjustment dimensions simultaneously. The first lcga revealed four classes and the second lcga revealed three classes. Now I want to examine how the four identity-classes relate to the three adjustment-classes, but I am a bit puzzled how to proceed due to the fact that group membership is probabilistic. With known groups, one can simply perform chi-square analyses by crosstabulating both group memberships, but I do not know if this can be done using latent classes? Similarly, I wonder if one can save group membership obtained using lcga and use this group membership as a basis to conduct multigroup-analysis?
Many thanks in advance for all helpful suggestions!
You can save the posterior probabilities and most likely classmembership. But using most likely class membership in a subsequent analysis would introduce error as each observation has a probability of being in each class. The error would be greater as entropy declines.
You can have a model with more than one categorical latent variable. I would suggest that. See Example 7.14 in the Mplus User's Guide. Then you can test a set of nested models.
Anonymous posted on Tuesday, March 08, 2005 - 1:07 am
Is TECH11 (LMR-test) appropriate to define the optimal number of classes in multivariate LCGA (LCGA performed simultaneously on two or more variables at a time), besides BIC-values?
Thank you for your help.
Anonymous posted on Tuesday, March 08, 2005 - 5:22 am
I have a question concerning LCGA. I have performed LCGA on two variables and found a number of classes for variable a and a number of classes for variable b. Is it a viable option to save group membership probabilities for all classes obtained and to correlate them among each other? A positive correlation, for instance, would then indicate that having a high probablility to belong to the first class for variable a is associated with having a low probability to belong to the first class for variable b.
TECH11 is one piece of information to use in deciding on the number of classes. This issue is discussed in the following paper:
Muthén, B. (2004). Latent variable analysis: Growth mixture modeling and related techniques for longitudinal data. In D. Kaplan (ed.), Handbook of quantitative methodology for the social sciences (pp. 345-368). Newbury Park, CA: Sage Publications.
Using most likely class membership in this way would introduce errors given that observations are in all classes proportionally during model estimation. I suggest having a model which contains two categorical latent variables and look at the correlation between these.
Anonymous posted on Friday, March 25, 2005 - 11:57 am
Hi, I want to use growth mixture model to analyse a longitudinal dataset which contains 12 waves of a continous response variable. The problem is that many subjects only have a few waves of data, some have less than 4. Can Mplus handle this situation? if yes,what approach is used, are missing data filled in first? also, in Muthen and Shedden's paper, binary outcomes (u) can be predicted using class memebership and covariates. has it become a procedure in Mplus yet? Many thanks,
bmuthen posted on Friday, March 25, 2005 - 3:54 pm
Yes, Mplus handles missing data by the standard approach of MAR under ML (see introduction paragraphs for the Missing Data section of Mplus Discussion, which is taken from the User's Guide).
Yes, all of what is in Muthen-Shedden is in Mplus and much much more general models. See for example the 2002 Biostatistics paper by Muthen et al on the Mplus web site.
Similar to a situation described above, I am trying to use a GMM to analyze a longitudinal data set that contains 44 waves of a continuous variable. There is quite a lot of missing data (I think the worst case has about half the data points missing). From several answers I have seen on this discussion board, and from reading the Mplus manual, I understand that Mplus handles missing data.
I'm new to Mplus, and am having trouble setting up my model correctly. I have followed ex8.1 from the User's Guide (version3). Modifying this dataset to introduce missing data, but keeping the syntax from the book, I am able to run the analysis. However, when I apply this simple syntax to my dataset, I get the following message:
***ERROR in Model command Growth factor indicators must be all observed or all latent.
What does this mean? Is there an example (data, syntax) that you can recommend that would demonstrate a GMM or LCGA that incorporates missing data?
The error message means that you are using both observed and latent variables in the same growth model.
If you have missing data and want to estimate the model taking this into account, you add TYPE=MISSING; to the ANALYSIS command.
If this is not sufficient information to help you, please send your input, data, output, and license number to email@example.com so we can see exactly what the problem is.
Anonymous posted on Wednesday, January 18, 2006 - 9:06 am
Dear Drs. Muthen,
I am using GMM to model trajectories as a function of 5 classes and then predict latent trajectory class from covariates.
The examples in the manual that I've found deal with two trajectory classes, and I understand class regressed on a predictor as a logistic regression (class 1 vs. 2).
However, in my case, where there are 5 trajectory classes and I've regressed latent trajectory class #1 on a predictor
c#1 ON x
I only get one regression coefficient in the output. I guess I expected to see four, one each for predicting class 1 vs. 2, 1 vs. 3, and 1 vs. 4, like one would get with ordinary multinomial regression.
What does the regression coefficient from the above statement mean when there are more than two classes? Is it the reference class vs. all others?
Anonymous posted on Wednesday, January 18, 2006 - 10:02 am
One additional question on GMM with a covariate.
The class membership probabilities seem to change a bit with the addition of covariates. There are missing data, so it makes sense to me that this could be the case. The covariates are contributing additional information on the scores used as indicators of the growth factors.
Further, it seems to me that the class probabilities generated from models with additional covariates are probably more reliable b/c more info in the covariance matrix.
Is this a valid interpretation, or should I be concerned about the differing class membership probabilities?
For a discussion of this issue, see the Muthen chapter in the book edited by Kaplan. You can download it from the website.
Anonymous posted on Wednesday, January 18, 2006 - 12:45 pm
With reference to
c#1 ON x; c#2 ON x; c#3 ON x; c#4 ON x;
I am interested in shifting which class is the reference class for some analyses. For example, I set-up the following regressions to use trajectory class #2 as the reference class (it's the only one excluded from the regression statments).
c#1 ON x; c#3 ON x; c#4 ON x; c#5 ON x;
However, Mplus says that I can't include the highest numbered class in regression analyses. Is there any way around this, so that I can use some other class than the highest number one (5 in this case) as the reference?
Is the warning message (pasted below) equivalent to negative variance, or would this model be appropriate to interpret?
ONE OR MORE PARAMETERS WERE FIXED TO AVOID SINGULARITY OF THE INFORMATION MATRIX. THE SINGULARITY IS MOST LIKELY BECAUSE THE MODEL IS NOT IDENTIFIED, OR BECAUSE OF EMPTY CELLS IN THE JOINT DISTRIBUTION OF THE CATEGORICAL VARIABLES IN THE MODEL. THE FOLLOWING PARAMETERS WERE FIXED: 14 22
It would depend on which parameters are fixed and the type of model. The best thing is to send your input, data, output, and license number to firstname.lastname@example.org. I would not ignore such a message unless I had more information.
I'm trying to run an LCGA on crime rates over an 11 year span (n=4000). I've run several variants of the model below, but continue to get warning messages similar to those below. I've set different starting values, but still get error statements. Am I missing something obvious? Is there a sound way to determine which starting values to use?
WARNING: MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO A NON-POSITIVE DEFINITE FISHER INFORMATION MATRIX. THIS MAY BE DUE TO THE STARTING VALUES BUT MAY ALSO BE AN INDICATION OF NONIDENTIFICATION. THE CONDITION NUMBER IS -0.106D-17.
THE STANDARD ERRORS OF THE MODEL ESTIMATES COULD NOT BE COMPUTED. THIS IS OFTEN DUE TO STARTING VALUES BUT MAY ALSO BE AN INDICATION OF NONIDENTIFICATION. CHANGE YOUR MODEL AND/OR STARTING VALUES. PROBLEM INVOLVING PARAMETER 15.
This is a data dependent problem. Please send your input, data, output, and license number to email@example.com and we will see if we can help you.
Tony Jung posted on Wednesday, September 06, 2006 - 9:53 am
I'm running an LCGA using a zero-inflated poisson model. How do you control for Time 1?
Model: %overall% i s q | u2@-2 u3@-1 u4@0 u5@1 u6@2 ; i s q ON u1 ;
But the ON part of the model is giving me error messages:
*** WARNING in Model command All variables are uncorrelated with all other variables within class. Check that this is what is intended. *** ERROR The following MODEL statements are ignored: * Statements in the OVERALL class: I ON U1 S ON U1 Q ON U1 *** ERROR One or more MODEL statements were ignored. These statements may be incorrect or are only supported by ALGORITHM=INTEGRATION.
What do I need to do to control for Time 1?
Tony Jung posted on Wednesday, September 06, 2006 - 11:21 am
I forgot to add that I am controlling for Time 1 because I have experimental and control groups. Thanks.
Sounds like your model has no random effects as stated - see the UG ex 6.7 - you need to add
algorithm = integration;
and decide on which growth factors are random. As the error message says, I believe algo=int also allows e.g.
i on u1;
But if you want to control for baseline, I think a better way is to center at time 1 so you can work with latent (true) baseline i. Then you can regress s and q on i. See also the Muthen-Curran 1997 article in Psych Meth.
Tony Jung posted on Wednesday, September 13, 2006 - 2:12 pm
Thank you for your helpful suggestions. I have a few more follow-up questions:
First, when I add ALGORITHM=INTEGRATION, it seems to also require INTEGRATION=MONTECARLO when I specify
This has increased the computation time considerably. Is this the correct syntax if I want to go with this approach?
Second, in your chapter, "Latent Variable Analysis" in the Kaplan book, you underscore the importance of including covariates for LCGA. In my case, I take it to mean I should at least include the intervention (COND). However, by doing this, I can no longer get the graphs of the different classes that I used to by doing:
PLOT: SERIES = u1-u6 (s); TYPE = PLOT3 ;
How can I get the estimated means plot of the different classes when doing a conditioned LCGA? Or is this only available for the unconditioned model?
Tony Jung posted on Wednesday, September 13, 2006 - 2:13 pm
Following previous post:
A related question is, if I want to use only waves 2-6 and condition it on wave 1 for the unconditioned LCGA, can I just do:
So what I'm asking is, what's the difference between doing i s q | u1 and i s q ON u1? Am I not accounting for Time 1 either way?
My final question is regarding the stacked model (multiple group) approached outlined in the Muthen & Curran (1997) paper. If I want to apply the approach to my model, do I need to run a separate model line for each path that I want to test, i.e. free one path at a time and run the stacked model?
And, how do I interpret the output, i.e. check for significance? Do I just subtract the two "chi-square contribution" values from control and intervention groups, and compare to chi-square (1 df) criteria?
It seems like you don't need to declare u1 as a categorical variable because it is an IV - this would then avoid the MonteCarlo integration requirement I think. Plot is not available in the case you refer to.
Answer to Jung's Sept 12 2:13 questions:
See the UG chapter 16 for explications of growth model statements using the bar ("|") approach. You will see there that the bar statement does not estimate regression slopes. Note also that you cannot identify a quadratic growth model by a single outcome (as in i s q | u1). Regarding your final questions, I would simply use group as a dummy covariate.
I am sorry if this post is a repeat of a message I posted earlier (my computer crashed and so I am not sure if it was sent).
I wish to analyse the patterns of longitudinal poverty (a binary measure) over 15 waves of data. I would like to know what are the main differences between LCGA and latent Mrkov analysis (of Langeheine and van de Pol).
LCGA is similar in spirit to regular random effects growth modeling, where the idea is that a growth process affects the development over time. Latent Markov is an auto-regressive type of model where the status at one time point influences the status at the next time point. So the former model type does not specify direct influence between the outcomes over time (although they are certainly allowed to be highly correlated), while the latter does. The substantive application may be more suitable to one or the other model type.
I would like to run a latent class growth analysis to examine differing trajectories of change across 7 waves of data. I would like to use individually-varying time points, as there is a great deal of variation in time of interview at each wave. Is it possible to run latent class analyses using individually-varying time points? Would I be able to compare models with different numbers of classes?
Thanks! This set me on the right path, and I ended up using TYPE=MIXTURE RANDOM MISSING. I am having some trouble interpreting my results, however. 1) without the “means” for intercept and slope, where should I be looking to interpret the overall slope for each class? 2) my results give me negative values for the intercepts of the intercept factor, and positive values for the intercepts of the slope factor. I had been expecting a negative trend for the slope, and do not know how to interpret a negative intercept.
am i supposed to use the same number of sets of starting values and same number of optimizations when testing a k-class-model against a k-1-class-model when using the STARTS option in the analysis command? thanks a lot.
I am doing latent class growth analysis on a dataset of 206 individuals, where the outcome is adherence to endurance exercise (minues/week) measured at 4 time points (4, 6, 8 and 12 months) following a 3-month rehabilitation program.
My first objective is to determine the number of latent trajectory classes, without covariates. I have several basic questions:
1) My understanding is that for entropy, a higher value is better. What is an acceptable value ?
2) For the Lo-Mendell-Rubin test, a low p-value indicates the model with one less class is rejected in favour of the estimated model. What is considered a low p-value: < 0.05, <0.1?
3) Given that the outcome was measured at 4, 6, 8 and 12 months, should the model syntax specifying the time scores be:
1. Entropy ranges fro 0 to 1 so you would want a fairly high value like .8. However, entropy is a summary measure. It may be that some classes distinguish well and if those are the classes you are most interested in, then I wouldn't give so much importance to a summary measure. 2. Less than .05. 3. Your time scores should reflect time between your measurement occasions, for example, 0 1 2 4.
Thanks very much. Some additional questions re: latent class growth analysis with 4 time points.
1) In the output, 3 classifications are given: i) final class counts and proportions for the latent class patterns based on the estimated model, ii) final class counts and proportions for the latent class patterns based on estimated posterior probabilities, and iii) classification of individuals based on their most likely latent class membership.
i) and ii) appear to be the same, and is the classification used in the plot of sample and estimated means. iii) appears to differ from i) and ii), in some models, and is the classification saved when save=cprob is requested.
My question is: why is one classification used for the plot, and another saved in the .dat file ?
2) I have tried running my model with homogeneous and heterogeneous (default) variance across time points. Is either acceptable ? When should one be used versus the other ?
3) From the web course on multi-level modeling, it was mentioned briefly that piecewise modeling can be used when there are several time points per growth phase.
Can I assume that my growth model, which has a TOTAL of 4 time points, would NOT be appropriate for piecewise modeling ?
1. The estimated posterior probabilites and most likely class membership are all saved. Estimated means in the plots use estimated probabilities. Observed individual trajectories are based on most likely class membership.
2. We recommend allowing heterogeneous residual variances across time.
3. Four time points is typically too few time points for piecewise.
Because the outcome has a skewed distribution, I have categorized it into 5 categories (0-4). The categories are 0: 0 minutes/wk, 1: 1-60 mins/wk, 2: 61-100 mins/wk, etc. I have then treated the outcome as continuous in a 2-class LCGA model with 4 time-independent covariates. Below is a portion of the output:
My questions are about the interpretation of parameter estimates.
For covariate EXACFU (binary), is the interpretation that individuals with exacfu=1 are exp(1.126)=3.08 times more likely to be in class 1 versus class 2 ?
I am unsure of the interpretation for the estimate -2.287 for Intercepts C#1. Is this the inverse natural log (or odds) of being in class #1 vs class 2, adjusted for the 4 covariates, ie. exp(-2.287)=0.102 ?
If I am incorrect, please explain how these estimates are interpreted.
The sample size needed depends on several factors so it is hard to say without doing a simulation study. In general, one needs fewer observations with repeated measures. See the following paper which you might find helpful:
Muthén, L.K. & Muthén, B.O. (2002). How to use a Monte Carlo study to decide on sample size and determine power. Structural Equation Modeling, 4, 599-620.
I have a question. I am doing growth mixture modeling. Is it OK to compare two different solutions (e.g., 2 classes vs 3 classes) when I have made modifications to one of the models (e.g., fixed the variance of the growth factor to zero in one of the classes, let the residual variances be freely estimated in different classes...)?
sara khanum posted on Wednesday, October 31, 2007 - 12:03 pm
Hi I am learning about LCGA in MPlus and would be very grateful for your advice about data format.
I have a large panel data set in long format and wish to work in this format in MPlus (I will be adding many covariates for a 15 wave panel and so it is easier). Most of the examples I have seen are in wide format and I would be grateful if you could help me modify the syntax below (which uses a wide structure) to accommodate for this. Do I need to include my ID and wave (time) indicators?
DATA: FILE IS longdat.dat; VARIABLE: NAMES ARE id gen sup pov1 pov2 pov3 pov4 gpa1 gpa2 gpa3 gpa4; USEVARIABLES ARE pov1 pov2 pov3 pov4; CLASSES = c (2); ANALYSIS: TYPE = mixture; STARTS = 100 10; ESTIMATOR = MLR; MITERATION = 5000; MODEL: %OVERALL% i s | pov1@0pov2@1pov3@2pov4@3; i@0; s@0; OUTPUT: STANDARDIZED MOD; TECH11; SAVEDATA: FILE = lcga_pov.dat; SAVE = CPROBABILITIES; PLOT: TYPE = PLOT2; SERIES = pov1 (1) pov2 (2) pov3 (3) pov4 (4);
sara khanum posted on Wednesday, October 31, 2007 - 4:08 pm
Thank you for your prompt response.
I looked at 9.16 but I couldn't find any LCGA examples for data that are already in long format.
I tried to modify the above syntax for my data but couldn't get it work.
I guess I am not clear where/if to specify the id and wave variables and the growth factors.
I did the following:
USEVARIABLES ARE pid wave pov1 pov2 pov3 pov4; CLASSES = c (2); ANALYSIS: TYPE = mixture; IDVARIABLE = person; REPETITION = time; STARTS = 100 10; ESTIMATOR = MLR; MITERATION = 5000; MODEL: %OVERALL% i s | pov1@0pov2@1pov3@2pov4@3 ON wave; i@0; s@0; OUTPUT: STANDARDIZED MOD; TECH11; SAVEDATA: FILE = lcga_pov.dat; SAVE = CPROBABILITIES; PLOT: TYPE = PLOT2; SERIES = pov;
In your experience, is long data more difficult/inflexible for longitudinal growth analysis?
Your guidance would be most appreciated.
sara khanum posted on Wednesday, October 31, 2007 - 4:29 pm
Dear Professor Muthen
Sorry to bother you again! I have looked at 9.16 again - in order to use long data, does one have to specify a multi-level model? I couldn't adapt 9.16 to my data as I wasn't intending to do a multi-level specification.
Example 9.16 is the only example we have in long format although you can translate any one into this. You can compare the MODEL command from this example to the | statement that specifies the growth model in Example 6.1 to see how they compare.
The wide specification of the growth model is actually more flexible than the long specification. Residual variances can be estimated for each time point and residual covariances can be included in the model. The only time the long format might be desirable is with a very long time series. I would use an LCGA example from Chapter 8.
When using LCGA to determine the best number of classes, how do you reconcile an earlier comparison with a decreasing BIC and a non-significant LMR-LRT (e.g., two versus three classes), and a subsequent comparison with a decreasing BIC and a significant LMR-LRT (e.g., three versus four classes)? I've run into this many times when a priori testing across a range of possible classes (e.g., from 1 to 6).
The syntax you show specifies that the means of the intercept and slope growth factors are free across classes. This is the default so it has no impact. You have also given different labels to the four parameters which also has no impact on model estimation.
There is no default growth model. The growth model has to be specified. See Example 6.1 for a linear growth model. See Example 6.9 for a quadratic growth model. See the discussion of growth modeling in Chapter 16 under The | Symbol.
According to the MPlus web training ‘Growth Modeling with Latent Variables using MPlus’ (slide 39), the number of free parameters in the H1 unrestricted model is 14 for a linear growth model with 4 time points and no covariates (14=4 means + 4(5)/2).
My questions are:
How is the number of free parameters calculated for the HI unrestricted model, with 4 time points, but with a quadratic growth factor?
Does this calculation apply to latent class growth analysis ?
Degrees of freedom are relevant when means, variances, and covariances are sufficient statistics for model estimation. In this case, the degrees of freedom are equal to the difference between the parameters in the H0 and H1 models. When they are not, the number of parameters is used instead. The number of parameters given is for the H0 model.
jemila seid posted on Friday, January 02, 2009 - 7:35 am
Dear Profs. Muthen,
I am looking of a paper in Genetics Applications of Growth Mixture Models for a journal club presentation. Could you please recommend a recent paper in this area? I got the opportunity to read one of your GAW16 contributions and I am looking for a similar paper.
Beyond the GAW16 paper I don't recall having yet seen a GMM paper with genetics application except perhaps Irene Rebollo has done some work on that - you may want to google her at the Vrije Univ of Amsterdam. I have done a cross-sectional version of such a genetics analysis in a twin setting using "factor mixture modeling" - see
Muthén, B., Asparouhov, T. & Rebollo, I. (2006). Advances in behavioral genetics modeling using Mplus: Applications of factor mixture modeling to twin data. Twin Research and Human Genetics, 9, 313-324.
jemila seid posted on Friday, January 02, 2009 - 10:06 am
Thanks a lot, Prof. Muthen, for your prompt replay. I appreciate it. I will have a look at Irene Rebollo's work. would it be possible to use your GAW16 contribution as an example in my presentation? if so, may I get a complete version of your contribution?
I am trying to replicate in Mplus a LCGA model with a censored normal outcome that successfully ran using Proc Traj, but I cannot get it to run in Mplus. The Mplus code is in the next message. My question is whether I am specifying the model correctly to replicate the Proc Traj analysis. I have read about the differences between the two approaches, but I'm not sure what would be causing this problem. I know numerical integration is computationally intensive, and I've tried all sorts of approaches, but nothing works. Is there a way to specify the estimation to do the same thing Proc Traj does? And, if I'm already doing this correctly, do you have suggestions for why the model converges in Proc Traj but not Mplus?
I am plotting graphs obtained from a LCGA and although I am fitting a linear model with three classes, the growth curves -two out of three- are not linear but a have a curvature as if I was fitting a quadratic model. Does this have anything to do with the use of a censored (b) distribution?
Yes, linear in the underlying (uncensored) normal variable, but not in the observed variable. Same for categorical outcomes.
Amery Wu posted on Wednesday, April 08, 2009 - 11:44 am
Dear Dr. Muthen,
I am running a piecewise general growth mixture model. I selected a 4-class model based on the unconditional model (without the auxiliary variables), which has sound statistical fit and substantive interpretability. I would like to proceed to add the auxiliary variable to the same 4-class model extracted by the unconditional model, so I fixed the growth factors means to those of the unconditional model while running the conditional model. The results make sense, despite that the class distribution changed a bit. I also tried to free the growth factors means for the conditional model, the growth factor means changed a lot due to the addition of the auxiliary variables. The classes are very different from those of the unconditional model. My question is: Is my approach of fixing the growth factor means justifiable, especially in terms of the estimation? Or, should I report and interpreted the growth factors means of the conditional model? Thanks a lot, Amery Wu
This is a big topic. Please see the following two papers both of which are available on the website:
Muthén, B. (2004). Latent variable analysis: Growth mixture modeling and related techniques for longitudinal data. In D. Kaplan (ed.), Handbook of quantitative methodology for the social sciences (pp. 345-368). Newbury Park, CA: Sage Publications.
Clark, S. & Muthén, B. (2009). Relating latent class analysis results to variables not included in the analysis. Submitted for publication.
Amery Wu posted on Wednesday, April 08, 2009 - 8:29 pm
Many Thanks, Dr. Muthen. I'll re-read the 2004 paper, and read the 2009 manuscript, and ask your advice again if necessary.
I'm writing a master's thesis in Statistics about Latent Class Growth Analysis using Mplus. My outcomes are kategorical (4 kategories), 8 timepoints, N=1000. Can you please recommend me materials, that will help me in my work.
I am trying to do a latent class growth mixture model to describe different classes of individuals in terms of their pubertal trajectory. The goal is to identify individuals according to membership in "early" and "late" trajectory classes--plus some number of intermediate classes depending on the best solution. There are ~400 individuals who were measured across ages 10 through 16. Scores are continuous (based on an average of 5 sub-indices), and there is a wide variation among individuals in the number of missing scores. I ran LCGMM for linear, freed linear, quadratic, and cubic slopes--each with either one, two, three, four, or five classes. My strategy for choosing the best model has been to look at the lowest BIC criterion based on Nulund, Asporouhov, and Muthen (2007) and to also consider the percentage of individuals in each class-avoiding solutions with less than 5% of individuals in the smallest class. Is the BIC criterion only meant to be used within a particular slope model, or can it be used to compare, say, the best quadratic versus the best linear class solutions? I assumed that the slope and number of classes should be considered simultaneously. Alternatively, should I first decide on the slope category using longitudinal growth models (based on Chisquare), and then decide on the number of classes using latent class growth mixture modeling (based on BIC and % class membership)?
You can use BIC to compare models as long as the set of observed variables is the same. Remember that if you use chi-square to compare nested models and the model has any variances fixed at zero, the difference test may not be distributed as chi-square.
I would take theory and an examination of individual trajectories to find the most complex model that might need to be fitted, for example, a quadratic model. I would then use that model and extract classes. If the mean and variance of the growth factors in some classes are not significant, I would adjust the growth models for these classes.
Thanks so much for your response. I am very new to MPLUS and have to ask some very basic follow-up questions.
1) I am using Example 8.6 as my model without the u parameter. Where is the information on the significance of means and variances?
2) In terms of making adjustments, I would like to explore models in which class 1 is linear, class 2 is quadratic, class3 is cubic, etc. How can I specify different classes having different slopes in the same model?
3) In the tech4 output for several of my models, I have small negative variances (e.g., -.008) in the estimated covariance matrix of latent variables (among my intercepts). I read in another comment that these may be the reason for non-positive definite psi matrix warnings, and that a solution is to set these to zero. What code specifies that this should be zero in the model?
1. If you are asking about model results, the third column of the output is a z-score and the p-value of this score is given in the fourth column.
2. The most complex model should be specified in the %OVERALL% part of the MODEL command. The class-specific parts of the MODEL command should fix the growth factor variances to zero for the components not part of that class, for example, cubic@0;
3. Is the negative value on the diagonal or offdiagonal?
Josh Bricker posted on Wednesday, February 17, 2010 - 3:23 pm
3. the negative value in on the diagonal
Josh Bricker posted on Wednesday, February 17, 2010 - 3:44 pm
2. to be more specific about the coding-- would that mean something like this?
You want to fix not only the class-specific growth factor mean to zero but also the class-specific growth factor variance to zero.
Unless you have a strong theory for different curve shapes in different classes, a more common approach is to fit the most general shape (here quadratic) in all classes - then you will find if a growth factor mean/variance is zero in certain classes.
Josh Bricker posted on Wednesday, February 17, 2010 - 8:22 pm
Oh, so my example code was only setting the means to zero--how do I also set the variances to zero?
I am basing my exploration of different curve shapes for different classes on Linda's advice above to first do an overall model and then to make adjustments informed from the output about specific class means/variances.
I also wanted to ask (#3 above) how to set small negative variances (on the diagonal) to zero in the estimated covariance matrix of latent variables (among my intercepts). What code specifies that this should be zero in the model?
Josh Bricker posted on Wednesday, February 17, 2010 - 10:58 pm
A separate additional question in response to Bengt's comment
"You want to fix not only the class-specific growth factor mean to zero but also the class-specific growth factor variance to zero"
Is the decision to fix a parameter to zero always made for both means and variances together even if there is conflicting evidence from the p-value for the Means and Variances?
Sometimes I find that the mean for the Quadratic in a particular class is no different from 0 while its variance is significant--or vice versa--the mean is small but significant while the variance is not different from 0. Are you saying in either case, both the mean and variance should be set to 0?
If you have a quadratic model in the overall part of the MODEL command and want a linear model in one class, fix the mean and variance of the quadratic growth factor to zero in that class, for example,
I would not fix a mean to zero without also fixing the variance to zero. If a variance is significant and a mean is not, I would leave the mean free.
I would not overfit the model to the sample data.
Averdijk posted on Friday, July 16, 2010 - 3:27 am
Dear Drs Muthen,
I performed a 5-group LCGA with multinomial logistic regression in both SAS Proc Traj and MPlus. Although the overall trajectories look similar in both programs, counts for trajectory memberships are somewhat different, and moreover the results for the multinomial logit are different (I defined the same reference category). I must have made a mistake in the syntax. Would you have any suggestions on how to change the syntax?
Many thanks in advance.
usevar = taggr1 - taggr4 Emoattr Sex ISEI mighh2 Stablfam Socdes; Censored taggr1 - taggr4 (b); missing = all (999); CLASSES = c(5); Analysis: type = MIXTURE; Estimator = ML; Starts = 500 20; Stiterations = 20; LRTSTARTS = 2 1 50 15; Model: %OVERALL% i s | firstname.lastname@example.org email@example.com firstname.lastname@example.org email@example.com; c on Emoattr Sex ISEI mighh2 Stablfam Socdes; OUTPUT: sampstat TECH14;
They should give the same results if the models are specified to be the same. Check the number of parameters and the loglikelihood. Also, be sure that data are the same. I would think you would want one of your time scores to be zero.
Jamie Vaske posted on Friday, August 06, 2010 - 6:26 am
Hello, A colleague and I are estimating an LCGA with observed variables. Our observed scales, though, have very poor reliability and we were wondering whether a CFA can be incorporated into an LCGA framework. If it can, are we still modeling absolute change in our variable over time, or are we modeling change in one's factor scores over time? If this analysis is possible, do you know of a good reference/article that discusses this type of analysis? Thank you for your time and advice! Jamie
If you have a growth model on the factors, you are modeling change in the factors over time. I don't know of a reference but the Topic 4 course handout and video goes through the steps to do this in detail.
Jahun Kim posted on Thursday, February 03, 2011 - 12:11 pm
I'm trying to do GMM to identify classes of mother's support and to examine whether these classes predict kid's risk behavior, depression, and drug use. All of three outcome variables are continuous and I want to add them, one by one, to the GMM.
I realized that my model is similar to Example 8.6 in Mplus manual (except my outcomes are continuous). But it doesn't say what how to write when classes predict outcomes (hrb).
I used 'on' statement like below, but it did not work.
q5hrb on c#1;
The warning statement I've got... *** WARNING in Model command Variable is uncorrelated with all other variables within class: Q5HRB *** WARNING in Model command All least one variable is uncorrelated with all other variables within class. Check that this is what is intended. *** ERROR The following MODEL statements are ignored: * Statements in the OVERALL class: Q5HRB ON C#1
Drs. Muthen, I am running an LCGA model with a continuous distal outcome (Memory). I can find in the output the mean of Memory for each class but don't know where to look for parameter estimates of the regression of Memory on C. In case my code is the problem, I am using the following:
Your input is fine. The regression of Memory on C is expressed by the class-specific means of Memory. Mplus does not allow Memory ON C, and it is not needed. This is analogous to linear regression Of Y on a dummy X variable - the different X categories give different Y means. There is no other coefficient.
You can test mean differences of Memory using Model test.
You must specifically mention the means by using a bracket statement. If you continue to have problems, please send your output and license number to firstname.lastname@example.org.
Dana Wood posted on Wednesday, October 05, 2011 - 1:34 pm
Using a sample size of 1,495, I am estimating a growth mixture model. Comparing BIC, AIC, and BLRT points to selection of a 4-class solution over the 3-class solution. However, the 4-class solution has one very tiny class (4% of sample). When I try to run the 5-class solution, it turns out to be inestimable. Is this likely because I have one very tiny class in the 4-class solution (making it difficult or implausible to further split the sample)?
I think the 5-class solution is possible in principle because it could split a large class in the 4-class solution. A class with 4% isn't that small in a sample of your size. So the fact that 5 classes is inestimable is another indication of 4 classes being best.
I'm interested in possibly using a LCGA model and have some conceptual questions that I was hoping the topic 6 lecture video would answer (Berlin 2009). It seems like part 2 of the video ends at slide 69 and part 3 of the video starts at slide 95. Do you know where I can find the portion covering LCGA? Thanks, Diana
Unfortunately the slides alone don't answer my question, so I'm hoping you can help.
I have a categorical variable measured over time. I would like to create "trajectories" that represent patterns over time. However, I don't really want to impose a structure on the trajectories by forcing them to be lines, per se. I want them to be able to have any shape. Does LCGA do this, or should I just use LCA?
I know that LCGA differs from GGMM in that the variances within classes are 0. I'm not sure whether this has any effect on the possible trajectory shapes.
I apologize if this doesn't make sense. I have read a few articles on LCGA and GGMM but I'm still confused. I have also gotten different answer from different people when asking about this, so I would greatly appreciate your input.
Thank you! Diana
Jon Heron posted on Wednesday, February 15, 2012 - 12:09 am
if your data is binary, you have fixed time points, and you're not modelling variance then you can get the same answer with an LCA that you'd get with an equivalent LCGA.
For instance if you have 4 time points then you can fit an LCA or a cubic polynomial LCGA. I would imagine that a piecewise linear LCGA would also give the same answer although I haven't tried this. They all use four parameters within each class to describe the four probabilities.
Once you get above 4 time points the equivalence should still remain however estimation becomes more difficult - the loadings you'd need to apply in a quintic LCGA get a bit on the large side.
I always start of with an LCA and then move towards a potentially more parsimonious LCGA if the patterns look well behaved.
Hi John, Thanks for your response. Just to clarify, are you saying that to get the same answer (or to have equally flexible models) then I will need to add a polynomial term to the LCGA model every time I add a time point? I have 15 time points, so I imagine that's not a realistic option.
I had thought that they might also give different answers (even if they are equally flexible) because the LCA is disregarding time. Have you found that that isn't true?
Jon Heron posted on Wednesday, February 15, 2012 - 6:31 am
you'd get the SAME answer with four time points and either an LCA or a cubic LCGA - they're different parameterizations of the same model (if your data is binary etc..)
In theory you could fit a polynomial of degree 14 to your data and that would give the same answer as an LCA, but that's probably impossible to estimate. You might still be able to a model with 14 piecewise linear slopes and that should once again agree with the LCA.
The only benefit to including time in the model is that you can then fit simpler shapes (as you then know the ordering of the observations). With the 4 time point example, the cubic polynomial would be the same as joining the dots so there's no simplification there.
My recommendation would be to start with an LCA and examine the patterns. You might decide at that point that a cubic or quartic or perhaps 3 or 4 piecewise linear segments would do the job just as well.
Jon Heron posted on Wednesday, February 15, 2012 - 6:36 am
Some "proof" (I did this as a teaching example once)
I am interested in the gender-specific trajectories of comorbid syndroms during and in the course of a depressive disorder in a sample of N=222. The data are longitudinal with three follow-ups after the first occurence of a depression. We used the SCL-90, which consists of nine dimensional subscales (Likert Scale). I am a real beginner with Mplus and thought, the convenient analysis would be a LCGA or a GMM (both with a covariate sex) depending on how I handle the outcome (binary or metric). Is that correct? My second question concerns the number of indicators: Can I perform a LCGA using all nine scales simultaneous to each point of measurement (0,1,2,3)? The syntax would look like this: u1@0 u2@0....u9@0 u1@1 u2@1... Or would you recommend to perform the analysis seperately for each subscale? If so, how can I bring together the results after I identified the latent classes for the nine scales seperately? Or is there a more appropriate methodical approach to answer my research question? Thank you in advance for your answer!
There are possibilities to do parallel process growth mixture analysis of more than one subscale at a time. In this case you can see if you need one latent class variable in common for the processes or if each process needs its own latent class variable, where the latent class variables are correlated.
But cross that bridge after you've done GMM for each process.
I have a question on Growth Mixture Model. Currently, I am testing GMM with continuous outcome. Thus, I want to test each class can predict continous outcome.
As you suggested above, I just added my outcomes in the uservariable and found the means of each classes. As you suggested, I understood these means work in the same manner as regression coefficients with dummy variables. To test mean difference, you suggested the model test. However, I am little confused whether you meant the model test is the model constraint using chi-square. If you have any advice on my question, please let me know. I very appreciate your advice in advance and look forward to hearing back from you.
Thank you for your quick response. However, I have a follow-up question on your answer. If you meant that the model test is the model constraints using mean equality, I think I already tried to do this test. However, I couldn't find any chi-square value for the model fit in the results. I only got Loglikelihood, BIC, and AIC. Thus, if possible, can I ask you for your advice on how to do the model test with these information? If you have any suggestion, please let me know. I very appreciate your advice on my situation and look forward to hearing back from you.
If you use MODEL TEST, the Wald test results are with the fit statistics. If you use MODEL CONSTRAINT, z-tests for the new parameters come at the end of the results. If you need further help on this, please send the output and your license number to email@example.com.
Thank you for your help. If you allow me to ask just one more question, I would like to ask for your advice on how to add control variable for outcomes in growth mixture model?
Currently, I consider using control variable (continuous) for outcome. In this case, I think model looks like ANCOVA Model. That is, y(distal outcome) = intercept + class*b1 + control variable(Continuous)*b2 + e.
If I am correct, could I ask you on how to add this control variable(covariate) in the program?
For this situation, do I only need to add normal regression syntax in %overall% area of model specification? (e.g., y on x) For your information, my syntax is as follow:
MODEL: %overall% I S|dep90@0dep91@1dep92@2dep94@4; c on bt0sex fep90 fdep90 mdep90 mmi90 fmi90; gh on s(covariate); %c#1% i; [gh](m1); %c#2% i@0; [gh](m2); %c#3% i; [gh](m3); model test: m1=m2;
This is correct. You may also want to use s as a covariate in the c ON statement.
F Lamers posted on Friday, March 30, 2012 - 2:22 pm
I’m running a LCGA with 5 time points in a sample of 804 persons. Initially, I ran the model without my covariate. This went smoothly and it seemed that a quadratic model fit the data best. However, after adding the dichotomous covariate, I’m running into problems. Models with 1, 2, 3 or 5 classes run OK, but models with 4, 6, and 7 classes give me the following error: ‘THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES MAY NOT BE TRUSTWORTHY FOR SOME PARAMETERS DUE TO A NON-POSITIVE DEFINITE FIRST-ORDER DERIVATIVE PRODUCT MATRIX. THIS MAY BE DUE TO THE STARTING VALUES BUT MAY ALSO BE AN INDICATION OF MODEL NONIDENTIFICATION. THE CONDITION NUMBER IS 0.349D-11. PROBLEM INVOLVING PARAMETER 40.’
The parameter it mentions in all of these errors involve my covariate (TAU (U)), but I’m not sure what it means. Can you tell me what this means?
For the variable of frequency of drug use in lifetime (responses in likert scale from none to 40 or more) with about half of responses as 0 (no), can a latent growth modeling be used? If not, can a latent class growth modeling used?
You may try "two-part" growth modeling. See our Topic 4 handout and papers on our web site.
IYH Boon posted on Tuesday, July 24, 2012 - 1:44 pm
In an LCGA, when Mplus gives the "one or more parameters were fixed to avoid singularity of the information matrix" error, what are the parameters being fixed to? According to TECH1, in the 4-class model that I'm estimating, the mean of the quadratic term for the second latent class is being fixed. Is it being fixed to 0?
Hi, I have estimated a LCGM and wish to start freeing the variance of the intercept and slope. However whenever I do this for particular classes the class structure (i.e the order of classes) changes and therefore what I have freed up is not always in the same class. I have tried to use starting values based on mean and slope of intercept from the LCGM to specify the order of the latent classes something like this for each class: %c#1% [i*.212 s*.114]; i s;
It doesn't seem to have any effect on the order of the latent classes and the same problem is occurring. Is this the code I should be using to freely estimate the variance for specific classes?
When you free a variance in one class, the program puts the free variance in the class that provides the best overall loglikelihood. You can try freeing all variances or use the SVALUES option of the OUTPUT command to get input statements with starting values and free just one variance. This may help the classes stay in the same order.
I would like to use Latent Class Growth Analysis (LCGA) to analyze longitudinal Add Health data, which has a complex sampling design. Is it possible to specify an LCGA model with Add Health strata, cluster, and sampling weight variables? If so, could you provide a syntax example?
I am trying to use the AUXILIARY option for latent class growth analysis with covariates on the auxiliary variable. In other words, I want to predict an outcome from the classes, but control for other potentially pre-existing differences. My current output results in: *** ERROR in MODEL command Unknown variable(s) in an ON statement: BIN_TM54
A variable cannot appear on both the USEVARIABLES list and the AUXILIARY list. The variables on the AUXILIARY list should not be analysis variables. All variables on the USEVARIABLES list are used in the analysis.
You should not have the BIN_TM54 variable in your MODEL (i.e. BIN_TM54 ON...) - that's what Mplus complains about (you can have it on the USEV list, but it will be removed due to being on the AUXILIARY list).
It looks like you want to control for covariates influencing your distal outcome BIN_TM54. In that case, you may want to do the 3-step "by hand" as described in our web note 15 posted on our web site.
I keep receiving the following error: *** ERROR The following MODEL statements are ignored: * Statements in Class %OVERALL% of MODEL: WJAPWCX5 ON C1#1 WJAPWCX5 ON C2#1 WJAPWCX5 ON C2#2 *** ERROR One or more MODEL statements were ignored. Note that ON statements must appear in the OVERALL class before they can be modified in class-specific models. Some statements are only supported by ALGORITHM=INTEGRATION.
I am investigating the emotional influence of one group member on other group members across time (4 measurement moments). In order to test for this influence, I used a fully cross-lagged model. I find that group members influence each other's emotions. But I also want to know how the path looks like. Are they influencing each other upwardly or downwardly? How can I test for this? I was thinking about running a growth model for two parallel processes (example 6.13 from the manual). Would this be the right thing to do? Are there other altnernatives that look at influence patterns and paths across time at the same time?
This sounds like a question better served by a general discussion forum like SEMNET.
IYH Boon posted on Tuesday, December 11, 2012 - 9:39 am
I realize that LCGA and GMMs are specifically designed for use with longitudinal data, but I'm wondering about LCA. Are there any specific drawbacks (or benefits) to using LCA when the observed indicators are time-ordered variables (e.g., repeated measures of poverty status)? Wagmiller et al. (2006) did it in the (widely-cited) paper referenced below, but I haven't seen many other examples. Any thoughts or information would be very much appreciated. Thanks in advance.
Wagmiller, Robert L., Mary Clare Lennon, Li Kuang, Philip M. Alberti, J. Lawrence Aber. 2006. "The Dynamics of Economic Disadvantage and Children's Life Chances." American Sociological Review 71(5):847-866.
There is no drawback to using LCA with longitudinal data other then the fact that your findings will be very similar to LCGA and LCGA is a more parsimonious model. LCA is a great way to see the growth shape for use in a LCGA. See the Topic 6 course handout on the website starting at Slide 76.
I'm conducting some LCGA with 4 indicators using a piecewise model (one slope is defined by 2 indicators only with variance fixed at zero). I would like to identify my trajectories while controlling for some covariates. My issue is that I am not specifically interested in the effects of the covariates on the trajectory membership. Instead, I need to account for the effects of these covariates while estimating my models because they are related to my indicators. Thus, my question is: should I introduce my covariates on the class membership (e.g., c#1 on cov) OR should I better control for the effects of the covariates on each indicator? Thanks!
I wonder how you know that the covariates influence your indicators and not the class membership. Covariates that influence the class membership have an indirect influence on the indicators, so they are not uncorrelated.
Thanks for your reply Bengt! I actually do not know whether my covariates influence the class membership but, as you say, I assume they do. However, because I am not specifically interested in these effects I was wondering what was the best way to estimate trajectories while controlling for the effects of these covariates (as I know that they affect my indicators). From your reply, it seems to me like I should end up with highly similar results, right? Thanks!!!
I have a question about the parallel latent class growth modeling. Can we get the output of Odds Ratio instead of proportion (for example, the OR of the m class for outcome Y1, given the n class of outcome Y2)? If so, what is the syntax?
Not automatically. But you can form the odds ratios you want in MODEL CONSTRAINT, creating NEW parameters.
ywang posted on Wednesday, March 27, 2013 - 8:38 pm
Dear Drs. Muthen:
I would like to follow up with the question regarding the Odds Ratio for parallel latent class growth modeling.The output is as follows. We have three classes for C1 and three classes for C2. We specified "C2 on C1". So it is a multinomial logistic regression.
I am not sure how to interpret. For example, the regression coefficient of C2#1 on C1#1 is -3.318. Exp(-3.318) is 0.036. Can it be interpreted as that the relative risk for the kids to stay in C2#1 class versus C2#3 class is much smaller (only 0.036 times) for the kids in C1#1 class compared to the kids in C1#3 class?
If it is not correct and the relative risk ratio cannot be acheived by directly exponentiating the regression coefficient, how can we get the relative risk ratio?
The exp of c2 ON c1 is the odds ratio. As Wikipedia says:
Relative risk is different from the odds ratio, although it asymptotically approaches it for small probabilities.
Zihan Wei posted on Saturday, May 04, 2013 - 7:14 am
Dear Drs. Muthen, I have two independent variables, X1, X2(both binary) and a dependent variable with 10 time points repeated measurement, Y1-Y10(continuous). I'm interested in how Y develops and how X1 and X2 affect the development of Y. It was suggested that Y is heterogeneous and may have subgroups, so I chose GMM to analyses my data. I followed the User's Guide and some other papers and written my main model syntax as follows: ANALYSIS: TYPE = MIXTURE; starts=10 2; stiterations=10; MODEL: %OVERALL% i s| y1@0y2@1y3@2y4@3y5@4y6@5y7@6y8@7y9@8y10@9; i-s@0; i s on x1 x2; c on x1 x2; I'm totally new to Mplus, so I have some questions about the analysis. (1) Is this a correct model to solve my research problem? (2) I found that the path coefficient estimate for the regression of the slope and the intercept on predictor X1, X2 are the same in every class. But I suppose the coefficient may be different in different class. So, if I want to estimate the path coefficient differently in different class, is that possible? Thanks a lot! Regards, Zihan Wei
I would like to follow up with your response regarding the p values for Lo-Mendell-Rubin Test a few years ago. In one of your responses, you mentioned that "For the Lo-Mendell-Rubin test, p-value<0.05 indicates the model with one less class is rejected in favour of the estimated model." I am wondering if I can use p<0.1 as a cutoff.
I am working on a paper and have a p value of 0.07 for 3-class vs. 2-class model. However, there is variation in slopes (both slopes not significant different from 0) in 2-class model while there is variation in slopes in 3-class model (some significant slopes from 0, and some not). The BOOTSTRAPPED LIKELIHOOD RATIO TEST shows p values less than 0.001 for either 3 compared to 2 or 4 compared to 3. BIC keeps dropping. I would like to choose the 3-class model instead of 2-class model based on (1) the LMT LRT p<0.1 and (2) the fact that there is differences in slopes across classes. Do you think I can use p value<0.10 for justification for my selection of class number? Thanks!
No, I wouldn't fiddle with the alpha level. You could instead argue that the p-value is suggesting 2 classes, but that the 3-class solution adds a substantively meaningful class, while a 4th class does not.
Or, you could investigate why BIC keeps dropping - that is often a sign that a different model is needed.
Thanks a lot for the response. It is great idea to argue that 3-class model includes an additional meaningful class. I have a follow-up question. You mention a different model might be needed when BIC keeps dropping (for both LCGA and GMM). Do you mean a different model such as inclusion of quadratic slope, or do you mean any other alternative models?
I am running LCGA and GMM models. I want to compare how parameters and trajectories differ between genders. However, running a multi group analysis results in very different results. I Assume this is due to the smallest trajectories for the full sample not consisting of a large enough sample for each gender. I am therefore wondering what the best method is? Shall I simply add gender as a covariate to the analysis?
If you want to compare trajectories by gender, ideally you will do an LCA by gender as a first step to determine whether you find the same classes. If you regress c ON gender, you assume there are no direct effects from gender to the outcome and the intercept and slope growth factors.
In the output I have that the latent variable “I” for the intercept has mean 0 and I have a threshold of 2.3. As far as I know, the threshold is the same as the intercept times -1, right? I want Mplus to output an intercept instead of a threshold and I added the following line to my code:
This successfully gives the latent variable “I” a mean which corresponds to the intercept I was looking for, and all the thresholds are -15 which I thought it meant that I don’t have the thresholds anymore. However, the results are not exactly the same. The intercept I get is -19.2, but I thought it should be close to -2.3. Also, the coefficient of i on race_h is very different, but everything else seems to be very close with both codes. Is this the appropriate way to ask Mplus to use an intercept instead of a threshold?
Thank you for your time.
Jon Heron posted on Wednesday, April 16, 2014 - 8:07 am
I think you should be fixing your thresholds to zero rather than minus 15 to transfer that value to the intercept.
To get this working, I would be inclined to temporarily remove the covariates from the model. Once you include covariates for i and s, Mplus no longer quotes you the latent variable means. Confusingly, you are now given an intercept for your Intercept. This will only equal the mean if your covariates are centred.
This gives the probability at the means of i and s. So a conditional probability, not the marginal. The marginal needs to be integrated over the distribution of i and s given covariates. This is what is shown in the plots that Mplus makes (Adjusted estimated means).
Thanks for your previous response. This makes sense now. I come from a Mixed Models background and displaying probabilities as I mentioned above wouldn't make sense without integrating out the 'random effects'. I have added the following lines to my code:
Plot: type =plot2; series= SMOKE1(1) SMOKE2(2) SMOKE3(3) SMOKE4(4);
When I open the graph and I get the window that says 'Select plot to view', I only get as options 'Sample proportions', 'Item characteristic curves' and 'Information curves'. Nowhere I can select 'Adjusted Estimated Means'. Could you help me with this please?
I have a longitudinal data set with four waves. At wave 1, the paricipants's baseline age range are 12-21.I want to estimate trajectory memberships based on age, not wave. That is the cohort sequential design. Is it fine that I resturcture the data and create age-based variables, and then use LCGA to indentify the trajectories? Does this way ignore the effect of cohort? Thanks!!!
You can restructure the data so time is age. When you do this you make the assumption that all cohorts come from the same population. You can also take a multiple group approach. See Example 6.18.
RuoShui posted on Thursday, March 05, 2015 - 3:24 pm
Dear DRs. Muthen,
I am conducting growth mixture modelling for two big groups A and B. I found the same number and similar pattern of trajectory classes. I can compare the mean differences in academic adjustment among subgroups such as A1, A2, A3 and A4 in Mplus. But is there a way to also compare the mean differences between similar subgroup such as A1 and B1 in Mplus?
Statistically, you can do any mean difference estimation using Model Constraint. But perhaps you are asking when it is substantively ok to compare across subgroups.
RuoShui posted on Tuesday, March 10, 2015 - 8:43 pm
Dear Dr. Muthen,
Thank you very much for your response above. My question is more of a technical question. I was able to test whether the residuals of distal outcomes (auxilary variable: (e)) differ across latent classes within Group A or B. But I couldn't figure out how to simultaneously test in Mplus whether the residuals of distal outcomes differ across groups A and B for the similar latent classes (such as between A1 and B1; and between A2 and B2). Do you have one example that I could follow?
I am running an LCGA model using the 3 step procedure and attempting to look at an outcome specified as latent variable. The model freely estimates the means and variances of the latent factor for all 4 groups. This produces an error saying that the mean of the latent factor is fixed to zero for the last class (a default solution), but the variance is estimated for the that factor.
Does this happen because the model is not identified unless the latent factor mean for one group serves as the contrast (i.e., fixed to 0). When this is done the estimated means for the other latent factors are difference scores relative to that group. The significance test for the other group means in turn indicates whether they are significantly different from the class where the mean is fixed to zero (i.e., relative difference in means).
Thank you for the feedback. Building on the previous question (4/2/2015 at 11:13 AM), we are wondering about the most appropriate way to get estimated means/intercepts and standard errors for each class. If no groups are specified as the contrast group (no means are fixed to 0), the mean for the last class is automatically fixed and there is no standard error estimated for this class (for clarity, we’ll call this Model 1 here).
Is it possible to generate or calculate the standard error for the last class? We tried fixing the mean of the latent outcome for class 1 at the value provided in the output from Model 1. This allows the mean of the latent factor to be freely estimated for the last class, which allows a standard error to be estimated for this class. However, when we do this, the standard errors associated with the means of the latent factor for the other classes are different than what they were in Model 1 (although the means and other parameter estimates are basically unchanged). Is is okay to get the standard error for the last class this way?
Alternatively, would it be better to square root the residual variances for the latent outcome variable and present these values with the means (instead of the standard errors)?
You should not want an estimate and SE for the factor mean in the reference group where it is fixed at zero. There is no more information to be obtained. Factors have an arbitrary scale and their metric needs to be set. Mean zero and variance 1 is one way. Only in comparisons across groups or time can you estimate factor means - and then only in comparison with a reference group/timepoint where the mean is fixed (say at zero). There is no disadvantage in this.
Thanks for the reply Bengt. What we are trying to do is set up a table that summarizes group differences on a latent variable within the context of a 5 class LCGA model. We wanted to set it up similar to a traditional ANOVA table that has means and SD for each of the groups. We can definitely indicate which group has a factor mean set to 0 so the reader understands the estimated mean factor scores are relative to this group. However, we also wanted to include some metric indicating the dispersion around this mean value for each class. Is it appropriate to take the square-root of the estimated factor variance to get a SD about the mean scores even for the contrast group? Our model includes covariates, so the variance estimates are after adjusting for these factors. Thanks.
Tessa posted on Wednesday, July 01, 2015 - 11:39 am
I am working on a GMM for a continuous outcome measured across 4 years (Y1-Y4) and plan to investigate what variables might differentiate the various classes/profiles that are identified.
My question is, can these variables be measured at the first year (Y1) or do they need to be measured at the previous year (Y0)? These would be static variables such as participant sex as well as potentially time-varying variables such as change in household size.
We’re working on an analysis using the 3-step model to compare four latent classes on various dependent variables. We want to test whether three of the groups, in aggregate, differ from the fourth group on a categorical dependent variable. Would it be appropriate to use the model constraint command to calculate a weighted average threshold (based on size of each group)? And if so, is it appropriate to use the model test command to compare the weighted average threshold of the first three groups with the threshold of the fourth group?
Also, we understand that maximum likelihood estimation within logistic regression can produce sample bias for rare events. Will the same bias be present when contrasting the trajectory groups on rare events under MLR estimation? Are there alternative strategies for dealing with this problem?
Regarding your last question, MLR gets the same parameter estimates as ML so won't help. Don't know how to avoid any such bias.
Jackie Du posted on Friday, October 30, 2015 - 8:19 am
I am a new user. I have 6 time points and a bit under 200 samples. I would like to conduct LCGA. After looking at the linear model, it seemed that a quadratic shape would be a better fit. In error, my initial model was: i s q| h0@0h10@10h15@15h21@21h27@27h39@39; i-s@0; I later corrected this to be "i-q@0;" However, the former "i-s@0" model seems to make biologically more sensible curves. I thought it was merely because it took into better account the intercept. However, when I tried instead "s ON i", I got this error: THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO AN ILL-CONDITIONED FISHER INFORMATION MATRIX. Can you explain if and how the "i-s@0" model is wrong or if I can justify it's use based on the expected biological behaviour?
I am running a latent growth curve analyses using MLR estimation in a sample of 130 subjects. I found that the correlation between the intercept and slope variables of interest is . 27, p = .18. Normally a Pearson's correlation of this size (.27) would be highly significant in a sample of 130 subjects, but here it is not significant. Why is this? Is it that Mplus adjusts the p-value in light of the missing data estimation?
How do you specify a different trend for each class in the LCGA model syntax? E.g. if you wanted to test a linear trend in one class, and a quadratic trend in another? Does there still need to be an overall trend specified? Thanks.
The overall trend should be the most general. In classes where there is not quadratic growth, fix the mean, variance, and covariances with other growth factors to zero.
sfhellman posted on Thursday, March 03, 2016 - 3:10 pm
I am working on a LCGA of depression trajectories, n = 200 and data at 3 timepoints. I began by attempting to estimate a one-class model with linear and quadratic terms, however I got the following error message:
THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO A NON-POSITIVE DEFINITE FISHER INFORMATION MATRIX. THIS MAY BE DUE TO THE STARTING VALUES BUT MAY ALSO BE AN INDICATION OF MODEL NONIDENTIFICATION. THE CONDITION NUMBER IS -0.133D-13.
THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES COULD NOT BE COMPUTED. PROBLEM INVOLVING THE FOLLOWING PARAMETER: Parameter 3, %C#1%: ICEPT BY PHQSUM_6M
I also estimated a model without the quadratic term and got the following error message (thought the model estimation terminated normally):
WARNING: THE MODEL ESTIMATION HAS REACHED A SADDLE POINT OR A POINT WHERE THE OBSERVED AND THE EXPECTED INFORMATION MATRICES DO NOT MATCH. AN ADJUSTMENT TO THE ESTIMATION OF THE INFORMATION MATRIX HAS BEEN MADE. THE CONDITION NUMBER IS -0.591D-08.
THE STANDARD ERRORS OF THE MODEL PARAMETER ESTIMATES MAY NOT BE TRUSTWORTHY FOR SOME PARAMETERS DUE TO A NON-POSITIVE DEFINITE FIRST-ORDER DERIVATIVE PRODUCT MATRIX. PROBLEM INVOLVING THE FOLLOWING PARAMETER: Parameter 3, %C#1%: ICEPT BY PHQSUM_6M
I planned to proceed by estimating models with additional classes, but I am not sure if it is appropriate to do so. Any guidance is appreciated!
Tibor Zin posted on Sunday, April 10, 2016 - 1:53 pm
Dear Dr Muthen,
I am quite new in LCGA and I would like to ask a question about my analysis choice, your advice would be very appreciated!
I have three waves of data and I would like to find out whether class membership defined by 7 indicators predicts continuous variables or whether these variables predict class membership. I think that testing whether continuous variable predicts class membership is not a problem, but I am not sure whether it is also possible the other way around. If this is not possible, could you please recommend another approach to test my hypotheses?
The difference is that when the "continuous variables" are predicted by the latent class variable they are conditionally independent given the latent class variable. But when the continuous variables predict class membership they are not cond'y indep. Both models are possible.
Tibor Zin posted on Sunday, April 10, 2016 - 11:57 pm
Thanks for the fast reply! I have a problem to cunduct this analysis. When I regress variable on class membership, the outcome reports a problem. Please, do you know where could be the problem? Could you maybe recommend me some source, where this analysis was described?
I am comparing models with different number of classes using TECH11. I ran the models with many start values/optimizations then used optseed when asking for TECH11, and increased k-1 start values/opt if needed. I have 2 questions:
1. When I compared a 2-class to a 3-class model, the number of difference in parameters indicated in TECH11 is 1, whereas it is 4 for comparisons of models with more classes (e.g. 4 vs 5, 5vs6). Could you explain me why it is the case?
2. The log-likelihood of the model in H0 in TECH11 for 3 class (vs. 4) is higher (-96246) than the best solution for a 3-class model (-96329) with many start values and final optimizations (400 80). If different, I would expect the difference to be the other way around, which could be explained by the fact that a local solution is found in TECH11. Have you got an explanation for that?
Send an email to Karen Nylund-Gibson at UCSB and ask for her latest paper.
chioma nwaru posted on Wednesday, February 08, 2017 - 4:29 am
I am using a longitudinal study with 4 wave response of a same cohort on disability which is on the scale of 0-10 on each wave, I am trying to find the latent classes for disability. I just wanted to know if I am using the right model, i.e. LCGM. Disability variable of different waves are coded as: dis1 (1988) n=5500, dis2 (1995) n=4500, dis3 (2002) n=3500 and dis4 (2014) n=2900 and should I use any other variable here? If I am using a wrong model or command, could you suggest a right one (or from Mplus guide). t1 t2 t3 t4 are time in years for each waves respectively; female age occup are baseline variables (from 1983). (Every time I run the below command it gives the results, but it also says input reading terminated normally)
I have a problem that although the slope showed significant variances in latent growth analysis, only one class could be exacted by growth mixture model. Significant variances means there are multiple patterns of growth, am I getting it right? I am not sure if it is because the fit of LGM is bad or I missed something.
Here are parameters about the latent growth model.Longitudinal data of Self-esteem with 6 wave responses of a same cohort. N=54 CFI=0.9 RMSEA=0.13 X2(15)=163.793,p<.001 means: I=3.291***, S=.02,n.s. variances: I=0.4***, S=.0025*** coefficient of I&S=-0.4***
When I put c(2) to run, no matter the BRLT or entropy is not desired.
I really appreciate any advice! Thanks in advance. With regards.
Jon Heron posted on Thursday, August 24, 2017 - 8:18 am
significant variance means you have heterogeneity in your patterns of growth but if this heterogeneity can be (closely) captured by a bivariate normal distribution you won't find any support for more than one class.
Hi Jon(continue from the post of Thursday, August 24, 2017 - 5:59 am)
Sorry to replied late. Thank you so much. Your interpretation made sense to me. But here is another question emerged going after the last one. That is the variance of intercept is significant too. I expected that at least two group of higher intercept and lower intercept should be exacted. Referring to your theory, could it be possible that the heterogeneity of intercept also can be captured by a bivariate normal distribution?
Huiru posted on Wednesday, September 06, 2017 - 5:13 pm
I am very new to Mplus and trying to use LCGA for my project. Previously, I used SAS Proc Traj and I was able to specify linear, quadratic, or cubic for each trajectory. But in Mplus, if I observe that for one group, linear is sufficient, but for some other groups, I need to specify quadratic or cubic, how could I specify different shapes for different groups? Could you please let me know how to achieve this?
Use the most general model in the %OVERALL% part of the MODEL command. In the class-specific parts of the MODEL command, fix the means, variances, and covariances of the growth factors that don't apply to that class to zero.
I have 6 data points corresponding to fall and spring measures in three different school years. Is there a way to model a latent class growth curve across the three years and include a main effect for semester?
Thank you for your patience, I'm new to mplus and trying to figure out the code. Does this look right? I don't think my model statement is correct because I'm supposed to be using the ATL variable instead of the original vars, no?
DATA WIDETOLONG: WIDE = atl1-atl6 | spring1-spring6; LONG = atl | spring; IDVARIABLE = person; REPETITION = time;