Message/Author 

Judy Black posted on Wednesday, October 31, 2012  4:11 am



I am using the new 3step approach to examine latent class. After finishing the first two steps, we got 3 classes. We would like to examine how depression scores changed within each of the class. In SPSS, we could use repeated measures ANOVA to examine whether/how depression changed within every class. Is it possible to do ANOVA/ttest in Mplus 7? Or, is there any other analysis that can be used to examine the change scores of depression within every class? Thanks in advance. 


The third step is the ttests. 

Judy Black posted on Thursday, November 01, 2012  1:46 am



Hi Linda,thanks for your reply. Here is the syntax of my third step. What commands shall I use within the model part to have a ttest? TITLE: latent class ana DATA: FILE IS test7.dat; VARIABLE: NAMES ARE T1CESD T1CONTR T2CESD T2CONTR T3CESD T3CONTR p1 p2 p3 n; MISSING IS ALL (99.000); USEVARIABLES are T1CESD T2CESD T3CESD n; ClASSES = C(3); nominal=n; ANALYSIS: TYPE=MIXTURE; MODEL: %overall% %C#1% [N#1@2.792]; [N#2@0.169]; %C#2% [N#1@7.107]; [N#2@9.080]; %C#3% [N#1@2.208]; [N#2@9.106]; 


If your T1CESD T2CESD T3CESD variables are covariates, just say AUXILIARY = (R3STEP) T1CESD T2CESD T3CESD; and MODEL: %OVERALL% That's all. This will give you the tests you need. If they are not covariates, use AUXILIARY = (D3STEP) T1CESD T2CESD T3CESD; 

Lewina Lee posted on Friday, November 02, 2012  5:00 pm



Dear Drs. Muthen, Could you please explain when we need to use the AUXILIARY statement in Step 3 of the new 3Step approach to mixture modeling? In your reply to Judy Black's questions, you suggested using AUXILIARY = (R3STEP) T1CESD T2CESD T3CESD; In Webnotes No. 15 v. 5 (Appendix F), it does not specify an AUXILIARY statement. The code is: variable: Names are u1u10 y x p1p3 n; usevar are y x n; classes = c(3); nominal=n; data: le=man3step2.dat; Analysis: Type = Mixture; starts=0; Model: %overall% Y on X; (and so on..) I would like to regress a distal outcome on the latent class variable (C) & several covariates in Step 3. Do I need to specify the outcome & covariates in an AUXILIARY statement? Thank you very much for your help on this new technique. Sincerely, Lewina 


