Judy Black posted on Wednesday, October 31, 2012 - 4:11 am
I am using the new 3-step 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/t-test in Mplus 7? Or, is there any other analysis that can be used to examine the change scores of depression within every class?
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 t-test?
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;
If your T1CESD T2CESD T3CESD variables are covariates, just say
AUXILIARY = (R3STEP) T1CESD T2CESD T3CESD;
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 3-Step 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 u1-u10 y x p1-p3 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.
There is a distinction between the automatic and the manual approach to 3-step.
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. 553-554.
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
I tried the manual 3-step 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.
%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;
*** 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 class-specific models. Some statements are only supported by ALGORITHM=INTEGRATION.
Thank you, Lewina
Judy Black posted on Wednesday, November 07, 2012 - 7:45 am
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
*** 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
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.
Hello, I am using the 3-step 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 (x1-x8) 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?
Leslie Roos posted on Tuesday, February 05, 2013 - 11:42 am
I am using 3-step 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;
Hi, I am performing the manual 3-step 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.”
First, note that Web Note 15 which describes the 3-step 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 3-step?
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?
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
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 60-70% of my LCA sample has data on Time 2 variables. How can I obtain the class-specific Ns for each distal outcome I specify with DU3STEP?
Not sure what you mean by class-specific 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
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?
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 CPROB1-CPROB5 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;
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!
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 3-step 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 u1-u5 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 u1-u5 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 3-step 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
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 3-step 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 3-step method with a sample size of 500 or more. What would you suggest, should I use the 3-step approach or the pseudo-class draw approach?
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.
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?
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?
Drs. Muthen, I could run the manual 3-step 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.
We ran a latent class analysis that settled on a 6-class 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 re-evaluate the influence of predictors. Is this possible with r3step or the manual 3-step method?
I created a new most-likely latent class variable, with the original six levels recoded into three.
Then, I re-calculated the classification uncertainty rates using the average posterior probabilities table, the proportions based on the estimated model, the proportions based on most-likely class membership, and the following formulas:
P(A or B) = P(A) + P(B) - P(A and B)
P(B|A) = P(A|B) * P(B) / P(A)
Finally, I calculated the logit table and used the values for step 3 of the 3-step method.
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
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.
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 multiple-group 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.
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?
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 3-step. Not sure if we do 3-step 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 3-step 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 3-step 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 follow-up 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:
(2) I used the 3-step 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 3-step 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 3-step 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 3-step 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 3-step 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 3-step 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 3-step 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 3-step versus, say, the 1-step? 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 3-step 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 7-9, it appears the values for the nominal variable are fixed at the log-odds 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.
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))?
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.
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
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 3-step approach. After identified the 3-class solution for the independent variable (class_neg), I want to use class-membership to explain the variations on the trajectory of the outcome (tzexe1 mzexe1 jzexe1), taking into account measurement error.
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.
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 class-membership. 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?
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).
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;
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 3-step paper, but class formation may change between step 1 and step 3.
Lauren Cole posted on Wednesday, February 18, 2015 - 1:09 pm
I am working on trying to complete a moderation analysis (interaction) within the 3-step manual approach. The association I am examining is self-efficacy 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 3-step method to regress the alcohol misuse classes on self-efficacy 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*self-efficacy 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 self-efficacy and alcohol misuse for 1. depressed and 2. not-depressed 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 self-efficacy for depressed=0 is b1 and the slope for self-eff 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 follow-up question: how do I calculate the 95% confidence intervals for or1? From what I can find, I need to use the variance-covariance matrix to calculate the confidence intervals - if that is correct, how would I get that information out of MPlus using the manual 3-step 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 variance-covariance matrix? If so, how would I get that in MPlus using the manual 3-step method?
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
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.
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).
%c#1% [u1$1-u8$1*-1]; %c#2% [u1$1-u8$1*1]; %c#3% [u1$1-u5$1*1]; [u6$1-u8$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: [.... ]
y1 on b2 ;
%C#1% [Nfirstname.lastname@example.org]; <-----these have been taken from the previous step [Nemail@example.com]; Y1 on b2; Y1;
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?
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.
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 3-STEP 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!
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 3-step 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 class-specific 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 class-specific 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 class-specific 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.
%OVERALL% EXT_4 ON tx_2 age_dic eth sex_abu phy_abu H_und18 H_abo18 TS_D TS_A;
anonymous Z posted on Friday, August 07, 2015 - 11:24 am
Hi Dr. Muthen,
Following my post on Thursday, I did model test. The p-value 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!
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
Thanks for your response.
I have two follow-up 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?
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.
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?
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 (X1-X3), 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?
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?
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 two-step 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??
John Woo posted on Friday, September 11, 2015 - 7:35 pm
Hi, is there any ways to run the automatic 3-step 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 3-step. I did get a result that is very similar to the one I attained by doing the post-hoc 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 probabilities--over 0.9 for all classes). Is what I did okay?
Apologies if this issue has already been addressed on the boards but is it the case that when the 3-step method is used for an LTA analysis there is necessarily going to be a loss of N (relative to a 1-step approach) because of the fact that you are no longer using FIML across multiple time points?
In my original LTA 1-step, my N was 697 and this decreases to 340 when using the three-step 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.
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?
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 3-step model to explore the association between latent class (dependent variable) and covariates. My input file is,
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 ECLS-K 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 ECLS-K 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 one-step approach). I found the Clark and Muthen paper very helpful. I was wondering a couple of things:
1) The new 3-step 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 3-step 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 100-150 complete cases).
I am using LCA 3-setp 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"?
Dennis Li posted on Thursday, August 04, 2016 - 1:25 pm
Hello, I am regressing a 7-class LPA on three continuous latent factors (similar to Ex. 7.19 in the UG). I used the manual 3-step 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 non-identification 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 3-factor model.
Yajing Zhu posted on Monday, August 22, 2016 - 10:01 am
I am wondering how to conduct an external monte carlo simulation for the new 3-step approaches. I noticed that 3-step commands only support internal monte carlo study but not "type=monte carlo". Please advise, thanks!
DavidBoyda posted on Friday, September 09, 2016 - 10:35 am
Dear Dr Muthen,
trying to get my head around this 3-step technique. Might I ask what these commands mean and do from your example Appendix E: Input for step 1 of 3-step 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 (u1-u5) then (u6-u10)? 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?
One or more MODEL statements were ignored. Note that ON statements must appear in the OVERALL class before they can be modified in class-specific models. Some statements are only supported by ALGORITHM=INTEGRATION
I 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?
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.
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 New-3 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 3-step. 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 = b1-b3 (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.
Answer to Ali: In the 1-step 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.
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)?
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 3-step 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!
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 3-step 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!
Xinyi He posted on Sunday, December 18, 2016 - 11:38 am
I have a question about how to realize the moderator analysis with 3-step 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!
Please send your output to Support along with your license number.
Xinyi He posted on Sunday, December 25, 2016 - 3:10 am
I have a question about 3-step 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?
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?
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!
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!
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.
I have returned to a promising RR on a manuscript using LTA and in the course of considering the manual 3-step approach for the unconditional LTA portion I am wondering is it the case that when the manual 3-step 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 1-step 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 x-sectional 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 x-sectional N_....k latent class variable?
In my original LTA 1-step, my N was 697 and this decreases to 340 when using the three-step approach (across six time points). The two approaches yield virtually identical class estimates (and prevalences are virtually unchanged from the separate x-sectional LCAs) so I am not terribly concerned, but I am still puzzled by why precisely my N changes.
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 re-start this thread following some email discussion between me and Haltigan.
If one estimates a multi-wave 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 bias-adjusted three-step approach and
(i) at each wave in turn estimated a cross-sectional LCA using all possible cases, and then (ii) incorporated these modal assignments plus logit constraints into a three-step 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.