Regions of Significance - Interaction PreviousNext
Mplus Discussion > Structural Equation Modeling >
Message/Author
 Jolien Van der Graaff posted on Wednesday, August 07, 2013 - 11:13 pm
I would like to know whether it's possible in MPlus to determine for a significant interaction for which regions in the range of the moderator variable, the effects of the focal predictor on the outcome variable are statistically significant, according to the Johnson-Neyman technique (Hayes & Matthes, 2009; Bauer & Curran, 2009). I found some examples of MPlus input to plot simple slopes, but in those cases you choose the values yourself (often 1 sd below and above the mean) whereas I would like to identify for which values of the moderator variable the effects of the predictor on the outcome are significant. Do you have an example of an MPlus input to do this?
Many thanks in advance for your response! Jolien
 Linda K. Muthen posted on Thursday, August 08, 2013 - 8:04 am
I think Example 3.18 will give you what you want.
 db40 posted on Tuesday, July 29, 2014 - 4:04 am
Dear Linda,

so if I wish examine the regions of significance in an interaction term using observed variables. I looked at example 3.18.

Does this appear correct. The moderators (DV1 DV2)have 4 levels each.

*SNIP*
DEFINE:
dv1PL = dv1*PL;
dv2PL = dv2*PL;

ANALYSIS:
ESTIMATOR = BAYES;
PROCESSORS = 4;
BITERATIONS = (20000);

MODEL:
y1 ON PL (b)
dv1
dv2
dv1PL
dv2PL(gamma1);


MODEL CONSTRAINT:
LOOP(mod,-2,2,0.1);
PLOT(indirect);
indirect = b*(gamma1*mod);
PLOT: TYPE = PLOT2;

OUTPUT:
TECH8;
sampstat ;
STANDARDIZED;
CINTERVAL ;
 Bengt O. Muthen posted on Tuesday, July 29, 2014 - 4:27 pm
This is not following UG ex 3.18 which has 3 slopes: b, gamma1, gamma2. Also, you say that the moderators have 4 levels each; note that your input is treating them as continuous, not categorical.
 aprile benner posted on Monday, March 21, 2016 - 6:25 am
I know it is designed to plot results from moderated mediation, but can the LOOP plot be used to plot simple slopes from an interaction (y on x m xm)?
 Bengt O. Muthen posted on Monday, March 21, 2016 - 6:49 am
Yes, see the first part of our mediation page for UG ex 3.18:

http://www.statmodel.com/Mediation.shtml
 aprile benner posted on Tuesday, March 22, 2016 - 9:39 am
great - i've been able to adapt that code without a problem. i have a quick follow up question. When generating the plots, is mplus assuming a value of zero for the included covariates? I plotted the interaction by hand (using the mean of each covariate), and the shape of the plots is identical to the plots generated by Mplus, but the values of Y are shifted. Thanks!
 Bengt O. Muthen posted on Tuesday, March 22, 2016 - 9:49 am
No. But you determine which moderator range you consider by LOOP in the below:

MODEL: y ON m (b)
z;
m ON x (gamma1)
xz (gamma2)
z;
MODEL CONSTRAINT:
LOOP(mod,-2,2,0.1);
PLOT(indirect);
indirect = b*(gamma1+gamma2*mod);

But perhaps you are not talking about regression but mediation in which case indirect and direct effects are computed for covariate (control) variables values of zero (so you want to center them).
 aprile benner posted on Tuesday, March 22, 2016 - 10:19 am
I have a regression model with a predictor (paredmarg), moderator (schpress), interaction (int), and two covariates (female, w1grade). I'm curious how (or if) the generated plots take into account the value of the covariates. Here is the syntax i'm using (adapted from 3.18):

MODEL:
!main model;
lonely2 on paredmarg (b1)
schpress (b2)
int (b3)
female w1grade;

[lonely2] (b0) ;

Model Constraint:

NEW (low_z high_z modlow modhigh) ;
low_z = -.55 ; !1SD below mean ;
high_z = .55 ; !1SD above mean ;
modlow = b1 + b3*low_z ;
modhigh = b1 + b3*high_z ;

! Generating plot ;

PLOT (low_mod high_mod) ;
LOOP (xvalue, -15, 15, 1) ;
low_mod = (b0 + b2*low_z) + (b1 + b3*low_z)*xvalue ;
high_mod = (b0 + b2*high_z) + (b1+b3*high_z)*xvalue ;

PLOT:
TYPE = plot2 ;
 Bengt O. Muthen posted on Tuesday, March 22, 2016 - 1:15 pm
In your statements

low_mod = (b0 + b2*low_z) + (b1 + b3*low_z)*xvalue ;
high_mod = (b0 + b2*high_z) + (b1+b3*high_z)*xvalue ;