There is a distinction between the automatic and the manual approach to 3step. The automatic approach use AUXILIARY and does therefore not need to use the [n#1@] type of statements. The automatic approach is suitable for exploration of covariates and distal outcomes in an LCA. An input example showing the covariate case is given in the Version 7 UG ex 7.3. See also the V7 UG pp. 553554. The manual approach does not use AUXILIARY and needs the [n#1@] type of statements. The manual approach is exemplified in Appendix F of Web note 15 for the case where the variables not included in the latent class formation represent a regression model. If you want to regress a distal outcome on the latent class variable (C) & several covariates in Step 3, you need to take the manual approach. 

Lewina Lee posted on Sunday, November 04, 2012  1:35 pm



Great  clear to me now. Thank you very much for your explanation! 

Lewina Lee posted on Wednesday, November 07, 2012  6:34 am



Dr. Muthen, I tried the manual 3step approach. In the third step, I received an error message when I tried to regress a binary distal outcome (CHD) on a binary latent class variable (c). Could you please help? These are the model statements and error message I received. I also tried including the ALGORITHM=INTEGRATION statement to the ANALYSIS section (as suggested in the error message), but that did not help. MODEL: %OVERALL% CHD on T1AGE; c on T1AGE; CHD on c; %C#1% [N#1@ 2.682732393]; CHD on T1AGE; c on T1AGE; CHD on c; %C#2% [N#1@ 2.923583166]; CHD on T1AGE; c on T1AGE; CHD on c; OUTPUT: SAMPSTAT RESIDUAL STANDARDIZED TECH1 TECH4 TECH7 TECH8 ; *** ERROR The following MODEL statements are ignored: * Statements in the OVERALL class: CHD ON C#1 * Statements in Class 1: C#1 ON T1AGE CHD ON C#1 * Statements in Class 2: C#1 ON T1AGE CHD ON C#1 *** ERROR One or more MODEL statements were ignored. Note that ON statements must appear in the OVERALL class before they can be modified in classspecific models. Some statements are only supported by ALGORITHM=INTEGRATION. Thank you, Lewina 

Judy Black posted on Wednesday, November 07, 2012  7:45 am



Dear Dr.Muthen, Thanks for your reply. I tried the commands you suggested, but got an error. You may see the output here: Mplus VERSION 7 MUTHEN & MUTHEN 11/07/2012 4:27 PM INPUT INSTRUCTIONS TITLE: latent class analysis Nov 7th DATA: FILE IS C:\dataset2.dat; VARIABLE: NAMES ARE T1CESD T1CONTR T2CESD T2CONTR T3CESD T3CONTR T1SPAN T2SPAN T3SPAN Education; MISSING IS ALL (99.000); USEVARIABLES are T1CESD T1CONTR T2CESD T2CONTR T3CESD T3CONTR; ClASSES = C(3); Auxiliary =(de3step)T1CESD T2CESD T3CESD; ANALYSIS: TYPE=MIXTURE;PROCESSORS=2; OUTPUT: TECH11;TECH14; SAVEDATA: FILE=C:\November\dataset1.dat;SAVE=CPROB; *** WARNING Variable name contains more than 8 characters. Only the first 8 characters will be printed in the output. Variable: EDUCATION *** WARNING in MODEL command All variables are uncorrelated with all other variables within class. Check that this is what is intended. 2 WARNING(S) FOUND IN THE INPUT INSTRUCTIONS latent class analysis Nov 7th *** FATAL ERROR THERE IS NOT ENOUGH MEMORY SPACE TO RUN Mplus ON THE CURRENT INPUT FILE. 

Lewina Lee posted on Wednesday, November 07, 2012  8:00 am



Hi, I think I resolved the issue I had earlier  I am retracting my question above (Wednesday, November 07, 2012  6:34 am). Sorry for the inconvenience. Lewina 


Judy: Remove TECH11 and TECH14 from the OUTPUT command. These options cannot currently be used together with DE3STEP. 


Hello, I am using the 3step manual approach Mplus 7 to regress a distal outcome on the latent class variable and covariates. And I may be just completely overlooking something but Is there any way to test the equality of means of the distal outcome across classes(like in the du3step) while also adjusting for covariates? My third step output gives my outcome (y) on covariates (x1x8) and the intercept and residual variance for each class. I was hoping to get a comparison across classes, is there a way to request this or a manual approach? Thanks for any suggestions. 


Use MODEL TEST in the final step. %C#1% ... [D] (m1); %C#2% ... [D] (m2); MODEL TEST: m1=m2; 

Leslie Roos posted on Tuesday, February 05, 2013  11:42 am



Hello, I am using 3step approach in MPlus 6 to regress a distal categorical outcome on latent class variable (complex stratified dataset), currently in the 3rd step following procedures outlined in Feingold, Tiberio & Capaldi (2013) and Asparouhov & Muthen (2012). I am stuck at receiving the error: *** ERROR One or more MODEL statements were ignored. These statements may be incorrect. Any advice would be highly appreciated! Leslie ANALYSIS: TYPE = COMPLEX MIXTURE; ESTIMATOR = MLR; ALGORITHM = INTEGRATION; INTEGRATION = MONTECARLO; MODEL: %OVERALL% aax1or2 ON cGROUP; jail ON cGROUP; %cGROUP#1% [GROUP#1@1.087]; [GROUP#2@2.792]; [GROUP#4@0.264]; [GROUP#5@0.033]; jail ON aax1or2; %cGROUP#2% [GROUP#1@0.653]; [GROUP#2@2.008]; [GROUP#4@0.838]; [GROUP#5@0.087]; jail ON aax1or2; .... OUTPUT: CINTERVAL; 


Please send the output and your license number to support@statmodel.com. 


Hi, I am performing the manual 3step for an LCA model with covariates and three distal outcomes (two of which are binary and one is continuous). I am unable to run the final step with all three distals and covariates. Two problems happen. First, when I ran the model with only the continuous distal, the covariate relationships were estimated, but the Wald test for the comparison of the distal outcome means (using model test) produced the following error: “WALD'S TEST COULD NOT BE COMPUTED BECAUSE OF A SINGULAR COVARIANCE MATRIX.” Second, when I ran the model with a binary distal (which was treated as continuous), I received the following error message under the Sample Statistics section: “THE ESTIMATED COVARIANCE MATRIX FOR THE Y VARIABLES IN CLASS 1 COULD NOT BE INVERTED. PROBLEM INVOLVING VARIABLE (F1EVERDO). COMPUTATION COULD NOT BE COMPLETED IN ITERATION 4. CHANGE YOUR MODEL AND/OR STARTING VALUES. THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO AN ERROR IN THE COMPUTATION. CHANGE YOUR MODEL AND/OR STARTING VALUES.” Thanks in advance. 


First, note that Web Note 15 which describes the 3step approach has recently been corrected. The corrected version can be found on our home page. This means that the manual approach has changed and that R3STEP, DE3STEP, and DU3STEP have errors. Corrections are included in Mplus Version 7.1 which we plan to release at the end of March. Results are however quite similar. Second, these types of singularities may be due to an observed variable being constant within a class. Please check using the most likely class approach. Third, when using a binary distal variable, DU3STEP should be replaced by DE3STEP. 


Hi, I am using the calculations based on the revised Web Note. I also checked that there is variance in each of my classes for my three distals using the most likely class assignment. However, I still am not able to test the equality of means using "model test." Is there a different way for testing the equality of means in the context of the manual 3step? Thanks! 


Is your distal categorical? If not, please send your input, output, and data to Support. 


Thank you for your response. I have three distal outcomes (two of which are binary and one is continuous). I will send my input, output, and data to support.I appreciate your assistance! 


Hello, I conducted a mixture model analysis and then subsequently evaluated evaluated covariates and distal outcomes using the new approaches in version 7. I was asked to justify why I would use the Wald test over anova/manova for my distal outcome means comparison. Is there any specific resource you can direct me that would help validate the use of the Wald test for comparison? Thanks! 


anova/manova doesn't exist for mixture modeling and Wald does where Wald is essentially the same as anova if it were available for mixtures. 

Lewina Lee posted on Thursday, March 14, 2013  6:16 am



Drs. Muthen, I am running an LCA on data from a sample at Time 1, and using DU3STEP to compare classes on outcomes at Time 2. Only about 6070% of my LCA sample has data on Time 2 variables. How can I obtain the classspecific Ns for each distal outcome I specify with DU3STEP? Thank you, Lewina 


Not sure what you mean by classspecific Ns  if you are referring to sample size or the means of the nominal N variable representing latent class. If you refer to sample size, you can get that by doing a Type=Basic run. Note that the Version 7 DU3STEP has an error that is corrected in the upcoming version 7.1. See also Web Note 15 which shows how to do this manually. 

Lewina Lee posted on Thursday, March 14, 2013  9:58 am



When I ran DU3STEP, the output reads: LPES06 Mean S.E. Class 1 15.613 0.246 Class 2 14.222 0.394 Class 3 15.294 0.215 ChiSquare PValue Overall test 9.092 0.011 Class 1 vs. 2 8.836 0.003 Class 1 vs. 3 0.702 0.402 Class 2 vs. 3 5.488 0.019 Because my LCA was ran on N=1076, and only a subset of the sample had data (N=649) on variable LPES06 (auxiliary distal outcome), I want to know the split of the N=649 into Classes 1, 2 & 3. That is, in the above, what N is the Class 1 mean of 15.61 (SE=.246) based on? 


You need to use SAVEDATA: SAVE=CPROB; and using e.g. Excel you can count the number of cases that have nonmissing for the distal outcome and have the relevant most likely class. 

Yaoyue Hu posted on Thursday, April 11, 2013  2:10 am



Hello, In the step 3 of manual 3step estimate, Model: %overall% c on x1x13; %c#1% [N#1@2.706]; [N#2@4.043]; [N#3@0.172]; [N#4@0.354]; %c#2% [N#1@2.303]; [N#2@9.176]; [N#3@5.635]; [N#4@3.912]; %c#3% [N#1@5.670]; [N#2@6.898]; [N#3@9.019]; [N#4@6.131]; %c#4% [N#1@7.073]; [N#2@0]; [N#3@6.016]; [N#4@9.036]; %c#5% [N#1@1.673]; [N#2@9.038]; [N#3@9.038]; [N#4@9.038]; The following MODEL statements are ignored: * Statements in Class 1: [ N#3 ] [ N#4 ] . . . * Statements in Class 5: [ N#3 ] [ N#4 ] I don't know what was wrong, and is it possible to correct? Thank you for your help. 


Did you have N on the USEV list and did you declare it as nominal? Also, be sure to calculate your [N#values] using the corrected Web Note 15, which is called Version 6. 


Hi there, I get the following problem in 3rd step when using LC as a moderator. *** WARNING in MODEL command At least one variable is uncorrelated with all other variables within class. *** ERROR The following MODEL statements are ignored: * Statements in Class 1: [ N#1 ] [ N#2 ] [ N#3 ] [ N#4 ]... My command as follows: (I have double checked my way of calculating the [N#values], by recalculating those in the example of web note 15,v6): variable: names are Nu E O A CO EAU AU4 CPROB1CPROB5 n; usevar are EAU AU4 n; classes=c(5) NOMINAL=n; DATA: FILE=unweight2.dat; ANALYSIS:TYPE=MIXTURE; starts=0; MODEL: %OVERALL% AU4 ON EAU; %C#1% [N#1@3.201]; [N#2@5.933]; [N#3@1.404124]; [N#4@0.514]; AU4 ON EAU; ... %C#5% [N#1@1.756]; [N#2@3.564]; [N#3@6.349]; [N#4@9.026]; AU4 ON EAU; How can I fix it? Thanks. 


Try adding a semicolon at the end of the CLASSES option. 


Thank you. It works now. 


I have an LCA model in which the covariates influence the measurement model. It is similar to UG example 7.12, except the covariates do not have direct effects on the indicators. The covariates are binary (e.g. gender). How do you output the mean of the covariate for each latent class? For example, I would like to know the proportion of people within each class that are female. Thank you! 


As for Residual in the Output command. 


Thank you for your reply. Is there a way to test for significant differences for the covariates across classes? (those that are included in the LCA model). 


You can do that using the 3step approach of Auxiliary = (R3STEP) x; where you don't include x in the model. If you include the x in the model, it is harder because the x parameters are not part of the model. Unless you bring them into the model, mentioning say their means, and then do Model Test on them. But that is a heavier model, particularly if x's have missing data. 


Thanks for your reply. I would like to keep the covariates in the LCA measurement model. What if I used the manual 3step procedure (Web note 15 v. 6) and ran the measurement model with covariates in step 1. Is step 3 flexible such that I could leave the covariate out of the LCA model, but specify it on an auxiliary statement instead using the (e) or (r3step) command? 


No. And the (E) option is now more or less superseded by the DU/E3STEP and DCAT/DCON options (see the Version 7.1 Mplus Language Addendum). But to me, if you have gender as a predictor of latent class in your model, it seems that this model tells you what you need already  the significance of the gender effect is reported (males have significantly different latent class logits than females). If you are instead interested in how significantly different the gender proportions are in the different classes, shouldn't the model be one where gender is a distal outcome instead of a predictor? 


You are correct about already having what I need already in terms of gender differences across classes (the mean is estimated in the residual output, and significance test from the regression). Thanks for pointing that out. The remaining piece that I am unclear on is how to include gender in the measurement model, but still use R3STEP to examine the association between covariates and latent classes, while controlling for gender in the multinomial logistic regression. Is that possible using the "automatic" or manual r3step procedure? 


So you have a model with say u1u5 as latent class indicators and gender as an x variable with c on x. And then you want to check other potential covariates by having them predict the classes determined by the u1u5 plus x information. If I am understanding you correctly, you can do that by manual R3STEP. 

Wendy Liu posted on Thursday, June 13, 2013  5:12 pm



Dear Professor Muthen, I have used the manual 3step approach (Web Notes: No. 15, V6) for an LCA model with one continuous covariates and one distal continuous outcome. The output file, under the section of “Model Results”, showed the following results Categorical Latent Variables Means Estimate S.E. Est./S.E. Twotailed Pvalue C#1 0.521 0.162 3.209 0.001 C#2 0.744 0.200 3.716 0.000 How should I interpret this part of results? Thank you Wendy 


These are the logits that define the model estimated class probabilities which are given earlier in the output. 


Is it possible to use categorical or nominal predictors with r3step? 


The covariates can be binary or continuous. A nominal variable needs to be changed to a set of binary variables. 


Thank you very much! 

Jamie Taxer posted on Thursday, August 29, 2013  3:13 am



Dear Dr. Muthen, I have conducted an LPA with a sample size of 260 and replicated the classes in a second sample with 193 participants. I would now like to see if the classes differ from one another on multiple distal outcomes. I was planning on using the 3step approach, but I am not sure if my sample size is big enough for it. I noticed in presentation online that you recommend using the 3step method with a sample size of 500 or more. What would you suggest, should I use the 3step approach or the pseudoclass draw approach? 


I think you can use 3step with you samples. 


Dear Dr. Mutehn, I am running 3 step LCA with distal outcome (web note15). I could run the program but I am not sure how I can run Wald TEST with outcome of each class. (my outcome is a continuous variable). When my understanding is correct, intercept of each group is mean of each group's outcome. I'd like to compare one group's (e.g., g1) outcome is significantly higher than another group(e.g., g4). Would you please tell me how to do it? I would very appreciate if you can indicate reference point or syntax for it. Sincerely, HJ 


Are you using the DCON option? If not, read about it in the web note. 


I am implementing manual 3 step because I'd like to predict my outcomes at w2 by controlling previous outcomes (W1) to examine how my latent subgroups significantly related to my outcomes. 1. Does this idea fit in Mplus' manual 3 step LCA with distal outcome? (In other words, manual 3 step can test this model?) 2. I'd like to compare "intercept" of each class while controlling for previous outcomes (W1) because I can show how my latent classes are related to my dismal outcomes. 1) Is it OK to compare "intercept" to show how each class has different "mean" of dismal outcomes? If so, how can I compare "intercept" of each class? 


1. Note that when you do the manual 3step, the class percentages may change when you add the distal Y. 2. You can put a parameter label on the intercepts and then use Model Test to test if they are different. 


Drs. Muthen, I tried the manual 3step approach. In the third step, I received an error message when I tried to regress 6 distal outcomes on "c." I'm modeling a 6class model. Membership in the latent profiles is predicted by 4 variables. Finally, the profile should predict 6 distal outcomes. Could you help please? Here are excerpts from the code and error message. MODEL: %OVERALL% T4MSSE ON C; T4INT ON C; T4UTIL ON C; T4INTEN ON C; T4IDENT ON C; T4TEST ON C; C ON GLEVEL IND T2REL T5CLIM; %C#1% [N#1@10.480]; [N#2@6.777]; [N#3@.276]; [N#4@7.702]; [N#5@3.922]; T4MSSE ON C; T4INT ON C; T4UTIL ON C; T4INTEN ON C; T4IDENT ON C; T4TEST ON C; C ON GLEVEL IND T2REL T5CLIM; ........ AND SO ON ......... *** ERROR The following MODEL statements are ignored: * Statements in the OVERALL class: T4MSSE ON C#1 T4MSSE ON C#2 T4MSSE ON C#3 T4MSSE ON C#4 T4MSSE ON C#5 ........... AND SO ON ....... 


You cannot regress an observed variable on a categorical latent variable. The effect you are looking for is found in the varying of the means of t4msse across classes. 


Thanks for the tip! 


Just a follow up. I've changed my input as follows: MODEL: %OVERALL% C ON GLEVEL IND T2REL T5CLIM; %C#1% [N#1@10.480]; [N#2@6.777]; [N#3@.276]; [N#4@7.702]; [N#5@3.922]; [T4MSSE] (msse1); [T4INT] (int1); [T4UTIL] (util1); [T4INTEN] (inten1); [T4IDENT] (ident1); [T4TEST] (test1); C ON GLEVEL IND T2REL T5CLIM; ... %C#6% [N#1@9.183]; [N#2@10.559]; [N#3@3.610]; [N#4@2.083]; [N#5@4.262]; [T4MSSE] (msse6); [T4INT] (int6); [T4UTIL] (util6); [T4INTEN] (inten6); [T4IDENT] (ident6); [T4TEST] (test6); C ON GLEVEL IND T2REL T5CLIM; MODEL TEST: msse1=msse2; msse1=msse3; msse1=msse4; msse1=msse5; msse1=msse6; msse2=msse3; msse2=msse4; msse2=msse5; msse2=msse6; msse3=msse4; msse3=msse5; msse3=msse6; msse4=msse5; msse4=msse6; msse5=msse6; But I get an error message saying that my MODEL statements are ignored. Suggestions? 


Please send the output and your license number to support@statmodel.com. 

Jamie Taxer posted on Thursday, October 17, 2013  3:15 am



Dear Dr. Muthen, I am doing the automatic 3 step approach to test for differences between my latent classes. When testing for distal outcomes using the DU3STEP command I get the following message for several variables and classes: PROBLEMS OCCURRED DURING THE ESTIMATION FOR THE DISTAL OUTCOME EMOEX. THE LATENT CLASS VARIABLE IN STEP 3 HAS MORE THAN 20% CLASSIFICATION ERROR RELATIVE TO STEP 1 IN CLASS 1. For these variables I am also only getting values of 999.000 for the equality tests. What does this mean and is there some way that I can fix it? 


This means that you should not use DU3STEP. Instead, try the new option of DCON/DCAT. These issues are described in web note 15. 

Jamie Taxer posted on Thursday, October 17, 2013  7:06 am



Thank you! Does this mean that I should do two separate analyses? One time R3STEP to see which variables predict the latent classes and DCON to analyze the distal outcomes, since In Lanza's method latent class predictors should not be included in the model? 


That's right: R3STEP and DCON done separately. 


Drs. Muthen, I could run the manual 3step approach. I'd like to test whether DV' mean of each class are significantly different or not. As your recommendation (web note 15),I ran Wald test. However, once I ran it, I can only assign the same variance of DV among groups. Please take a look of my syntax. MODEL: %OVERALL% Y1 Y2 Y3 on ; %C#1% [N#1@2.212]; [N#2@6.556]; [N#3@0.051]; [Y1] (a1) Y2 Y3; %C#2% [N#1@8.10];[N#2@2.369]; [N#3@1.809]; [Y1](A2) Y2 Y3; %C#3% [N#1@0.6]; [N#2@0.921]; [N#3@2.154]; Y1 Y2 Y3; %C#4% [N#1@3.837]; [N#2@3.172]; [N#3@3.457]; Y1 Y2 Y3; model test: a1 = a2; Once I ran this model, I could see the same variance of Y1 in C1 and C2 and the same variance of Y2 in c1 and c2, and the same variance of y3 in c1 and c2. I don't know how to make mean difference test. Would you please point it out what I did make a mistake and how I can compare DV' mean difference across latent classes? Thank you in advance. 


In a statement like [Y1] (a1) Y2 Y3; nothing is parsed after the label. You would need to specify [Y1] (a1); Y2 Y3; or [Y1] (a1); Y2 Y3; To free the y variances in all classes you must have y1 y2 y3; in all classes. You do not. Use MODEL TEST: 0 = a1 a2; If you want the other means, you need to label them like you did a1 and a2. 


We ran a latent class analysis that settled on a 6class solution, and used r3step to test predictors of class membership. Because of the high number of classes and because some of them look very similar, we were wondering if it would be possible to combine some of them and reevaluate the influence of predictors. Is this possible with r3step or the manual 3step method? Thank you! 


No, you would have to rerun with a smaller number of latent classes. 


This seemed to work: I created a new mostlikely latent class variable, with the original six levels recoded into three. Then, I recalculated the classification uncertainty rates using the average posterior probabilities table, the proportions based on the estimated model, the proportions based on mostlikely class membership, and the following formulas: P(A or B) = P(A) + P(B)  P(A and B) P(BA) = P(AB) * P(B) / P(A) Finally, I calculated the logit table and used the values for step 3 of the 3step method. 


Hello, I am running an LPA with the automatic R3STEP and DCON procedures for covariates and distal outcomes. I have three separate data sets that I am combining and would like to account/control for this in the the actual profile development. Do you have any suggestions on ways to do this (or point me in the right direction in the literature)? Currently, I have just created a set of dummy codes and regressed c onto them (syntax below). Might this be an appropriate way to control for the data sets in the class development? Thank you for your time. MODEL: %OVERALL% u1; u2; c ON dummy1 dummy2; 

Jamie Taxer posted on Monday, November 25, 2013  9:20 am



Hi, I am using r3step to check for predictors of my latent profile groups and would like to know if it is possible to receive the class level means of each of the predictors. Next to whether or not the groups significantly differ from one another, I would like to report each classes mean and confidence interval for the predictors. 


Answer to Daniels: Your input says that the class probabilities can change over the data sets. But the item probs for each class will be the same, so measurement invariance is specified. To avoid MI you can explore direct effects from dummies to class indicators; we talk about that in our teaching of Topic 5, also giving a ref to Clogg work on multiplegroup LCA in I think Soc Meth. A more general Mplus approach than using dummy covariates is to let data set be represented by a Knownclass variable in which case you have great flexibility in checking data set invariance for the model parameters. 


Answer to Taxer: That does not come out automatically with R3STEP, so instead I would recommend using the Most likely class membership as an observed variable in a secondary analysis where you get the means and their SEs computed. 


Thank you for your response. I understand I can explore MI across data sets with the knownclass command. There does seem to be some minor differences in estimates when I go that route. To clarify your first point, would it be accurate to say that specifying direct effects from the dummy variables to the indicators controls for differences across the studies in the profile estimation? MODEL: %OVERALL% y1; y2; y1y2 ON dummy1 dummy2; 


When you have c measured by say y1y5 and say c on x1x2; you can't also identify y1y5 on x1x2; You should instead do yj on x1x2; for one yj at a time and see where the important direct effects are. 


Thanks for your help, Bengt. One other question if you don't mind: I am modeling distal outcomes of my profiles using the DCON command (given high classification error in some instances). However, due to listwise deletion of missing data, my sample size drops to 173 for some outcomes. Do you think this sample size is too low for reliable estimates? Also, is it possible to impute missing data when running this analysis? If so, would you be able to provide syntax in the analysis statement for that? I'm not sure how to include type = mixture AND missing. Thanks again for all your help. 


I don't know the percentage missing, but I would do simple descriptive stats on the not missing variables in your model, comparing the sample with missing on the DCON variable to those not missing. So you see how selective the missingness is. Missing data handling is not implemented for 3step. Not sure if we do 3step for imputed data using Type=Imputation data; try it. 

Karen Kochel posted on Thursday, January 16, 2014  11:15 am



I am conducting LPA with the goal of regressing three distal outcomes on latent class variable (with 2 continuous indicators) and 1 covariate and then examining equality of means (via Wald Test) on the distal outcomes. I first estimated a joint model (i.e., I combined the latent class model and distal outcome model) and entropy was high (i.e., >.90), but the inclusion of the distal outcome resulted in a substantial change in latent class formation so that the latent variable lost its intended meaning. Having reviewed Web Notes 15 and discussion posts, it seems a 3step approach is warranted; am I right? If so, and given that I have a distal outcome and covariate, will I need to use the manual 3step approach? Or can DU3STEP and R3STEP be used in a single analysis to explore the distal outcome and covariate, respectively? Will each distal outcome need to be investigated within a separate analysis? 


DU3STEP and R3STEP cannot be used together which means that if you have a covariate you would have to do the "manual approach" mentioned in the web note, but that would likely also change the class formation. If you don't include the covariate, the DCON/DCAT approach is best. 


Thank you for your help! I have two followup questions related to this four class LPA. (1) To evaluate the effect of latent profile on distal outcome while controlling for prior levels of the distal outcome (i.e., the covariate), I regressed the distal outcome on the covariate (per Linda's suggestion to another user). I would now like to evaluate the relation between profile membership and distal outcome. Is it acceptable to use model test to examine intercept differences in the distal outcome (because the mean is not provided in this case, correct)? For example: %c#1% … [Distal] (m1); %c#2% … [Distal] (m2); Model test: m1=m2; (2) I used the 3step manual approach (with guidance from Webnote 15 and Vermunt, 2010) to evaluate the abovementioned models. In a manuscript, should I be presenting statistics (e.g., a comparison of true values and estimates) as evidence that the 3step procedure works well with my data? If so, what values do you recommend I present? Thank you! 


So in your script here you are not doing 3step but instead a regular LPA with a distal regressed on a covariate? Note that this may change the class formation relative to not including the distal in the model. But apart from that, yes you can test intercept differences this way. Not sure what you mean in (2); not enough information about what you did. And, what do you mean by "true values"? 


Thanks for your response. To clarify: I followed the 3step approach outlined in Web Note 15. In Step 1, I estimated my LPA and included the auxiliary option but did not specify a type (so that my auxiliary vars would not be used in estimation but rather saved in savedata file). I obtained support for a four class solution. In Step 2, I “computed” error for most likely class (in reality, used the “logits for the classification probabilities for most likely class” obtained in Step 1). In Step 3, I used most likely class as the indicator variable and fixed measurement errors at values in Step 1 output. Also in Step 3, I specified auxiliary model: I regressed the distal outcome on the covariate (i.e., prior levels of distal outcome). Am I correctly implementing the 3step approach? And, I can now test intercept differences via the Wald test? Re: question (2) in my prior post: in Web Note 15 you present an example in which you conduct the 3step with an arbitrary 2nd model. You conclude that the procedure works well for your example because your estimates obtained in the final stage are close to true parameter values. Elsewhere, I’ve seen you suggest that when class separation in the LCA is good, then N is a good indicator of C. Should I be evaluating if the 3step performs well with my data and, if so, how do I do this? In other words, do I need to justify why I am using this 3step versus, say, the 1step? Thank you again! 


Regarding your first paragraph, you want to check that your latent class formation (percentage in the classes, same people in the classes) in Step 3 is close to that of Step 1  often it isn't in which case the stepwise method loses its advantage/meaningfulness. Regarding your second paragraph. I think the only justifications you need to make are (1) substantive reason for wanting classes to be defined only by the LPA indicators, not the distal (2) Step 1 and Step 3 classification agrees. 

Kathleen posted on Wednesday, February 05, 2014  9:56 pm



I am trying to implement the 3step approach for an LTA, although the entropy at each time point > than 0.87. I was looking at Webnote 15, and slides from a presentation at the Modern Modeling Methods Conference, UConn, May 21, 2013. From slides 79, it appears the values for the nominal variable are fixed at the logodds of the results from the "Average Latent Class Probabilities for Most Likely Class Membership..." However, in the Webnote, the results from the "Logits for the Classification Probabilities..."are used. Which method should be used, and how can I relate the Average Latent Class Probs to the Logits? I see the formula for the logits described on page 4, but I haven't been able to replicate it. Thanks very much for your time. 


You should use "Logits for the Classification Probabilities", which are printed in Mplus version 7.11. See the latest version of our 3step paper and its Mplus scripts which are shown at the top of http://www.statmodel.com/recentpapers.shtml 


I am using the new automatic auxiliary command, R3step, in an LPA. Is it reasonable to include some covariates in the model command (e.g., "c on age") and others in the auxiliary command ((R3Step) pred1, pred2))? Thank you. 


You can do that if you think e.g. age is critical to the class formation. But don't expect that the results with the auxiliary covariate (z, say) would be the same as doing a 1step analysis with c ON age z; 

HanJung Ko posted on Wednesday, April 16, 2014  10:59 am



Hi, Dr. Muthen, I am doing a 3step GMM, with a few variables predicting the class membership at step 3 (not distal outcome variable on c as in your web note) Here is my step1 model syntax for 2 classes: %OVERALL% i s  pl_1@0 pl_2@1 pl_3@2 pl_4@3 pl_5@4; i WITH s; My question is: For computing N parameters in step 2 and further enter them in step 3, where should I compute from? I read in one handout from "Classification Probabilities for the Most Likely Latent Class Membership"? For example, log (0.909/0.091) for n#1 from that table and log(0.037/0.963) for n#2. or Mplus already calculated the numbers? (i.e., Logits for the Classification Probabilities for the Most Likely Latent Class Membership: 2.306 for n#1, and 3.270 for n#2) Their numbers are not the same. That's why I am confused. Thank you, HanJung Ko 


You should use the Mpluscalculated logits. If you are uncertain, send output and license number to Support. 


I am using the new 3step approach with ECLSK data and have to weight the analyses. I get this error message: *** ERROR in VARIABLE command Auxiliary variables with DCATEGORICAL or DCONTINUOUS are not available with TYPE=MIXTURE and weights. Are weights not allowed in this model? Many thanks 


Weights are not allowed with these options. 


Can weights be applied in the manual approach? I tried to compare the outcome across classes using the MODEL TEST command and came across the following error: WALD'S TEST COULD NOT BE COMPUTED BECAUSE OF A SINGULAR COVARIANCE MATRIX. The classification probabilities for the most likely class membership are below 1 2 3 4 1 0.983 0.012 0.000 0.005 2 0.019 0.947 0.026 0.007 3 0.000 0.007 0.986 0.008 4 0.004 0.007 0.021 0.968 Thank you 


This should be easy to fix. Your model test should look like this model test: 0=a1a2; 0=a2a3; 0=a3a4; If you have more than these 3 equations in model test remove them. 


Thank you so much, I'll try this! 


Thank you for your comment Tihomir, these changes worked. Is there an output I can request to see specific mean differences across classes, like a posthoc test? Thank you again 

ellen liao posted on Friday, April 25, 2014  8:22 am



Dear all, I am running the manual 3step approach. After identified the 3class solution for the independent variable (class_neg), I want to use classmembership to explain the variations on the trajectory of the outcome (tzexe1 mzexe1 jzexe1), taking into account measurement error. Input is Usevar are tzexe1 mzexe1 jzexe1 ttime_10 mtime_10 jtime_10 tage_c55 class_neg ; TSCORE= ttime_10 mtime_10 jtime_10 ; NOMINAL= class_neg; CLASSES = c(3); Analysis: Type = random mixture ; Model: %OVERALL% i s  tzexe1 mzexe1 jzexe1 AT ttime_10 mtime_10 jtime_10 ; tzexe1 mzexe1 jzexe1 (1); i s ON tage_c55 c; %c#1% [class_neg#1 @1.912]; [class_neg#2 @11.766]; %c#2% [class_neg#1 @2.429]; [class_neg#2 @1.263]; %c#3% [class_neg#1 @2.034]; [class_neg#2 @2.409]; the error message is *** ERROR The following MODEL statements are ignored: * Statements in the OVERALL class: I ON C#1 I ON C#2 S ON C#1 S ON C#2 *** ERROR One or more MODEL statements were ignored. These statements may be incorrect. Any ideas what's going? Thanks in advance. 


Laia: We don't provide a table of the means. You can take these from the results where you have labelled them. 


Ellen: Variables cannot be regressed on the categorical latent variable. This effect is found the means of i and s varying across classes. 

ellen liao posted on Wednesday, April 30, 2014  4:14 am



Thanks, Linda. That works. One more question regarding covariates in predicting classmembership. I understand in the article by Muthen 2004 argued covariates should be included otherwise the predicted membership is distorted. However, given my research question is regarding how those latent classes (independent variable) are associated with a distal outcome, where those covariates (e.g. age, sex etc.) will be controlled again. Somehow, I feel if I follow the suggestion proposed by Muthen, I will double control for those covariates? Can you talk me through the logic? Many thanks. 


Not sure what you mean. Perhaps you are considering 3step. If you are considering 1step there is no double control. 

ellen liao posted on Wednesday, April 30, 2014  8:47 am



Hi, Muthen Yes, I am using the 3step, so the classmembership will be derived from previous analysis and using as a categorical variable alongside the class membership error. So my question is should I use twice the covariates in the membership classification (Step 1&2, GMM), and in the main analysis (Step 3, regression). Thanks. 


Yes. 

ellen liao posted on Wednesday, April 30, 2014  11:23 pm



Sorry for bugging. But I am still confused. If covariates were used twice in the 3step, isn't there double control for the same covariates? If not what the role they are playing in different steps? Many thanks. 


In the first step, the covariates help determine the classes. In the last step including the covariates says that the class variable is not the only predictor of the distal. If you leave out the covariates in the first step you don't get optimal classes. If you leave out the covariates in the last step you are misrepresenting the effect of the class variable (just like omitted variables/predictors in regression). 


Hi all, I have undertaken a LCA (n = 1690) based on 9 dependent variables, concluded with a 3 class solution, and want to test differences in two distal outcomes. First I tried to epecify the auxiliary outcomes as du3step and de3step, but got error messages. Then, I tried the dcon option, which provide some estimates: NUMBER OF DELETED OBSERVATIONS FOR THE AUXILIARY VARIABLE: 46 NUMBER OF OBSERVATIONS USED FOR THE AUXILIARY VARIABLE: 1644 Approximate Mean S.E. Class 1 7.500 0.048 Class 2 6.099 0.134 Class 3 7.458 0.051 However, these are very unexpected findings given the nature of the variables. The classes do not seem to have been turned around either. Just to check, I also tried the option (e), and got these results: Mean S.E. Class 1 7.498 0.051 Class 2 7.439 0.053 Class 3 6.177 0.126 This is in line with our hypotheses. What is happening here, and which results can I trust? 


Please send the two outputs to support@statmodel.com and if you can also send the data. 

andy supple posted on Wednesday, July 30, 2014  5:58 am



Is it possible to use the define command with R3STEP? I get an error saying that the variable isn't found if the R3STEP comes before the define command. If I put the R3STEP after define it says there is an assignment error. Is this possible to do with the r3step? usevariables are madefunv pick30v namesv teaseb harassb rumorb reduced ; CLASSES = c(4); categorical are madefunv  rumorb; define: blackbypar = black*parinvolve; auxiliary (r3step) reduced parinvolve black blackbypar; ANALYSIS: TYPE = MIXTURE; model: %overall% OUTPUT: modindices (all); 


Please send the 2 outputs to Support. 


I am using the DU3STEP option in a LCA to look at differences in a distal outcome across the 3 identified classes. I wanted to know if it is possible to include control variables for the distal outcome. 


Not when using this automatic approach. You can try using the "manual" approach described in our 3step paper, but class formation may change between step 1 and step 3. 

Lauren Cole posted on Wednesday, February 18, 2015  1:09 pm



Hi all, I am working on trying to complete a moderation analysis (interaction) within the 3step manual approach. The association I am examining is selfefficacy and alcohol misuse. To start, I did the latent class analysis (first step) to determine classes of alcohol misuse, which resulted in 5 classes. I then used the manual 3step method to regress the alcohol misuse classes on selfefficacy while taking into account the classification uncertainty. I would like to test for moderation/interaction of this relationship by depression. To do this, I would need to include a depression*selfefficacy term in the model  this step seems straightforward. However, if there is moderation present, I need to present the results broken down by depression status and I am unclear as to how to do that while still accounting for the classification uncertainty properly. For example, I would want the OR for selfefficacy and alcohol misuse for 1. depressed and 2. notdepressed women, separately. Any help would be appreciated. 


So in the last step you are doing a multinomial logistic regression with an interaction. So you have n on self (b1) dep (b2) selfdep (b3); So the slope for selfefficacy for depressed=0 is b1 and the slope for selfeff for dep=1 is b1+b3. So you get the ORs using Model Constraint with or0=exp(b1) and or1=exp(b1+b3). 

Lauren Cole posted on Thursday, February 19, 2015  2:21 pm



Thank you, Dr. Muthen. I was able to obtain the odds ratio stratified by depression with your help. One followup question: how do I calculate the 95% confidence intervals for or1? From what I can find, I need to use the variancecovariance matrix to calculate the confidence intervals  if that is correct, how would I get that information out of MPlus using the manual 3step method? 


What you should do is to get the 95% confidence limits for the corresponding logOR (so before you do exp)  you get that simply by you youself calculating estimate plus minus 1.96*SE, where the output gives you the estimate and SE. Then again using your own calculator you take exp of those 2 limits and that will give you the OR limits. 

Lauren Cole posted on Monday, February 23, 2015  9:00 am



Thank you, Dr. Muthen. I am familiar with calculating the 95% CI for an odds ratio as you explained above. My question is more about how to calculate the 95% CI for the or1=exp(b1+b3) in the example you gave above. How would I incorporate the standard errors for both of those estimates to estimate the 95% CI? Would I need to use the variancecovariance matrix? If so, how would I get that in MPlus using the manual 3step method? 


You can use Model Constraint to express logor = b1+b3; That gives the SE for this log odds and then you proceed with the usual steps. 


Hello, I am using the R3STEP command to estimate four latent classes and then use these classes in a multinomial logistic regression. I have estimated four models that progressively increase the number of covariates in the model i.e. Model 1: covariate 1 Model 2: covariates 1 & 2 Model 3: covariates 1 & 2 & 3 Model 4: covariates 1 & 2 & 3 & 4 Partial code for model 1 is presented below: classes = c(4); auxiliary = WhiteBritish(R3STEP) WhiteIrish(R3STEP) Indian(R3STEP) Bangladeshi(R3STEP) BlackCaribbean(R3STEP) BlackAfrican(R3STEP) Analysis: Type = complex mixture ; starts = 200 5; I have found that the number of parameters, loglikelihood, AIC, BIC and SSABIC are exactly the same for all four models (given under MODEL FIT INFORMATION). I think this is incorrect and I am unsure as to how to obtain correct model fit statistics. Any help would be much appreciated. Many thanks, Dharmi 


The Model Fit Information refers to the Step 1 analysis, using only the latent class indicators. 


Thank you  that makes sense. My follow up question is: is there a way to assess the fit of the full model? Thanks, Dharmi 


No, then you have to do a regular mixture analysis in a single step. 

db40 posted on Tuesday, May 12, 2015  3:45 am



Hi can I have something cleared up please? The 3step analysis requires that Mplus outputs a file in step one which is called into step and this is repeated for step 3? This is a model with covariates and distal outcomes. 


See my answer to your other post. 

db40 posted on Sunday, May 17, 2015  1:19 pm



Dear Bengt, I have tried to follow appendix D and E for my model (3 class with covariates and distal outcomes. I have a question regarding step1 (apologies I am a psychologist not a statistician). Page 8 details this of which I have amended to reflect the number of indicators: My question is, what does this tell me below and why are the indicators in %c#3% broken into two lines (I have followed p8). Model: %OVERALL% %c#1% [u1$1u8$1*1]; %c#2% [u1$1u8$1*1]; %c#3% [u1$1u5$1*1]; [u6$1u8$1*1] ; <   why are these broken? In step2  I have amended to reflect my data. But I get an error " "THE ESTIMATED COVARIANCE MATRIX FOR THE Y VARIABLES IN CLASS 1 COULD NOT BE INVERTED. PROBLEM INVOLVING VARIABLE Y1. [...] nominal = n ; Classes = C(3); [...] ANALYSIS: [.... ] Model: %OVERALL% y1 on b2 ; %C#1% [N#1@2.142]; <these have been taken from the previous step [N#2@0.645]; Y1 on b2; Y1; %C#2% [N#1@0.185]; [N#2@5.011]; Y1 on b2; Y1; %C#3% [N#1@2.315]; [N#2@0.130]; Y1 on b2; Y1; 


Hi, I used the automatic R3Step approach and want to report the odds ratio for my covariates but don't see it in the output. Is there an option for getting this output? 


Hello, I am running an LPA on clustered data with distal outcomes using the automatic de3step. I have 10 distal outcomes and one outcome will not provide parameter estimates. I get the following error message ARIABLE IN STEP 3 HAS MORE THAN 20% CLASSIFICATION ERROR RELATIVE TO STEP 1 IN CLASS 1. Is there a way that I can get means and unbiased standard errors to conduct mean difference tests? 


DE3STEP is not for clustered data analysis. 


Perhaps you are referring to a Type=Complex analysis. Maybe try BCH  take a look at this 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. Paper can be downloaded from here. Mplus Web Notes: No. 21. 


Yes, I am using the type=complex. THank you, I will look at that paper. 


hi, i have the same question posted by Sasha Fleary on 6/16/15. i'm using the R3STEP command to estimate three latent classes and then use the classes as a dependent variable in a multinomial logistic regression. i'm also adding covariates to see if the log odds on my main independent variable of interest change. in the output under 'TESTS OF CATEGORICAL LATENT VARIABLE MULTINOMIAL LOGISTIC REGRESSIONS USING THE 3STEP PROCEDURE', log odds are reported. where can i find information on how to get odds ratios and their standard errors? my understanding is that i can't label the parameters in my auxiliary statement to then use in the model constraint option? my analyses are also weighted and are using imputed data. thanks for any help! 


No, you can't use Model Constraint here, so if not printed there is no way to get the SEs for the ORs. 


But perhaps you can instead do R3STEP manually as shown in our papers. Then you have access to Model Constraint. 


hi Bengt, thanks for the response, i had also thought of doing the manual step. however, 'save=cprob' isn't an option when you have imputed data. 


Why do you need cprobs? 


maybe i've misunderstood? in step 1 of the manual process, don't you save the class probabilities and create a new file? this is from Appendix D of the appendices of web note 15. if there's a way i can do the manual step using Type = imputation, that would be great. 

anonymous Z posted on Thursday, August 06, 2015  11:29 am



Hi Drs. Muthen, I have consulted with you through emails about the manual 3step in regard to adding a distal outcome. Below is your answer and my syntax. You said I can “hold the slopes of the covariate equal across classes so that you can interpret class differences in terms of the classspecific intercepts.” My question is: what is the syntax for hold the slopes of the covariate equal across classes? Thank you very much! Dr. Linda Muthen’s response: Your model estimates the classspecific intercept parameters for your EXT_4 distal outcome, not their means. I recommend doing what you do in Ancova – hold the slopes of the covariates equal across classes so that you can interpret class differences in terms of the classspecific intercepts, controlling for the covariates. When you have covariates you should not be interested in the EXT_4 mean because that is a function of the covariate means. MODEL: %OVERALL% EXT_4 ON tx_2 age_dic eth sex_abu phy_abu H_und18 H_abo18 TS_D TS_A; %c#1% [n#1@4.289]; [n#2@0.306]; [EXT_4]; EXT_4; %c#2% [n#1@0.325]; [n#2@2.654]; [EXT_4]; EXT_4; %c#3% [n#1@3.912]; [n#2@2.880]; [EXT_4]; EXT_4; 

anonymous Z posted on Friday, August 07, 2015  11:24 am



Hi Dr. Muthen, Following my post on Thursday, I did model test. The pvalue of Wald Test was significant (see below), I assume this suggest that the mean value of EXT_4 of class 1 was significantly different that of class 3. However, the output only provided the intercepts of EXT_4, which was a negative value. What does a negative value mean? Is there a way I can request the means of EXT_4? Thanks so much! %c#1% [EXT_4] (m1); EXT_4; %c#2% [EXT_4] (m2); EXT_4; %c#3% [EXT_4](m3); EXT_4; MODEL TEST: m1=m3; Wald Test of Parameter Constraints Value 8.967 Degrees of Freedom 1 PValue 0.0027 


To get the means you have to label Model parameters and express the means in terms of these parameters in Model constraint. 

anonymous Z posted on Saturday, August 08, 2015  12:34 pm



Dr. Muthen, Thanks for your response. I have two followup questions: 1. I thought the syntax I used (see below) is the way to express the means. I did “model test” to make m1=m3, and then check Wald test results. Isn’t this the wrong way? “[EXT_4] (m1);” “[EXT_4] (m3);” 2. What do you mean by “express the means in terms of these parameters in Model constraint?” What is the syntax? Thanks so much! 


You said that [ext_4} is the intercept, which means that the ext_4 variable is regressed on some variable. For instance, ext_4 on x; would have ext_4 mean = intercept+b*xmean. 

anonymous Z posted on Monday, August 10, 2015  7:43 am



Hi Dr. Muthen, Based on your advice, I wrote the syntax as below to compare the mean of ext_4 for class1 and class3 (I have two covariates). Is this what you mean? Thank you very much! MODEL: %OVERALL% Ext_4 ON x1 x2; %c#1% [n#1@4.289]; [n#2@0.306]; [EXT_4] (m1); EXT_4; [X1](m11); [X2](m12); Ext_4 on x1(b11); Ext_4 on x2(b12); %c#2% [n#1@0.325]; [n#2@2.654]; [EXT_4] (m2); EXT_4; [X1](m21); [X2](m22); Ext_4 on x1(b21); Ext_4 on x2(b22); %c#3% [n#1@3.912]; [n#2@2.880]; [EXT_4] (m3); EXT_4; [X1](m31); [X2](m32); Ext_4 on x1(b31); Ext_4 on x2(b32); Model constraint: New(ext_4mean_1 ext_4mean2 ext4_mean3 diffm13); ext_4mean_1= m1+ b11* m11+b12*m12; ext_4mean_2= m2+ b21* m21+b22*m22; ext_4mean_3= m3+ b31* m31+b32*m32; diffm13= ext_4mean_1 ext_4mean_3; 


Yes, that's what I meant. 


Hello, If I want to define an interaction when using the R3STEP command, how can I do this? I want to multiply together two observed variables using the define command. I am having problems because I cannot put define before the variable command. Auxiliary comes under variable, hence when I put my interaction terms in auxiliary, I get an error saying they have not been defined. Any help appreciated. Thanks, Dharmi 


If the auxiliary is a newly created variable, it should be mentioned on both USEVARIABLES and AUXILIARY options. 


Thanks. One further question. I am trying to save the class probabilities using cprob. The maximum record length is 10,000 but I have almost 17,000 cases  is there any way around this? Dharmi 

Jon Heron posted on Thursday, August 13, 2015  7:41 am



I've saved cprobs for 500,001 cases without any problem 

Fred Danner posted on Monday, September 07, 2015  7:53 am



I am conducting an LPA with 4 indicators, 3 potential covariates (X1X3), and 2 outcome variables. I want to determine not only the best model but also how and when to use the covariates. IF I use the Auxiliary r3step, I can determine which of the covariates are associated with group membership. Assuming some of them are, how do I include them in subsequent tests of group differences on outcome variables? 


See the manual approach of Section 3.2 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. 

Fred Danner posted on Tuesday, September 08, 2015  3:22 pm



Thanks! I will try that. 


Hello, I still cannot save the probabilites for my data using save cprob. This is part of my input and output. Any help appreciated. Thanks, Dharmi .inp SAVEDATA: File is prob.dat; recordlength = 17000; Save is cprob; format is F10.3; .out SAVEDATA INFORMATION Save file prob.dat Save file format 19F10.3 I11 5F10.3 2I6 Save file record length 10000 An error occurred while writing the save file. Please send input and data to support@statmodel.com for more information. The data will not be saved. 


Please send the input and data to support@statmodel.com along with your license number. 

Fred Danner posted on Wednesday, September 09, 2015  8:18 am



Followup on using the BCH method for an LPA analysis (section 3.2 of Asparouhov, T. & Muthén, B. (2014)): Step 1 worked but Step 2 did not. I get an error message regarding (bch). I also tried the simpler automatic version and in both cases the bch option was "not recognized". I am using Mplus Version 7.11. Is this version not able to recognize bch? 


BCH was introduced in Version 7.3. 

Fred Danner posted on Wednesday, September 09, 2015  9:38 am



So is there a credible alternative I can use with 7.11? 


You can check the user's guide and the Version 7.1 Language Addendum which is on the website with the user's guide to see which options are available for 7.11. 

Fred Danner posted on Thursday, September 10, 2015  1:31 pm



I have a colleague who has version 7.31 and ran the regression auxiliary model combined with latent class regression (section 3.2 in Web Note 21). I want to regress Y on Class while controlling for X but it appears that the twostep procedure that is illustrated gives me Y on X rather than Y on Class. I tried altering the syntax in step 2 to: %Overall% C on X; Y on C; but this will not run. Any way to do this?? 


We don't say Y ON C in Mplus. Instead you get all you need by the Y means changing over classes. 

Fred Danner posted on Thursday, September 10, 2015  3:39 pm



OH, of course! Thanks! And, with the SEs, I can assess the significance of differences between means. 


Yes. 

John Woo posted on Friday, September 11, 2015  7:35 pm



Hi, is there any ways to run the automatic 3step for GMM with Type=Imputation (i am using 5 sets of imputed data) and using ALGORITHM=INTEGRATION? If not, would you have any suggestions on what should be the alternative? Thank you in advance. 

John Woo posted on Friday, September 11, 2015  8:22 pm



I apologize for posting twice.. Per my question just above, one way I tried was to save the start values from running Type=Imputation using ALGORITHM=INTEGRATION, and then use these start values to run just one set of data without algorithm=integration and include the 3step. I did get a result that is very similar to the one I attained by doing the posthoc analysis with most likely latent class membership, but I wasn't sure whether what I did was correct. (My result has a high entropy and high average classification probabilitiesover 0.9 for all classes). Is what I did okay? 


I don't know of a good way to do this. But if you have such high entropy maybe you don't have to bother with going beyond an analysis based on most likely class. 


Hello: Apologies if this issue has already been addressed on the boards but is it the case that when the 3step method is used for an LTA analysis there is necessarily going to be a loss of N (relative to a 1step approach) because of the fact that you are no longer using FIML across multiple time points? In my original LTA 1step, my N was 697 and this decreases to 340 when using the threestep approach (across six time points). The two approaches yield virtually identical class estimates so I am less concerned but I am still puzzled by why precisely my N changes. 


Please send the outputs and your license number to support@statmodel.com. 

Fred Danner posted on Wednesday, February 10, 2016  7:43 am



In an LPA analysis, I have calculated estimated probabilities of membership in each class as a function of various combinations of covariates (such as gender and grade level). I calculated estimated probabilities as a function of gender by using Zscores for the other covariates and now wish to determine the significance of gender as a predictor of membership in each class. How might I do this? 


If you mean the partial regression coefficient of gender in the presence of other covariates, this pvalue is given in the regular output. 

Fred Danner posted on Thursday, February 11, 2016  7:41 am



So ... THIS portion of the output under "Categorical Latent Variables" C#4 ON GENDER 0.947 0.300 3.158 0.002 ZGRADE 0.542 0.120 4.516 0.000 ZLUNCH 0.079 0.122 0.647 0.518 ZIMP 0.121 0.114 1.061 0.288 tells me that Gender is significantly associated with placement in class 4? I thought that I would have to do an additional assessment of significance AFTER calculating the estimated probabilities of being in class 4 for males and females. Thanks for setting me straight! 


Yes, that is the significance of Gender while holding the other covariates constant (just like interpreting regular partial regression coefficients). 

Fred Danner posted on Monday, February 15, 2016  4:11 pm



Another LPA question: I ran an LPA using the BCH method which included both covariates and a dependent variable. The output provides intercepts for the dependent variable for each class and there appear to be interesting differences. However, I don't see any test for equality of means by class in the output. Is there a way to calculate this from the output or to request such a set of tests? 

Soyoon Weon posted on Tuesday, February 16, 2016  8:29 am



Hello, I run 3step model to explore the association between latent class (dependent variable) and covariates. My input file is, VARIABLE: NAMES ARE...... CLASSES = c(4); nominal=n; Analysis: Type= Mixture; starts=0; Model: %overall% n on region sex housing cage1 cage2 cage3 cage4 fam1 fam2 fam3 emp1 emp2 emp3 edu1 edu2.....; %C#1% [N#1@7.288]; [N#2@0.941]; [N#3@0]; n on region sex housing.......; (did it for each class) And I got the results as below for each latent class. MODEL RESULTS Estimate Latent Class 1 N#1 ON REGION 39.156 SEX 29.532 HOUSING 40.302 ,..... N#2 ON REGION 39.084 SEX 29.949 HOUSING 41.556 ..... N#3 ON REGION 52.819 SEX 57.390 HOUSING 67.190 ....... Is there anything wrong with my input file? If not, how come I get a standard error for each estimate? In addition, how can I interpret these results? 

Soyoon Weon posted on Tuesday, February 16, 2016  1:47 pm



Hello Sorry to bother you, but I have one more question. For other data, I got the result as below. Average Latent Class Probabilities for Most Likely Latent Class Membership (Row) by Latent Class (Column) 1 2 3 4 1 0.963 0.012 0.025 0.000 2 0.010 0.867 0.077 0.046 3 0.026 0.051 0.897 0.026 4 0.000 0.005 0.014 0.982 In this case, with zero value in the last row (& first column), how can I calculate the measurement error? 


Answer to Fred Danner: Use Model Constraint to express any intercept diff that you are interested in. 


Answer to Soyoon Weon: Please send relevant output to Support along with license number. 

Fred Danner posted on Thursday, February 25, 2016  7:42 am



I attempted to use Type = Complex Mixture for an LPA analysis. I adapted the syntax from an example on p 8 of Resampling Methods in Mplus for Complex Survey Data in order to make use of replicate weights from the ECLSK data set. A warning says I cannot use weights with Type = Mixture. Is there any way to adjust for complex survey weights in an LPA analysis? I would like to be able to make a claim that my results are based upon a nationally representative sample. 

Fred Danner posted on Thursday, February 25, 2016  10:13 am



I attempted to run an LPA using a modified version of syntax from p. 8 of Resampling Methods in Mplus for Complex Survey Data. I wanted to use replicate weights from the ECLSK data set in order to adjust my results such that I could maintain a nationally representative sample. I selected Type = Complex Mixture but received an error message indicating that replicate weights are not allowed with this Type. Is there a way to use replicate weights when doing an LPA? 


The WEIGHT option is available for TYPE=MIXTURE. Replicate weights are not. Replicate weights are available for only TYPE=COMPLEX. 

Fred Danner posted on Thursday, February 25, 2016  7:55 pm



Thank you. My apologies for the double posting  the first one did not appear until the same time as I sent the second. 

Sara N. posted on Tuesday, March 22, 2016  4:31 pm



Dear Dr. Muthen, I estimated a LPA analysis and came up with three classes. I then saved the class membership and the continuous posterior probabilities (as a text file that can be opened in the spss). Can I use the continuous posterior probabilities instead of logist class probabilities) as the outcome in the third approach? Is there a paper that you recommend reading who have employed such approach? Thanks for any help you can provide! Sara 


That's not the best method. See the paper on our website: Clark, S. & Muthén, B. (2009). Relating latent class analysis results to variables not included in the analysis. Submitted for publication. download paper contact first author show abstract 

Diana P posted on Thursday, May 05, 2016  12:54 pm



Hello, I am trying to assess what is known about the performance of various alternative methods to latent class regression (alternatives to the onestep approach). I found the Clark and Muthen paper very helpful. I was wondering a couple of things: 1) The new 3step approach described in webnote 15 (Version 8, August 5 2014) by Asparouhov and Muthen is NOT one of the approaches included in the Clark and Muthen simulation study. Is that correct? 2) Webnote 15 states that the performance of the new 3step method when sample sizes are smaller and entropy is lower has not yet been evaluated. Is that still true? I have a GMM with sample sizes less than 300, with missing data across time (about 100150 complete cases). Thank you! Diana 


1) Yes 2) The best thing to do is use webnote 15 guideline to conduct a simulation study most closely resembling your situation 

Ali posted on Friday, June 17, 2016  1:47 am



Hello, I am using LCA 3setp estimation manually. I am calculating the log ratios for each class between each category and the last category. Can the number of observations classified in class c (N_c) be found in the output"FINAL CLASS COUNTS AND PROPORTIONS FOR THE LATENT CLASSES BASED ON THEIR MOST LIKELY LATENT CLASS MEMBERSHIP"? 


Yes. 

Dennis Li posted on Thursday, August 04, 2016  1:25 pm



Hello, I am regressing a 7class LPA on three continuous latent factors (similar to Ex. 7.19 in the UG). I used the manual 3step method in the LPA component to avoid classification shifts, but I received the error that the mean and regression parameters in one class were fixed to avoid singularity of the information matrix. I don't think the singularity is because of nonidentification but rather empty cells in the joint distribution between variables. Upon inspection, it seems like there was some class shifting, which dropped one class down to <1%. I checked that the N settings were entered correctly. 1) Does the error mean my model cannot be interpreted? 2) Could you suggest anything else I might try to prevent this error? 


You can explore this by sorting subjects into Most Likely Class and see if each class has an admissible 3factor model. 

Yajing Zhu posted on Monday, August 22, 2016  10:01 am



Hello, I am wondering how to conduct an external monte carlo simulation for the new 3step approaches. I noticed that 3step commands only support internal monte carlo study but not "type=monte carlo". Please advise, thanks! 


