Message/Author 


Dear Mplus team, I fit a multilevel SEM with crosslevel interaction effects with Bayesian MCMC estimation method. The model fits just fine. The problem is with plotting the interaction effects, which are of substantive interest. My understanding is that I can't plot the marginal effects (Z*X on Y) within Mplus. I wonder though, whether I might be able to get the output of the posterior distributions for covariance matrix (for X Y and Z) and plot the interaction effects in R or Stata? I would definitely appreciate your insight on this. Thank you, Dmitriy 


You can express how y changes as a function of x, moderated by z (say if z is the level 2 predictor). Why do you want the cov matrix? For confidence intervals? 


Dr. Muthen, thank you for your reply. I did calculate the effects by hand and the reason why I need the covariance matrix is precisely what you've mentionedconfidence intervals. 


I assume that z is a level 2 variable and y and x level 1 variables. You can get the covariance matrix for z and the between part variation of y (and x) and you can get the covariance matrix of the within part of y (and x)  all by doing a fully saturated model. But isn't it easier to express the interaction effect you want in Model Constraint, say New(yest); yest = (gamma0 + gamma1*z)*x; where z moderates the effect of x on y and where, conditioning on z and x, you choose different values of z (say high, middle, low) and vary x over its relevant range. This gives you not only the estimated y but also its SE and can then do a 95% CI. 


This begins to make sensethank you once again for the explanation. Could you please also point me at the more detailed description of the "Model Constraint" procedure you are referring to? I remember using it before to assess the indirect effects, which is somewhat different from what I want to do now. Particularly, it's not clear to me how exactly I manipulate the value of z (betweenlevel predictor) in the Model Constraint statement. I assume I can not just type the value of z I want to use (e.g. mean z) in the statement. 


You can say, as an example, ANALYSIS: TYPE = TWOLEVEL RANDOM; MODEL: %WITHIN% s  y ON x; %BETWEEN% y ON z; [s] (gam0); s ON z (gam1); y WITH s; model constraint: new(ylow yhigh); ylow = (gam0+gam1*(1))*level1; yhigh = (gam0+gam1*1)*level1; where the 1, +1 are the z values (say 1 SD below and above the mean) and "level1" is where you plug in the different x values for which you want the y information. 


This now sounds like a perfect solution. Thank you very much again for the explanation. 

Back to top 