Multinomial logistic regression & int... PreviousNext
Mplus Discussion > Categorical Data Modeling >
 M. Bakker posted on Wednesday, October 14, 2009 - 3:13 am
I am wondering if it is possible with MPlus to include an interaction between an unordered categorical (nominal) dependent variable and an independent variable in a multinomial logistic regression model (with several indepent variables)?

And when it is possible... how can I perform this?
 Bengt O. Muthen posted on Wednesday, October 14, 2009 - 10:17 am
I assume you have two nominal DVs in your model - is that correct? It wouldn't make sense to have an interaction between a DV and a covariate for that DV.
 M. Bakker posted on Wednesday, October 14, 2009 - 11:40 pm
In my model there is one dependent nominal variable and several independent variables.
And there is one variable which isn't an independent variable , which is interrelated with the dependent variable, but not with the other independent variables.

So for this particular variable I would like to measure a relationship instead of causality.
But I am not sure how to do this and if it is possible to do this in a multinomial logistic regression.
 Bengt O. Muthen posted on Thursday, October 15, 2009 - 10:22 am
This should be possible, but first tell me what the scale type is of the variable you call "one variable which isn't an independent variable".
 M. Bakker posted on Friday, October 16, 2009 - 12:17 am
it is an ordinal (binary) variable, as are all my other independent variables
 Bengt O. Muthen posted on Friday, October 16, 2009 - 8:09 am
I think you are saying that you have 1 DV that is nominal and is regressed on a set of IVs, and you have a binary variable that you don't want to regress on the IVs but you want it to be related to the nominal DV.

If that is a correct understanding of your situation, then I my answer is that Mplus can handle it but it requires an advanced solution. For example, you would use 2 latent class variables, one set identical to your binary variable and the other set identical your DV, relating them to each other by WITH in parameterization=loglinear, and where only the nominal latent class variable is regressed on the IVs. If you are not an advanced user so that this sounds too complex for you to do on your own, I would not recommend trying it.
 M. Bakker posted on Sunday, October 18, 2009 - 1:27 am
Ok, thank you for your answer. One last question; would it be different (easier) when the variable which I want to be related to the nominal DV is an ordered categorical or even an interval variable? Or does this requires the same advanced solution?
 Bengt O. Muthen posted on Sunday, October 18, 2009 - 12:53 pm
Ordered categorical would be the same. Continuous would be different but not easier. The complicating factor is the nominal DV you have.
 Stig Hebbelstrup Rye Rasmussen posted on Monday, November 25, 2013 - 3:37 am
I have estimated a multinomial logistic regression which includes an interaction term. I would like to illustrate, using the loop function, when there is a significant effect of the interaction effect using relative risks as the value of my moderator changes one standard deviation below and above its mean. All variables are mean centered. I have tried doing the following in model constraint, where "b1" is the centered main effect and "b3" is the interaction term:

model constraint:
PLOT(interaction) ;
Loop(mod, -1,1,0.1) ;

Although the loop plot seems to estimate the correct estimate of the interaction effect the significance levels are not estimated correctly. I guess this is because Mplus estimates them as
interaction=exp(b1)*exp(b3*mod)+/-1.96*standard error instead of interaction=exp(b1+/-1.96*standard error)*exp(b3*mod+/-1.96*standard error). Is there a simple way to get Mplus to calculate the correct standard errors?
 Tihomir Asparouhov posted on Tuesday, November 26, 2013 - 4:05 pm

The standard errors Mplus computes are based on asymptotic theory and generally are good as long as the sample size is sufficient.

To compute the standard error of


Mplus will use the delta method for the expression exp(b1+b3*mod) and so the confidence interval will be

interaction +- 1.96*SE(interaction)

It is a symmetric confidence interval around the point estimate.

Mplus currently doesn't support asymmetric confidence intervals (unless you use bootstrap of Bayes estimators). With the ML all SE are based on asymptotic theory and are symmetric around the point estimate.

An alternative way as you suggest is to construct the confidence interval from the confidence interval of the


Here again the delta method is applied to obtain the SE of the log_interaction and a confidence limit can be constructed

log_interaction +- 1.96*SE(log_interaction)

That confidence limit can then be used to construct a different 95% confidence limit for the interaction term:

Exp(log_interaction-1.96*SE(log_interaction)) to

These two methods while different are asymptotically equivalent. Saying that one of the two methods is better than the other in small sample size would imply that one parametrization is more symptomatically normal than another and while in a particular case this may be correct it is certainly not correct in all cases.

I would suggest that you use the
log_interaction term in model constraints and exponentiate the limits by hand.

Alternatively use Bayes or bootstrap - the two methods I described above are equivalent even in finite sample size with those two methods.
 Stig Hebbelstrup Rye Rasmussen posted on Tuesday, November 26, 2013 - 10:42 pm
Thank you for your very detailed answer! I will try out the suggestion you mention.
 Stig Hebbelstrup Rye Rasmussen posted on Tuesday, November 26, 2013 - 11:13 pm
Just to clarify. The reason why i say the "the significance levels are not estimated correctly" is because i obtain a negative estimate of the lower bound for the estimate, which seems fairly counterintuitive given the fact the function's range is only positive numbers.

I tried out the solution you mention, i.e. exponentiating the limits by hand, which works out quite nicely so i think i will stick with that when presenting the results.

Thanks again for your help.
 Tihomir Asparouhov posted on Wednesday, November 27, 2013 - 1:27 pm