It's not available yet. You would have to do it manually  perhaps using the R automation program: http://www.statmodel.com/usingmplusviar.shtml 

DavidBoyda posted on Friday, September 09, 2016  10:35 am



Dear Dr Muthen, trying to get my head around this 3step technique. Might I ask what these commands mean and do from your example Appendix E: Input for step 1 of 3step estimation. I see these are the latent class indicators. So i need to use the same commands (adjusting for the number of indicators in my own model). May I ask why %c#3% indicators are split (u1u5) then (u6u10)? I see the first 5 are fixed at *1 and the second 5 are fixed at *1. What does this mean and are they constraints? Model: %Overall% %c#1% [u1$1u10$1*1]; %c#2% [u1$1u10$1*1]; %c#3% [u1$1u5$1*1]; [u6$1u10$1*1]; 

DavidBoyda posted on Friday, September 09, 2016  11:49 am



Dear Dr Muthen, Another question regarding this 3step method. I am trying to estimate a 6class solution with a covariate and distal outcome. I have run the unconditional 6class solution and declared the auxiliary variable (without R3step) for inclusion into the saved output file. Below is the next step. The issue i am having is "Unexpected end of file reached in data file."  i know it is the N variable adding an extra space  how do i solve this? 2) b2 is my distal outcome. Where do I place this when regressing it onto the classes? DATA: file = modal_class.dat ; VARIABLE: names are ID WEIGHTS b1 b2 u1u13 y1y3 N ; MISSING = *; Nominal = N ; USEVAR are b2 N; missing are all (99) ; Classes = c(6); weight is WEIGHTS ; ANALYSIS: type = mixture ; STARTS=0; ESTIMATOR=mlr; PROCESSORS=4(STARTS); Model: %OVERALL% c on b2 ; %C#1% [N#1@2.888 N#2@1.022 N#3@1.796 N#4@1.053 N#5@2.635 N#6@0.001] ; *SNIP* 