it looks like you are computing predicted values for the lonely2 outcome. Because you don't include values for the female and w1grade covariates in those expressions, you are computing the predicted outcome at zero for those two covariates.
 Carillon J Skrzynski posted on Thursday, August 11, 2016 - 5:02 pm
Hello,

I’m trying to determine what is significant within an interaction I have tested for—I was looking into using the Johnson-Neyman technique and found online that one could use the LOOP plot function to do this like such:

MODEL CONSTRAINT:
LOOP (Moderator, -3, 3, 0.1);
PLOT(IV_DV); IV_DV= b1 + b3*Moderator;

where b1 and b3 refer to the regression of the DV on the IV and the regression of the DV on the product term IVxModerator [using the xwith command], respectively.

Is this correct to do/can this still be used if my DV has a negative binomial distribution (which I’ve labeled a count variable in MPlus)? I assume so, and that the interpretation would be that the IV was significantly predictive of the DV on the log scale within the moderator range where the plot (from upper to lower CI) didn’t fall on the x-axis, but confirmation would be great.

That said, perhaps it’s not necessary to specify that the DV is in the log scale since even if you exponentiated the values along the y-axis the moderator values shouldn’t change, right? (Would it be the same case regardless?)

Thank you so much,
Cari
 Bengt O. Muthen posted on Thursday, August 11, 2016 - 5:21 pm
You are right and this is on the log scale. If you exponentiate you might want to use bootstrap to get non-symmetric CIs.
 Carillon J Skrzynski posted on Wednesday, August 17, 2016 - 10:28 pm
Thank you so much! Just a quick follow-up question: with exponentiating, the interpretation doesn't change except that the DV is now the rate mean (or average of whatever the DV is), correct?
 Bengt O. Muthen posted on Thursday, August 18, 2016 - 10:35 am
right.
 Nicholas Bishop posted on Wednesday, November 15, 2017 - 12:02 pm
Hello,
I'm piggy-backing off of aprile and Carillon's posts here...

I'm using the PLOT and LOOP functions to probe a continuous (x1) by categorical (x2) interaction (x1x2) with a count DV (count is y). Are there adjustments necessary to the model constrain or PLOT/LOOP commands to adjust the plots for the count distribution of the outcome? Below are the relevant commands.

Thank you for your guidance.

model:

y ON
x1 (b1)
x2 (b2)
x1x2 (b3);

[y] (b0);


Model Constraint:

NEW (low_z high_z modlow modhigh) ;
low_z = -1.48764039 ; !1SD below mean ;
high_z = 1.48764039 ; !1SD above mean ;
modlow = b1 + b3*low_z ;
modhigh = b1 + b3*high_z ;

! Generating plot ;

PLOT (low_mod high_mod) ;
LOOP (xvalue, -3, 6, .01) ;
low_mod = (b0 + b2*low_z) + (b1 + b3*low_z)*xvalue ;
high_mod = (b0 + b2*high_z) + (b1+b3*high_z)*xvalue ;

PLOT:
TYPE = plot2 ;
 Bengt O. Muthen posted on Wednesday, November 15, 2017 - 1:08 pm
The usual formulas are correct for the lograte (which is what is modeled) of the count outcome.
 Nicholas Bishop posted on Thursday, November 16, 2017 - 8:19 am
Thank you. Are various methods of probing interactions described in detail in the Regression And Mediation Analysis Using Mplus book?
 Bengt O. Muthen posted on Thursday, November 16, 2017 - 3:43 pm
I think so - both in Chapter 1 and Chapter 2. The book doesn't cover multilevel versions, however.
 Lisha Dai posted on Sunday, July 07, 2019 - 7:56 am
Dear Professors,I'm running a two-level moderation model (B2 proposed in Preacher er al. 2016) using Bayes according to the Mplus Web Notes 23 (2019). Now I want to plot simple slopes for this interaction and read ex 3.18 for reference. But the result is wrong cause the interaction are not significant in data but significant in plot.

MODEL:
%WITHIN%
x*.7; y*.7;
y ON x*.2;
%BETWEEN%
xb BY x@1; xb*.7; x@.01;
z*.7;
y ;
xzb | xb XWITH z;
xb WITH z*.1;
y ON xb (a);
y on z*.2;
y on xzb (b);
[x@0 z*0 y xb*0];

model constraint:
plot(HA);
loop(CQ,0,60,1);
HA=a+b*CQ;
plot: type is plot2;
 Bengt O. Muthen posted on Sunday, July 14, 2019 - 11:34 am
You have

y = a*xb + c*z + b*xb*z

= (a + b*z)*xb + c*z

Even if b is insignificant, (a + b*z) can be significant.
Back to top
Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action: