Second-Order Latent Class Model PreviousNext
Mplus Discussion > Latent Variable Mixture Modeling >
 Scott Eliason posted on Tuesday, September 12, 2006 - 1:52 pm
Hi Folks,

This is my first post, and so please excuse any normative slip-ups on my part.

We would like to estimate a Second-Order Latent Class Model, with a mix of categorical/nominal observed indicators and categorical/nominal latent variables on the first and the second order. Graphically, the model looks exactly like the model in example 5.6 of the Mplus manual, but with all categorical/nominal variables instead of the continuous observed and latent variables given in the example.

Our question is, what's the most efficient Mplus code to achieve this type of latent class model?

Any and all help is greatly appreciated. Thanks!
 Bengt O. Muthen posted on Sunday, October 01, 2006 - 12:33 pm
Second-order LCA has the flavor of UG ex 8.14 but without c2 on c1 and without the observed indicator (threshold) restrictions. For the second level, you would have the Overall model with c1 on c and c2 on c. For the first level you would have a Model c1 and a Model c2. Look at Tech1 to see that you get what you want.
 Matthew Cole posted on Wednesday, July 11, 2007 - 10:30 am
Hi Folks,

Is this example (8.14) the place I should start if I want to run a multiple indicator GMM, similar to example 6.14?

I've got longitudinal data that doesn't quite provide the complete picture if its reduced to one factor, so I'm wondering if I can run (or if I should even consider running) something akin to a multiple indicator GMM.

Also, my data is cluster randomized, so I'm going to be analyzing it in a multilevel context after I've completed the first step of the single level analysis.

 Linda K. Muthen posted on Wednesday, July 11, 2007 - 5:07 pm
You should start with the one class model in Example 6.14. Then estimate it for two classes etc. by adding TYPE=MIXTURE; to the ANALYSIS command and the CLASSES option to the VARIABLE command.
 Matthew Cole posted on Wednesday, July 11, 2007 - 6:05 pm

I have another question regarding LCA and a different data set.

I have data of 7 binary drug and sexual risk behaviors at baseline, immediate post-intervention, 6 months, and 12 months. The LCA at baseline found a 3-class solution.

I would like to look at the three subpopulations found at baseline and see how they responded to the intervention. I guess one approach would be to simply run growth models in each subpopulation on each risk behavior one after the other. Or I could do the multiple indicator growth model as a multiple group growth analysis.

Is there another approach you can recommend where I could do all of this in one step?
 Bengt O. Muthen posted on Wednesday, July 11, 2007 - 6:28 pm
If your 7 binary indicators are well summarized by 3 latent classes, perhaps you would be interested in seeing how subjects transition between those classes over time and how those transitions are affected by the intervention. If so, Latent Transition Analysis is suitable. We can send more information about Mplus input for intervention analysis if this is where you want to go.

You mention growth modeling in each of the 3 classes, which sounds like you think there is variation across people within classes. If that's the case, perhaps LCA is not the best measurement model, but instead Factor Mixture Analysis (not imposing measurement invariance across classes). As an advanced approach, an FMA measurement model can be used for a combined growth and transition analysis.

As yet another alternative, you can see the 7 binary items as indicators of a (say) single continuous factor, where this factor has 3 classes and you use that factor as your dependent variable in a GMM - that is then a multiple-indicator GMM. Its measurement model can be seen a Mixture Factor Analysis (class-invariant measurement parameters).
 Mplususer  posted on Wednesday, January 30, 2008 - 4:56 pm
Hi there,
Following your response to Matthew Cole on July 11, I have a question about multiple-indicator GMM. Suppose we have scores for 7 items across 3 time
points and we don't know if they are all loaded on the same factor across
time. Do we need to run factor analyses at each time point to preliminarily examine if the items are loaded on this factor, and then use the factor scores as the values of a dependent variable for GMM analysis? Is Example 6.14 still the place to start the analysis?
 Linda K. Muthen posted on Thursday, January 31, 2008 - 11:11 am
You need to check for measurement invariance across time. Example 6.14 without the growth model is the place to start. I would then continue with a multiple indicator growth model. I would not use factor scores with less than 15 factor indicators.
 Mplususer  posted on Thursday, January 31, 2008 - 11:50 am
Thanks, Linda!
 Shawn Latendresse posted on Friday, February 04, 2011 - 11:55 am
With respect to the second-order LCA described in Bengt's 10/1/06 response (above), can this be extended to the case where c1 and c2 are both GMMs?
 Bengt O. Muthen posted on Friday, February 04, 2011 - 3:25 pm