DavidBoyda posted on Friday, September 09, 2016  12:30 pm



Okay please ignore that previous message. It would appear i wasn't reading the .dat file correctly as specified in the previous output. 

DavidBoyda posted on Tuesday, September 13, 2016  12:38 pm



Dear Dr Muthen, in the third step of the 3step manual approach I am experiencing an error: Model: %OVERALL% C on b1 ; b2 on c ; b2 on b1 ; %C#1% [N#1@2.888 N#2@1.022 N#3@1.796 N#4@1.053 N#5@2.635 ] ; C on b1 ; b2 on c ; b2 on b1 ; *SNIP* One or more MODEL statements were ignored. Note that ON statements must appear in the OVERALL class before they can be modified in classspecific models. Some statements are only supported by ALGORITHM=INTEGRATION 


If c is your latent class variable you cannot say c ON anything  that relationship is expressed differently. If this doesn't help, please send output and license number to Support. 


Sorry, I meant to say you cannot say * ON c; 


Hello, I developed a LCA model based on 7 dichotmous indicator variables (N=365), generating 3 classes. The model is invariant by gender (same model is used for both boys and girls) and I ran regressions to explore basic sociodemographic covariates. Now, for a second paper, I need to conduct separate regression models for boys ans girls with a range of new covariates  but I would still like to use the same measurement model (class probabilities) that I developed for the full sample since it works well. I am able to run the regression using R3STEP for the full sample, but not sure how to do this for boys and girls separately without estimating completely new models. Is there a way to save the corrected probabilities of class membership and use use these in a stratified analysis like the one I am describing? Or would that bias the estimates since the sample will be different? Many thanks in advance 


