Latent class odds ratios and confiden... PreviousNext
Mplus Discussion > Latent Variable Mixture Modeling >
 Jen Rose posted on Wednesday, March 12, 2014 - 1:34 pm

I have a 3 class latent class analysis model with categorical observed variables, several categorical covariates and a categorical distal outcome.

When I look at the latent class odds ratios results comparing Class 1 to Class 2, I see that for a couple of my categorical observed variables, the odds ratios are not significant based on the p value. I'm interpreting this as meaning that there are no significant differences in the logits between the two classes for these variables. However, when I look at the 95% confidence intervals for the latent class odds ratio results (using CINTERVAL), the confidence intervals do not cross 1.0, which suggests to me that the difference between the 2 classes is significant.

Can you tell me what might be causing the discrepancy between the p values for the latent class odds ratio results and the corresponding confidence intervals?

 Linda K. Muthen posted on Wednesday, March 12, 2014 - 4:35 pm
The z-scores and confidence interval will agree only for the symmetric confidence interval. If this is not the issue, please send your output and license number to
 CB posted on Wednesday, June 03, 2015 - 6:39 pm
Hello Drs. Muthen,

I'm running an LCA with 3 classes and I'm interested in obtaining 95% confidence intervals for the item-response probabilities and latent class probabilities. I have added the CINTERVAL option to the output.

Are these the equations used to estimate the latent class probabilities for a 3-class model?
class 1: EXP(C#1)/(1+EXP(C#1)+EXP(C#2))
class 2: EXP(C#2)/(1+EXP(C#1)+EXP(C#2))
class 3: 1/(1+EXP(C#1)+EXP(C#2))

If so, do I then just plug in the lower estimates for both C#1 and C#2 into each equation to obtain the lower confidence limit? And then plug in the upper estimates for the upper limit?

I have tried this, but I have found that these confidence limits are not symmetric and sometimes do not contain the actual estimate. Thanks in advance for your help!
 Bengt O. Muthen posted on Wednesday, June 03, 2015 - 7:19 pm
Q1. Yes.

Q2. I don't think that approach works when there isn't a 1-1 relation between the logit and probability. Try bootstrapping to capture any non-symmetry in the probability estimate distribution. Or, Bayes.
 CB posted on Thursday, June 04, 2015 - 12:22 pm
Thank you for your quick response!

Based on your suggestion, I performed bootstrapping to obtain confidence intervals by adding cinterval(bootstrap) and setting the number of bootstrap iterations to perform. Here is some of my output.

Estimate, Std. Error, Lower 2.5%, Upper 2.5%
C#1: 0.587, 0.449, -0.293, 1.467
C#2: -3.503, 0.488, -4.459, -2.547

Even with these bootstrapped results, I still run into the problem of not being able to apply an equation to somehow exponentiate the upper and lower limits. Is there another equation I can use to exponentiate this output and obtain reportable confidence intervals?

Alternatively, is there another way to obtain confidence intervals for latent class probabilities for a 3-class LCA? Thanks again for your help!
 Bengt O. Muthen posted on Friday, June 05, 2015 - 3:13 pm
You want to consider your probability expressions like

Prob = EXP(C#1)/(1+EXP(C#1)+EXP(C#2))

When you ask for Cinterval(bcbootstrap) you get a 95% CI for Prob. That's what you want to use. It is a non-symmetric CI.
 CB posted on Friday, June 05, 2015 - 6:45 pm
Thanks! In the output, I do get the confidence intervals in probability scale for categorical variables. However, I donít get confidence intervals in the probability scale for the latent class probabilities because I have 3 latent classes - I only get confidence intervals of model results for the latent class probabilities. How can I these model results to obtain the confidence intervals in the probability scale for the latent class probabilities?
 Bengt O. Muthen posted on Friday, June 05, 2015 - 10:01 pm
But when you put

Prob = EXP(C#1)/(1+EXP(C#1)+EXP(C#2))

in Model Constraint you would get the bcbootstrap cintervalas.
 CB posted on Monday, June 08, 2015 - 3:12 pm
I apologize for all of the follow-up questions - I'm still relatively new to Mplus.

This is the code I added to obtain the bcbootstrap cintervals:


PROB = EXP(C#2) / (1 + EXP(C#1) + EXP(C#2));

However, there are 3 errors and no indication of what is incorrect. The indicated errors immediately follow the second parentheses for each term - EXP(C#2) just before the division sign, EXP(C#1) just before the addition sign, and EXP(C#2) just before the second parentheses - in the formula.

How do I fix this error and is the code correct? Additionally, the output for the PROB estimate and its upper and lower limits is the same single estimate. I assume this is because of the error in the formula? If this error is fixed, would I obtain bcbootstrap cintervals?

Finally, C#1 and C#2 are the latent classes, so I haven't defined them in the input - do I need to somehow define them in order to obtain the cintervals? If so, how do I code that? Thanks again!!
 Linda K. Muthen posted on Monday, June 08, 2015 - 3:28 pm
Please send the output and your license number to
 CB posted on Monday, June 08, 2015 - 4:04 pm
Unfortunately, my license number was purchased more than a year ago.

Do you have any thoughts as to why I'm getting this error and/or how I can fix it? Or any resources that could help with this matter?
 Linda K. Muthen posted on Monday, June 08, 2015 - 4:11 pm
Read MODEL CONSTRAINT in the user's guide to see how to label the parameters you want to refer to in MODEL CONSTRAINT. you can use latent class labels in this way.
Back to top
Add Your Message Here
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Options: Enable HTML code in message
Automatically activate URLs in message