This all sounds correct. The method you suggested (method 2) always avoids negative values. The confidence limits are asymptotic, i.e., if the sample size is larger you would not be getting negative values even with method 1. I would also say that, the fact that you are getting negatives values when using method 1, implies that method 2 is more appropriate for this model / sample size and particular interaction effects you are looking at.
 Jin Qu posted on Saturday, August 13, 2016 - 5:47 pm
I am using A,B and AxB(interaction term) to predict nominal variables Y (1,2,3,4), I obtained model results that the p-value for AxB to predict class 1 vs. class 4 is not significant. Also, the 95% confidence interval includes 0.

However, when I look at the loop plots, when A (the moderator) is 1.4 SD or more smaller than the mean, or 0.4 SD or more larger than the mean, the adjusted effect of B on Y seems to be significant, because in these two regions, the 95% confidence interval does not include 0. Should I consider this interaction significant despite the significance test in the model result suggests otherwise?
 Bengt O. Muthen posted on Saturday, August 13, 2016 - 6:10 pm
I think so. This seems to be a common type of result.
 Nicole Kratky posted on Saturday, May 19, 2018 - 1:23 am
I am not sure if I got the answer to my question from above so I am going to illustrate my case:

I want to analyze a moderation model only with observed variables. My independent as well as the dependent variables are categorical. They are not binary. I want to look at several moderating effects, these variables have different scales.: one is binary, one is categorical and one interval.

Am I right using the multinominal logistic regression? And how is it possible to take the moderation into account?

Thank you for your help!
 Bengt O. Muthen posted on Saturday, May 19, 2018 - 3:45 pm
The best approach depends on whether your DV and your moderator are nominal or ordinal; I can't tell from your message.
 Nicole Kratky posted on Sunday, May 20, 2018 - 8:06 am
They are both nominal. Thanks in advance.
 Bengt O. Muthen posted on Sunday, May 20, 2018 - 6:02 pm
If you are saying that your DV, IV, and moderator are all nominal variables, it seems like your analysis is better handled by the method of loglinear modeling of frequency tables.
 Nicole Kratky posted on Wednesday, May 23, 2018 - 5:35 am
Okay, thank you. Am I right that I can find the syntax for this model in the Mplus User Guide in Example 7.15?

Is it possible to use this model in a hierarchical data set? I have dependent data, using multilevel terms my IV and DV are Level 1 variables and the moderator is a Level 2 variable. Will this work out with the model you suggested? Thanks again.
 Bengt O. Muthen posted on Wednesday, May 23, 2018 - 10:24 am
Yes, ex 7.15 does loglinear modeling.

The multilevel angle makes it not loglinear modeling because on level 2 the IV and DV are continuous latent variables (the random intercepts).

Perhaps the easiest approach is to use Type=Complex where you could do the (single-level) modeling by splitting the IV as well as the moderator into a set of binary dummy variables and their interactions that influence the nominal DV using multinomial logistic regression.
 Salmi Md Zahid posted on Wednesday, May 30, 2018 - 9:28 pm

Is it possible for MPLUS to analyze any mediation&moderation effects between IVs towards ordinal DV (partial proportional odds model)? My IVs are in variety forms; continuous,ordinal&nominal.

Any learning materials you may suggest for me to study to do above analysis if possible?

Thank you.
 Salmi Md Zahid posted on Wednesday, May 30, 2018 - 9:44 pm

Is it possible for MPLUS to analyze moderation & mediation effects for ordinal logistic regression? My IVs consists of variety type of variables; continuous, ordinal & nominal.

If yes, is there any learning materials that i should refer to do it including which chapter in MPLUS user guide I should study.

May i proceed the analysis of moderation&mediation for multilevel ordinal logistic regression too?

Thank you.
 Bengt O. Muthen posted on Friday, June 01, 2018 - 3:11 pm
If the DV is ordinal, I would use formulas for Y*, the continuous latent response variable. That is, the regular formulas for an observed continuous outcome but applied to Y*. You get that in the Model Indirect output.
 Nicole Kratky posted on Tuesday, July 03, 2018 - 3:59 am
I now used the subsequent code for my multilevel moderation analysis:


xz = M*X;

TYPE = Complex;


Y (b0);
Y on X (b1);
Y on M (b2);
Y on xz (b3);


LOW_W = Mean - 1 SD;
MED_W = Mean ;
HIGH_W = Mean + 1 SD;

SIMP_LO = b1 + b3*LOW_W;
SIMP_MED = b1 + b3*MED_W;
SIMP_HI = b1 + b3*HIGH_W;

By adding the "nominal is.." command the analysis is not working. Error says "a nominal variable may not appear on the right-hand side of an ON statement". How can I fix that when I have nominal (dummy coded) dependent variables?

Second question I have is, when I am using a nominal Moderator instead of a continuous Moderator (as in the Code above), did I got you right, that I should split all these variables (X, M and Y) into a set of dummy coded variables to include them simultaneous into the model?

Thank you very much for your help!
 Bengt O. Muthen posted on Tuesday, July 03, 2018 - 2:58 pm
You have to ask yourself what you want to meaning of these relationships to be. For instance, if X is nominal, the statement

Y ON X (b1);

does not make sense because the relationship is not summarized in a single b1 parameter even if Y is continuous (your Y is not). With a nominal predictor X with C categories, you typically break it up into C-1 binary 0/1 variables. With Y nominal, the multinomial regression has several coefficients. You need to study such regression to understand that analysis. Our RMA book covers it.
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