As a second question, is it possible to use the DEFINE command with R3STEP? When I try to define an interaction term for gender, and include this in the AUXILIARY list as well as the NAMEs list, it says: "unexpected end of file reached". When I define the interaction and list it only in the AUXILIARY section, it says that the variable cannot be found. I am defining the new variable before listing the names of all other variables. 


First post: Use the manual approach to R3STEP in each group using the information you get from the total sample run. See our 3step paper. Second post: Send output to Support along with license number. 


Many thanks for the quick response, this is very helpful. A related question: If I am using one model for the full sample, but would like to get the estimated posterior probability of class membership for boys and girls separately, can I get this from the overall regression i.e. "c ON sex"? If so, how? Or, should I run the model with the USEOBSERVATIONS command (e.g., "sex EQ 0" for males) to get the posterior probabilities by gender? 


You can do c on sex for the full sample but adding sex as a covariate may change the class formation. If you do c on sex you can compute the class probabilities like in UG Chapter 14 (multinomial regression). 

Ali posted on Wednesday, October 26, 2016  2:37 am



I am trying to use latent classes as a mediator to explore between motivation and students' performance. Is it possible to set latent class as a mediator in the New3 step LCA approach? 


See our new book for how to use a nominal latent class variable as a mediator. Yes, you can combine that with 3step. It is however more advanced and we don't have a written guide for it. 

Ali posted on Thursday, October 27, 2016  9:48 am



Thanks! If I use a nominal latent class variable as mediator like in the new book,is the number of latent class as the same as the unrestricted LCA(without nay covariate, but only items) ? Or the number of latent class will be changed ? 

db40 posted on Thursday, October 27, 2016  12:10 pm



I have a question regarding the R3Step method and covariates. I have 4 class solution but i wish to control for a range of covariates but not have them influence my class structure. 1) Do i use AUXILIARY = b1b3 (R3STEP); 2) How is this different from example 7.12 where you control for a covariate by regressing c on x; 3) My entropy is high (0.9) so I am opting not to use the 3step method. If i wish to use the most likely class membership in a subsequent logistic regression with a distal variable, should I still include the covariates in the regression model since they are also related to the distal outcome. If yes, would i effectively be controlling for them twice? Once in the class enumeration and once in subsequent analysis. thank you. 


Answer to Ali: In the 1step approach you can keep the number of classes the same although BIC may suggest a different number. The class percentages can be different even for the same number of classes. 


1) Yes. 2) The inclusion of the covariate may change the class formation. 3) Yes you should include them. If you use R3STEP you are not using them twice. 

Meng posted on Tuesday, November 22, 2016  5:45 pm



Hello Dr. Muthen, I have a question about R3STEP method and covariate. I want to use R3STEP to examine the association between my covariate (i.e., gender, race/ethnicity) and latent class. However, the race/ethnicity is not a binary variable. By reviewing previous post and response, I know that the covariates can be binary or continuous and I need to convert it to a set of binary variables. Just want to double check, does that mean I need to create dummy variables for race/ethnicity? For example, if I have three groups in race/ethnicity: white, black, and others, using white as reference group, I will create two dummy variables > white(0,0) Black(1,0) Others(0,1) and using syntax AUXILIARY = Black(R3STEP) Others(R3STEP)? Thank you. 


That's all correct. 

Meng posted on Thursday, November 24, 2016  10:58 pm



Thank you Dr. Muthen! 

Xinyi He posted on Friday, December 16, 2016  5:29 am



Dear Drs. Muthen, I have one question regarding the 3step approach with 1 predictors. That is, when I use the syntax "auxiliary = x(R3STEP)", I cannot get the outcome about OR(odd ratio) in the logistic regression after LCA.So I was confused that whether MPLUS can automatically come out the "OR" or not, or should I add other syntax after the "auxiliary" option. Thank you for your support! Regards, Xinyi He 


Send your output to Support along with your license number. 

Xinyi He posted on Friday, December 16, 2016  8:13 pm



Thank you for your reply! I have already send my output to support@statmodel.com. Sincerely, Xinyi He 

Xinyi He posted on Sunday, December 18, 2016  11:33 am



Dear Prof., I have a question about how to realize the moderator analysis combined with 3step approach in the mplus.Variabls are as followed: x m is latent class variable, which is regarded as independent variable and moderator.y is dependent variable, which is a categorical or continuous outcome. Do you have some references? Thank you for your support! Sincerely, CynthiaHe 

Xinyi He posted on Sunday, December 18, 2016  11:38 am



Hello! I have a question about how to realize the moderator analysis with 3step approach in the mplus. the variables are as followed: x and m are latent class variable,which is regarded as independent variable and moderator, y is catogorical or continuous outcome. Do you have any reference or syntax? Thanks for your support! Regards, Cynthia 