I think you mean that c1 and c2 are latent class variables influencing growth factor means for GMMs. Yes, that kind of second-order LCA is possible to do in Mplus.
 Shawn Latendresse posted on Saturday, February 05, 2011 - 3:05 pm
No, actually the other way around, where the second order latent class variable (i.e., the c in example 8.14) is a function of two latent categorical variables, c1 (externalizing trajectory class) and c2 (internalizing trajectory class). If this is possible, I seem to be having a problem figuring out how to specify it in the model statements. Specifically, I keep getting error messages indicating that all growth factors need to be specified in the overall statement. However, in the model I'm describing, there are growth factors specific to the c1 and c2 models, but not second order latent class variable. I'd appreciate any help you can offer. Thanks.
 Bengt O. Muthen posted on Sunday, February 06, 2011 - 12:22 pm
Seems like you can give the two growth models in the Overall part and then in the c-specific parts mention the class-specific growth factor means for the respective growth model. So like:

Model c1:

and the same for Model c2 using [i2] (and other growth factor means. This implies that [i1] is held equal across the c2 (and c) classes, and so is only a function of c1 classes. And analogously for [i2].

Check in Tech1 that you get the equalities you need.

That's quite a complex model.
 Shawn Latendresse posted on Tuesday, February 08, 2011 - 11:27 am
Thanks so much! The model runs beautifully.
 Samuel Johnson posted on Monday, March 30, 2015 - 8:45 pm
Hi All -

Two general questions about LCA with a second-order factor.

I am conducting an analyses similar to example 7.18, except with 4 and 5 categorical indicators for c1 and c2, respectively.

How do you determine the number of classes for c1 and c2? Through previous LCA, or through this second-order analyses?

Secondly, can you use the auxiliary(e) function for a second order LCA in the same way you do for standard LCA? If not, how would compare expected means across second-order classes?

Thanks again!
 Bengt O. Muthen posted on Tuesday, March 31, 2015 - 6:45 pm
Q1. I would do it in separate regular LCAs for each c.

Q2. We don't recommend aux(e) any longer; see the tables at the end of the paper on our website:

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.

Try aux(bch) and see what you get.
 Samuel Johnson posted on Thursday, April 16, 2015 - 4:23 pm
Thank you very much for the suggestion and reference.

When trying to run with BCH, I get the error:

*** ERROR in VARIABLE command
Auxiliary variables with E, R, R3STEP, DU3STEP, DE3STEP, DCATEGORICAL, DCONTINUOUS, or BCH are not available with TYPE=MIXTURE with more than one categorical latent variable.

Is there an error in my coding, or if not, any suggestions to get around this restriction?

Thanks again,
 Linda K. Muthen posted on Friday, April 17, 2015 - 6:29 am
This cannot be done with more than one categorical latent variable.
 Samuel Johnson posted on Friday, April 17, 2015 - 7:26 am
Thank you for clarifying and the continued help.

If I have a model based off of two categorical latent variables, is there any another other way to estimate and test differences in auxiliary variables across groups other than the auxiliary functions?
 Linda K. Muthen posted on Friday, April 17, 2015 - 2:53 pm
Not that I know of.
 TaeKyoung Lee  posted on Monday, April 20, 2015 - 5:09 am
Dear Drs. Muthens

I have analyzed two different types of second-order growth mixture models using Mplus. One approach was built based on multiple indicator growth model(example 6.14 of Mplus manual; Curve-of-Factors Approach). I have seen that most literatures have used this model as a measurement model of second-order growth mixture model.
However, I detected many convergence problems(e.g., negative variances, or local maxima) when I used this approach.

Thus, I am now considering another approach which has been known as Factor-of-Curves model (Duncan's 2006 Growth Curve Model book). This approach estimates common growth factors using multiple growth factors instead of multiple manifest indicators. When I used this model as a measurement model of Second-order growth mixture model, I found that the model has less problems compared to curve-of-factors approach and reduced computational time. However, I had never seen this type of Second-order growth mixture model. So, I am not sure whether I can use a factor-of-curve latent growth curve model as a measurement model of second-order growth mixture model.

Therefore, I would like to ask you for your advice if second-order growth mixture model can be built based on factor-of-curves latent growth curve model. Also, could you let me know if there is any relevant paper in this area? I am more than grateful for your advice.
 Bengt O. Muthen posted on Monday, April 20, 2015 - 6:11 pm
Both approaches can be used with growth mixture modeling. The choice depends on which factor means you want to vary across your latent classes. One model may be more parsimonious than the other and may not fit as well. Note that often more flexible, less parsimonious, better-fitting models can perform worse in terms of convergence, negative variances, etc. I am not aware of articles on this, but perhaps others are?
 Bruno Mendonça Coêlho posted on Thursday, August 06, 2015 - 6:49 am
Dear all, we just performed a LCA model with cross-sectional data regarding 12 dichotomous symptoms.

With the results in hands, it seems that a best solution would be some sort of "intermediate" model between 2 and 3 latent classes, since graphics have shown a huge convergence in 6 of the 12 symptoms in the 3-class model.

Our questions are:

1) It would be possible to perform a second-order LCA model with first-order 2 classes and some second-order classes (from one of the first-order classes) as follows:

Class 1


Class 2
--> Class 2-a
--> Class 2-b
--> Class 2-Etc.......

2) If yes, would you mind indicating us how the MODEL syntax for that would be?