No specific reference but this can be done. Just piece together various UG input examples. 

Xinyi He posted on Wednesday, December 21, 2016  5:30 am



Hello~ I have two questions: 1¡¢When I use 3step approach which is r3step,I cannot get CI(confidence interval) of the estimates(b)in the multinomial logistic regression,how can I get it? 2¡¢In the output of LCA,what does the following outcome(outcome) mean? Is it same to Wald test? Can mplus output the R square of every items like LatentGOLD£¿ 1£© TwoTailed Estimate S.E. Est./S.E. PValue Latent Class 1 Thresholds U1$1 2.687 0.346 7.756 0.000 U2$1 1.715 0.219 7.834 0.000 U3$1 1.946 0.258 7.556 0.000 U4$1 2.203 0.191 11.543 0.000 2£©LATENT CLASS ODDS RATIO RESULTS Latent Class 1 Compared to Latent Class 2 U1 Category > 1 4.444 2.184 2.035 0.042 U2 Category > 1 2.765 1.071 2.583 0.010 Thanks! 


Please send your output to Support along with your license number. 

Xinyi He posted on Sunday, December 25, 2016  3:10 am



Hello~ I have a question about 3step with "dcat".The output included prob. S.E. Odds Ratio S.E.and 95%C.I. I have known the meaning of Odds ratio, but I am confused about the 95%C.I. If the C.I.covers 1,like [0.26 1.72],does it mean that the probility of one category within one latent class is significanty different to another category within another class, just like the meaning of general logistic regression? Am I right? Thank you for your support! 


An odds ratio CI that includes 1 implies that there is not a significant relationship between the two variables considered in the odds ratio. 


Hello, I have a 4 class LCA model for substance use. I've used the manual R3STEP procedure to examine predictors of class membership. I now want to assess whether several contemporaneously measured correlates (e.g. measures for mental health status) vary across my identified classes while accounting for classification uncertainty. Thus, these aren't "distal" outcomes per se. Can I use R3STEP to do this or is this procedure inherently predictive  necessitating temporal ordering for any "distal" outcome under consideration? 


I would use BCH; see Tables 6 and 7 of our web note 21. 


Dr. Muthén, Thank you for your response. I was trying to be concise and didn't note that I'm using complex survey data and therefore can't use BCH. I'm thinking that I may need to use Latent Gold to run a manual R3STEP to predict contemporaneous correlates. Thank you! 


All of these three methods: R3step, 3stepmanual and bchmanual can be used with type = complex. 


Thank again for your response! Delighted to hear that I can now use sampling weights with all three of these methods. Great! Can I also include covariates in models for distal outcomes and use FIML estimation procedures to address a modest amount of missing data for model covariates? Or is this still only possible with R3STEP (sent you separate email about R3STEP SEs). Thank you for all of your work and user support! 


One other quick question. Can I use BCH manual to predict to a binary distal/contemporaneous outcome? Seems like I should be able to do this but want to be sure. Thank you in advance for your help. 


On both questions I think the answers is yes, however, to take care of the missing data you have to model the variable (as usual) meaning that you have to mention the mean or the variance parameter in the model. 


Hello all: I have returned to a promising RR on a manuscript using LTA and in the course of considering the manual 3step approach for the unconditional LTA portion I am wondering is it the case that when the manual 3step method is used for an LTA analysis there is (I would imagine) in most cases going to be a loss of N (relative to a 1step approach) because of the fact that you are no longer using FIML across multiple time points to estimate the entire model? That is, you are using the N_1 and N_2 most likely latent class variables based on the xsectional runs (and their respective n's) as the observed vars in step 3 and, as such, when you use them in step 3 you would only yield an n based on the largest xsectional N_....k latent class variable? In my original LTA 1step, my N was 697 and this decreases to 340 when using the threestep approach (across six time points). The two approaches yield virtually identical class estimates (and prevalences are virtually unchanged from the separate xsectional LCAs) so I am not terribly concerned, but I am still puzzled by why precisely my N changes. 


Dear All: Is it possible to combine the manual 3step approach with effect coding or weighted effect coding for class membership in a third step regression analysis? Thank you in advance, Dennis 


Yes, the sample size difference is because you are not using FIML with respect to all the variables. 


Answer to Herhausen: I think this is only possible if in the last step you use Most Likely Class membership. 


Thank you for confirming Dr. Muthen. Is there a way to avoid the sample size drop in the manual 3step method with LTA? At first blush, I don't see how it would be possible. 


Thank you for you quick response! 


Haltigan: I don't see a way to avoid that offhand. 

Jon Heron posted on Monday, February 27, 2017  1:57 am



I wonder if I might restart this thread following some email discussion between me and Haltigan. If one estimates a multiwave LTA with multiple item indicators at each wave then FIML would permit the inclusion of anyone providing one or more items. If one employed the biasadjusted threestep approach and (i) at each wave in turn estimated a crosssectional LCA using all possible cases, and then (ii) incorporated these modal assignments plus logit constraints into a threestep LTA then mod_Ci would all be dependent variables hence one could again employ FIML and there is not necessarily a drop in sample size at all. In my own example I see no drop in sample size when using this approach. I think the pertinent issue is whether we are on shakier ground when it comes to the MAR assumption given the constrained measurement models. best, Jon 


Questions of clarification: In step (ii), are you considering "c on x"? Using all time points? 

Jon Heron posted on Tuesday, February 28, 2017  5:43 am



Yes I am and there is no missingness in X 


I think you are looking at this correctly. 


Incidentally, I am wondering if our sample size observations are due to the fact that I am using the simple LTA example (4.1) vs. the LTA with covariates and MI example (4.2) from the webnote (and associated appendices). One upshot it might seem to having a model with MI is that because the two LCA models are estimated in parallel (but independently) you likely leverage your ability to maximize your sample under FIML as opposed to the case when the LCAs at different time points are estimated *in different input files*. 

Jon Heron posted on Friday, March 03, 2017  12:48 am



Following a flurry of emails between me and JD, we've at least reached an understanding of what we are doing differently. JD was estimating models for wave 1, wave 2 etc in sequence and using the auxiliary command to collect all the necessary data on the way so that after running the model on the final wave, the savedata command produced the required file for the threestep analysis. Consequently his file only contains those with classindicators available for all waves. In contrast, I was using auxiliary to just add my identifiers, running each wave separately and then creating my threestep dataset at the end by merging together a set of distinct cprob files. Hence i can fit my threestep model on a larger sample (MAR assumptions permitting) but JD can only perform a completecase analysis. 


Sounds like a paper for a teacher's corner. 

Jon Heron posted on Friday, March 03, 2017  11:14 pm



Will add to the list. Not finished the last one yet  threestep nominal mediation. 


Just to be sure before we begin the didactic piece...Is the 4.1 example in Webnote 15 (and its associated syntax) assuming *complete data* is present for all cases in the analyses? 


Just wanted to bump to see if can get confirmation on my note above re: the 4.1 example in Webnote 15 (assumes complete data). 


It does not assume complete data. Even if all class indicators are missing at a particular time point I think it should all be fine. 


Thanks, Tihomir. In the appendices GI for the 3step LTA, the input file for each subsequent step is specified as the previously saved output file. So I am wondering, if it is the case, say for example, that if for C1 your n = 550 and for C2 your n = 340, because the input file for the final 3rd step is carried forward from step 2 (estimating C2), then because the use variables in the final step are specified (in the appendices syntax) as only the latent class nominal variables from the prior two steps, the resultant N will be 340. Or am I missing something? 

Jon Heron posted on Friday, March 10, 2017  2:18 am



I share JD's confusion here. Seems to me that if we create our final analysis file through successive use of "auxiliary" to carry through the previous ModC_i, then the dataset we end up with will be those with at least some data at all waves. Perhaps there is a trick to avoid this  so we end up with cases in the cprobabilities output file if they have auxiliary data but no data/output for the current wave 


If I understand this correctly the struggle here is that Mplus will delete an observation if all indicators are missing and misalign time point 1 and 2 and essentially drop observations through the various steps. In V8 we have a command to prevent this from happening listwise=keepall; but you can do this now simply by introducing a fake variable at every step that has no missing values and carries no class information  just add arbitrary variable to the data set and the model and set the distribution of the variable to be identical across classes such as N(0,1) so that the fake variable does not carry information about the class. N should be identical in every step. 


Thanks for this clarification, Tihomir. This is precisely what I was referring to and your insight regarding how to potentially deal with this in the current version is very helpful. 


I am running a GMM model with covariates. I would then would like to use the resulting classes (along with additional predictors) to predict a dichotomous variable. My entropy is not high enough to save out class membership. What is my best approach? 


Include the binary DV in the model, that is, let its threshold vary across the classes (it does by default). This can be translated into probability diffs across classes. 


Thank you Dr. Muthen. I have tried that but then I cannot use additional controls that apply to the relationship between the classes and the DV that do not predict the classes themselves. I was hoping that I could somehow use a combination of BCH weights and saved out class memberships to then just use class memberships as predictors. Is that possible? 


The approach in section 3.2 of our BCH paper can also be used without the BCH method as described in our paper on our website: Asparouhov, T. & Muthén, B. (2014). Auxiliary variables in mixture modeling: Threestep approaches using Mplus. Structural Equation Modeling: A Multidisciplinary Journal, 21:3, 329341. The posted version corrects several typos in the published version. An earlier version of this paper was posted as web note 15. Download appendices with Mplus scripts. 


Hello, I have a 4class LCA model for substance use. I'm now trying to predict to several distal outcomes using bchmanual per example 3.2 in Web Note 21. Trying to model relationships with several Xs that influence my Ys and the latent class variable. I have a modest amount of missing data that I'd like to address with FIML estimation. On 1/10/17 Tihomir Asparouhov told me (this thread) that I could now do this in the usual way while using manualbch. However, I'm still getting an error message that I cannot use Algorithm = Integration with bch weights. I can use FIML when I'm regressing Y on X by class but get error messages when I try to include regression for C on X. Can I use FIML estimation here? I'm using Mplus 7.4 and also using attrition weights. Thank you! 


Please send your output with the error message to Support along with your license number. 


Hi Dr. Muthen, After I posted I went back and tried using the manual R3STEP procedure to predict from latent classes to continuous distal outcomes. So far seems to be running fine able to use FIML estimation procedures. Any caveats w/using R3STEP? Can I use this for predicting to binary distal outcomes? Thank you 


Ok if class formation doesn't change. 

j guo posted on Tuesday, June 27, 2017  2:45 pm



Hi Dr. Muthen, In LPA with 3step approach, only DCATEGORICAL can be used for categorical distal outcomes. However, DCATEGORICAL cannot be combined with other continuous covariates in LPA. For example, I want to test the effect of latent class variable on a categorical distal outcome, controlling for some continuous covariates. Particularly, looking at the mediation effect of latent class variable for the relationship between covariates and distal outcomes. In such case, can I just move back to the traditional approach: saving probabilities information and test mediation effect of latent class variable in the simple regression? Thank you! 

j guo posted on Tuesday, June 27, 2017  5:25 pm



Hi Dr. Muthen, Following my last post, can I use class probability information and generate multiple dataset (e.g., 25) to take into account of classification uncertainty of latent class variable, and then run the simple logistic regression using multiple imputation? Thank you! 


Why not use 1step? Note also that a nominal mediator (your latent class variable) needs a special definition of indirect and direct effect  see chapter 8 of our regression and mediation book. 

KB posted on Monday, July 31, 2017  10:23 pm



Hello all, I have a 3class solution from 12 items. Now, I would like to examine if my covariates(gender and education) predict the LC memberships using 3step approach. I observed that if I include the two covariates in the model (e.g., AUXILIARY = gender (r3step) edu (r3step);), I get estimates and pvalues entirely different from examining the covariates separately (e.g.,(i) AUXILIARY = gender(r3step); (ii) AUXILIARY = edu(r3step); ) I have the following questions: 1. Why the results do not agree? 2. Which approach would you recommend? Analysing them together or separately Thank you and hope to hear from you. KB 


1. For the same reason that a regression slope differs for x1 if x2 is also in the regression of y on x1 x2. The models have different meaning. 2. You should use both covariates at the same time. 

KB posted on Tuesday, August 01, 2017  6:56 pm



Great! Thank you, Bengt for your quick response. KB 

Anna Austin posted on Sunday, October 15, 2017  6:34 pm



I am using Vermunt's three step approach to examine the association of a distal outcome with latent classes identified using latent class analysis. I would like to account for potential confounders in this association. Do I add the confounders during the same step as the distal outcome in order to do this (i.e., AUXILIARY = x(R3STEP))? Thank you! 


You do this using the "manual" approach that is described in our two 3step papers, web notes 15 and 21. 

nidhi gupta posted on Friday, January 19, 2018  3:24 am



Dear Prof Muthen, I performed LPA to determine profiles based on 8 continuous (V1V8) variables and chose 4 class solution (the variable is C) based on maximum posterior probability approach. Then I used variable C to predict an outcome (Y) after adjusting for covariates. This is what I want to model Y=latent class variable(C)+covariates (4 covariates)+error term I want to validate these results by taking into account for the measurement error in the classification of the individuals, Thus I want to use the 3step approach which accounts for this error. However, i am not sure where we enter covariates in this model. this is my model VARIABLE: NAMES ARE V1 V2 V3 V4 V5 V6 V7 V8 age alcohol, Y, smoke, diet; USEVARIABLES ARE V1 V2 V3 V4 V5 V6 V7 V8; CLASSES = c (4); AUXILIARY = (DU3STEP) Y; ANALYSIS: TYPE = MIXTURE; 


If Y is continuous, use BCH manual as described in Web Note 21, Section 3.2. 

nidhi gupta posted on Monday, January 22, 2018  6:07 am



Thanks Prof Muthen, do you think my codes are correct? step 1 TITLE: manual_step1 DATA: FILE IS mplus.dat; VARIABLE: NAMES ARE V1 V2 V3 V4 V5 V6 V7 V8 age gender, bmi, smoke, diet1, alcohol; USEVARIABLES ARE V1 V2 V3 V4 V5 V6 V7 V8; CLASSES = c (4); AUXILIARY = age gender, bmi, smoke, diet1, alcohol; ANALYSIS: TYPE = MIXTURE; starts=0; SAVEDATA: FILE =step1.dat;Save=bchweights; step 3 VARIABLE: NAMES ARE V1 V2 V3 V4 V5 V6 V7 V8 age gender, bmi, smoke, diet1, alcohol W1W4; Usevar are age gender, bmi, smoke, diet1, alcohol, W1W4; Classes = C(4); Training=W1, W2, W3, W4(bch); Data: file=step2.dat; Analysis: Type = Mixture; Starts=0; Model: %overall% C on age alcohol diet1 smoke gender; bmi on age alcohol diet1 smoke gender; %C#1% bmi on age alcohol diet1 smoke gender; %C#2% bmi on age alcohol diet1 smoke gender; %C#3% bmi on age alcohol diet1 smoke gender; %C#4% bmi on age alcohol diet1 smoke gender; is it problem if my covariates (gender, smoke) are categorical (having two categories in each)? 


It says on page 11 that Starts=0 should not be used in step 1. 

nidhi gupta posted on Monday, January 22, 2018  2:23 pm



Thanks Prof Muthen for your reply. I will remove 'starts=0' from step 1. is there any way i can define that my covariates are categorical? they have mainly two categories in each. 


Covariates should not be declared categorical, only DVs. 


Hi I am struggling to get a normal output of the second step BCH model. My auxiliary command passed 56 cases as read on the 1st step output and data. I corrected coding errors to read the 56 cases correctly by the second step input file. I counted them on Excel sheet. Excluding the ID and other variable, the first step model produced "BCHW1 BCHW2 BCHW3 BCHW4 CPROB1 CPROB2 CPROB3 CPROB4 C". Based on the "Mplus Web Notes: No21v2" and the January 22 2018, post by Nidhi Gupta, Mplus produces W1, W2 and so on instead of BCHW1, BCHW2 and so on. They read W1 W2 W3 W4 in variable names and usevariables place and used Training=W1, W2, W3, W4(bch). I read BCHW1 BCHW2 BCHW3 BCHW4 in variable names and usevariable place as it was produced by Mplus (output). When I coded Training= BCHW1, BCHW2, BCHW3, BCHW4; I got output sheet containing warning as "*** ERROR Training variable has negative value at observation 1". When I followed others approach Training= BCHW1, BCHW2, BCHW3, BCHW4 (bch); I could not get output though I could see a flash of data processing. a) Can you advise me why my output is different from others? b) Which is the right approach to define Training command? c) What could be the problem not getting normal output? 


You have to use Training= BCHW1 BCHW2 BCHW3 BCHW4 (bch); Send your example (input and data) to support@statmodel.com for further information. 


If it is the case that the distal in question is a nominal variable (e.g., reflecting classifications of subjects, for example), that ranges from 14, what is the best approach for the choice of the 3step distal approach. At first I used DE3STEP and got the means (i.e., treating the variable as continuous, I am assuming) but am wondering if there is a more optimal strategy here. Of further note, both Lanza methods failed in this case. 


Followup correction to my above post: when increasing miterations to 50000, the issue resolved (when using DCAT which I believe is the optimal choice in my situ, as what I want conceptually is a multinominal logistic regression framework). Question: what can I glean from the fact that it was necessary to increase the miterations in this case (assuming 5 class, N = 311, smallest class n= 19, with listwise N of 62 on the distal)? Harder to maximize the global LL with such a small class? 


The data issue may indeed strain the estimation. You can use alternatively the BCH manual method http://statmodel.com/examples/webnotes/webnote21.pdf or the 3step manual method http://statmodel.com/download/webnotes/webnote15.pdf to double check. DE3STEP would not be recommended here because it is not binary and the mean doesn't directly translate to a probability. For example a mean of 2.5 should not be interpreted as 0.5 probability of being in category 3. 


HI When Judy Black in the very first message posted this code: MODEL: %overall% %C#1% [N#1@2.792]; [N#2@0.169]; %C#2% [N#1@7.107]; [N#2@9.080]; %C#3% [N#1@2.208]; [N#2@9.106]; where do the values after N#1@ and N#2@ come from? 


This is explained in our Mplus Web Note 15 which you find on our website. 

Y.A. posted on Sunday, May 20, 2018  12:44 am



Dear Prof. Muthen, I have the following LTA model, I know the meaning of the classes for el and fo from step 1,but how do I determine the meaning of the latent classes for cel and cfo in step 3? Do the classes for these new latent variables have the same meaning as the ones in step 1? and are the in the same order? I am asking this because I have need to switch the reference class. So I need to know which class is which, and what do they mean. Thank you very much. model: %overall% cfo on cel; model cel: %cel#1% [el#1@4.735]; [el#2@0.305]; %cel#2% [el#1@0.170]; [el#2@3.036]; %cel#3% [el#1@3.778]; [el#2@3.036]; model cfo: %cfo#1% [fo#1@3.303]; [fo#2@0.378]; %cfo#2% [fo#1@0.328]; [fo#2@2.364]; %cfo#3% [fo#1@2.884]; [fo#2@3.617]; 


Yes on both questions. 

Y.A. posted on Tuesday, May 22, 2018  3:45 am



Dear Prof. Muthen, I am fitting a c1(3) c2(3) c(3) LTA using the 3step approach, with x1 and x3 moderating transition from t1 to t2, and x2 and x3 moderating transition from t2 to t3. On the step 3, When I add the lines with ! symbol, the model seems not identified. Could you give me an example please? Thank you very much. My current code looks like this: %OVERALL% c2 on c1; c1 on x1 x3; c3 on c2; ! c2 on x2 x3; model c1: %c1#1% c2 on x1 x3; [n1#1@... n1#2@...]; %c1#2% c2 on x1 x3; [n1#1@... n1#2@...]; %c1#3% c2 on x1 x3; [n1#1@... n1#2@...]; model c2: %c2#1% !c3 on x2 x3; [n2#1@... n2#2@1...]; %c2#2% !c3 on x2 x3; [n2#1@... n2#2@1...]; %c2#3% !c3 on x2 x3; [n2#1@... n2#2@1...]; model c3: %c3#1% [n3#1@... n3#2@...]; %c3#2% [n3#1@... n3#2@...]; %c3#3% [n3#1@... n3#2@...]; 


The statement c2 on x2 x3; in the Overall part of the model is not identified when you have all these classspecific statements c2 on x2 x3; Fix these coefficients @0 in the Overall part. 

Y.A. posted on Tuesday, May 22, 2018  6:58 pm



Dear Prof. Muthen, Thank you very much for the response. I have modified the model, but it still looks like not identified. The classspecifi statement are c2 on x1 x3 and c3 on x2 x3 I dont have c2 on x2 x3 x1 and x2 are age on t1 and t2, x3 is gender. Anything else I should fix? Thank you. Now the model looks like this: %OVERALL% c2 on c1; c1 on x1 x3; c3 on c2; c2 on x2@0 x3@0; model c1: %c1#1% c2 on x1 x3; [n1#1@... n1#2@...]; %c1#2% c2 on x1 x3; [n1#1@... n1#2@...]; %c1#3% c2 on x1 x3; [n1#1@... n1#2@...]; model c2: %c2#1% c3 on x2 x3; [n2#1@... n2#2@...]; %c2#2% c3 on x2 x3; [n2#1@... n2#2@...]; %c2#3% c3 on x2 x3; [n2#1@... n2#2@...]; model c3: %c3#1% [n3#1@... n3#2@...]; %c3#2% [n3#1@... n3#2@...]; %c3#3% [n3#1@... n3#2@...]; 


We need to see your full output  send to Mplus Support along with your license number. 


Dear Prof Muthen, team and other members of the discussion group In old days, the practioners of the growth mixture modelling problem used to test whether slope parameter of their data best fit in linear quadratic, cubic or piece wise model/ functional form. Recently experts advised to adopt BHH or 3 steps process. Here I have confusion that how the new approaches account the functional form issue in determining the latent classes. How the functional form issues are accounted in the Mplus or similar other software? Do the new approaches belong to any specific functional form? My question is not specific to the Mplus technical help but the forum has excellent experts to answer my query in layperson language. 


The growth mixture model is the first step so all the old thinking on functional form is still relevant. 


After running a threestep LCA with a set of categorical and continuous distal outcomes (using DE3STEP), I got normallooking results for all but one variable. This one variable, a dichotomous variable, gave me results of 999.000 for all means and pvalues. I saw your advice above to use DCAT/DCON, but when I used DCAT, Mplus gave me an error message: "Auxiliary variables with DCAT or DCON are not available with TYPE=MIXTURE and weights." I was wondering what I should do instead? I went back through the dataset (which I'm sorry but I can't share because of my data license) and didn't see anything strange with the variable. I'm not sure what I'm doing wrong. Thanks in advance for your consideration. Virginia 


You can use BCH instead of DE3STEP. You can also use the manual 3step or bch approach and declare the variable as categorical in the last stage. For the manual approach see Section 3 in http://statmodel.com/download/webnotes/webnote15.pdf and Section 3 in http://statmodel.com/examples/webnotes/webnote21.pdf 

Back to top 