Best regard,
 Bengt O. Muthen posted on Friday, August 07, 2015 - 5:33 pm
Perhaps 3 classes would not be needed (in terms of BIC) if you added some residual covariances among your class indicators in the 2-class model. See the paper on our website:

Asparouhov, T. & Muthen, B. (2015). Residual associations in latent class and latent transition analysis. Structural Equation Modeling: A Multidisciplinary Journal, 22:2, 169-177, DOI: 10.1080/10705511.2014.935844

Otherwise, you can try to formulate any latent class model you want using "confirmatory LCA" - see our UG ex 7.13 and 7.14.
 Samuel Johnson posted on Tuesday, January 12, 2016 - 5:05 pm

I am still working on the second order latent class analyses from my posts some time ago.

If you have determined the class solutions from previous single-order LCAs, how do you ensure the second-order LCA replicates these classes?

Do you fix the means of each variable in each class in the MODEL command section, and the probabilities of each class? What is the syntax for this?

Thank you again!
 Bengt O. Muthen posted on Tuesday, January 12, 2016 - 7:03 pm
That's a research question. Perhaps it's ok to do what you suggest. Syntax simply uses


for the means within a certain class.

Class proportions for the first-order classes are handled by fixing their intercepts, e.g.


But I would first see how much the solution changes and why.
 Amanda Hagman posted on Wednesday, November 16, 2016 - 2:39 pm
I am running a second order latent analysis similar to a mover-stayer model. Theoretically I feel there should be 3 classes within the second order latent variable. There are 3 LPAs that feed my model, each with 4 classes.

When I ran the LTA I saved the probabilities. Is it appropriate to use this dataset to fix transition probabilities with the second order latent variable? Could I also would run the LTA and the mover-stayer model separately?

 Bengt O. Muthen posted on Wednesday, November 16, 2016 - 5:56 pm
It sounds like you want to fix the first-order LTA parameters and estimate the second-order part. That is reasonable.
 Amanda Hagman posted on Monday, November 28, 2016 - 1:01 pm
Hello Dr. Muthen,

Thanks for your reply. I don't think your response answers my question, may I try again?

I conducted LPA at 3 time points to find the latent variable of substance use patterns. Each LPAs had 4 classes that looked similar across time.

Then I conducted an LTA to see how individuals transitioned between substance use classes across time. My data best fit an LTA with only a first order effect.

Now I am working on a second order latent variable, similar to the Mover-Stayer model. However, I haven't been able to successfully run the second order latent variable model.

I want to test a 3 class, second-order latent variable that classifies the type of transition over time; (1) there is a large group that stays in a normative class, (2) a group that transitions but ENDS in the normative class, and (3) a group that transitions by DOES NOT end in the normative class.

I want to constrain the results from my LTA to create these three groups. I haven't been able to do this.

Can I save the results from my LTA and use the saved transition probabilities to estimate a new latent variable. Or, should this be easily completed with a single syntax?

One of my major difficulties in using a single syntax is that I can't fix my last class, which is my largest class.

Can you please offer any suggestions on this matter?


 Bengt O. Muthen posted on Monday, November 28, 2016 - 2:17 pm
I don't see a correct way to analyze saved transition probabilities to estimate the second-order latent class variable. It should be doable in a single step (or done the way I suggested). As for the single step approach I think you will get ideas from the FAQ on our website

LTA with Movers-Stayers

If you need to you can rearrange the order of the classes by simply using the estimates to a new set of start values with STARTS=0.
Back to top
Add Your Message Here
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Options: Enable HTML code in message
Automatically activate URLs in message