Explaining a significant interaction ... PreviousNext
Mplus Discussion > Multilevel Data/Complex Sample >
Message/Author
 Mary Mitchell posted on Monday, May 11, 2009 - 12:38 pm
I ran a multilevel SEM and found a significant interaction between two between-level variables and would like to graph their relationship with my outcome variable. Specifically, I would like to generate a graph that shows the relationship between office referrals (IV - continuous at between-level) and ratings of order & discipline (DV - factor at within-level) separately for younger vs. older teachers (IV - binary at between-level). However, I'm not sure which plot command/option to use. Thank you for your help!
 Linda K. Muthen posted on Tuesday, May 12, 2009 - 9:12 am
The PLOT command does not include a plot for interactions. See short course Topic 3 slides 161-168 for a coverage of latent variable interactions including interpretation. This may help.
 Mary Mitchell posted on Wednesday, May 13, 2009 - 11:57 am
Thanks Linda!

I have another question for you - I found in my SEM output that one of my path estimates was nonsignificant in the unstandardized section of output, but was significant in the standardized output. I found that the p-values were very similar - .06 for the nonstandardized estimate and .04 for the standardized, so I'm not sure if I should report this estimate as being significant or not? If the two sets of estimates are in conflict, which one do you report?
 Linda K. Muthen posted on Friday, May 15, 2009 - 8:08 am
I would go with the raw coefficient although I know of no study that has investigated differences in significance between raw and standardized coefficients. I would also remember that I am doing many tests and be conservative in what I call significant.
 Mary Mitchell posted on Friday, May 15, 2009 - 9:14 am
Thank you Linda! This is very helpful.
 Rebecca Taylor posted on Sunday, June 05, 2011 - 10:21 am
Dear Drs. Muthen,

I ran a multilevel (students in schools) latent covariance model which included latent estimation of both the outcome and one of the predictors at the school level. Additionally, I included interaction terms for a couple of the within level observed variables, and I estimated a few random slopes that I am trying to predict with the latent predictor.

I found significant interactions both within and cross-level, and now I would like to plot the simple slopes. I saw in other discussion posts that Mplus does not currently have this capability. However, I was wondering...
(1) Is it possible to use Preacher's HLM slopes calculator with Mplus estimates? Are the two compatible?
(http://www.people.ku.edu/~preacher/interact/hlm2.htm)

(2) If they are compatible, is it possible to get Mplus to print the asymptotic covariance matrix?

(3)If so, where would I find that in the output?

Thank you in advance!
 Rebecca Taylor posted on Sunday, June 05, 2011 - 10:37 am
A correction to the above: I did NOT end up modeling the predictor as a latent variable in the final model that converged. I used a group aggregated observation to predict the random slopes. However, my questions about plotting the interactions still apply.

My syntax is as follows, if that is helpful.

USEVARIABLES ARE
unit
gender grade RaceThrt lep sped lunch
plan_m centS CGM_S centGPA
ReCGMPop CGMMob CGMLep CGMIep CGMFrl CGMRdi CGMFem
x1x2 x1x3;
MISSING= all (-9999);
WITHIN = gender grade RaceThrt lep sped lunch centGPA centS x1x2 x1x3;
BETWEEN = ReCGMPop CGMMob CGMLep CGMIep CGMFrl CGMRdi CGMFem CGM_S;
Cluster = unit;

ANALYSIS: TYPE IS TWOLEVEL random;

Define: x1x2=gender*centS;
x1x3=gender*RaceThrt;

MODEL:
%WITHIN%
s1 | plan_m ON gender;
s2 | plan_m ON centS;
s3 | plan_m ON RaceThrt;
plan_m ON grade lep sped lunch centGPA;
centGPA centS ON lunch lep sped gender racethrt;
plan_m ON x1x2 x1x3;

%BETWEEN%
s1 s2 s3 plan_m;
plan_m ON ReCGMPop CGMMob CGMLep CGMIep CGMFrl CGMRdi CGMFem CGM_S;
s1 ON CGM_S;
s2 ON CGM_S;
s3 ON CGMRDI;


OUTPUT: TECH1 TECH2 TECH8 MODINDICES;
 Bengt O. Muthen posted on Monday, June 06, 2011 - 7:18 am
(1) I haven't looked at Preacher's calculator but you say that it refers to HLM slopes, which means that you consider random slopes for observed covariates. That is, not using the general Mplus approach of also allowing latent covariates (or observed y variables). It sounds like your Mplus model is of this special kind and therefore the calculator would be applicable.

(2)-(3) You get the asymptotic covariance matrix by requesting TECH3 in the OUTPUT command. You can also save this using the SAVEDATA command.
 Dave posted on Monday, November 07, 2011 - 4:37 pm
I ran a model to examine a three-way interaction between a within and two between-level variables predicting a within-level outcome. I am trying to use Topic 3 slides 164-171 to interpret these findings. Is this appropriate for this type of interaction? If so:

S1 = 0.149 + 0.096*IV1 - 0.074*IV2 - 0.104*IV1*IV2 + 0.276*Control1 + e and
S1 = 0.149 + 0.096*IV1 + (-1)(0.074 + 0.104*IV1)*IV2 + 0.276*Control1 + e

Are these the changes in the slope between the within-level IV and DV depending on IV1 and IV2?

ANALYSIS:
TYPE IS TWOLEVEL RANDOM;
MODEL:
%WITHIN%
s1 | DV on IV;
%BETWEEN%
DV s1 ON IV1 IV2 INT Control1;
DV with s1;

RESULTS
Between Level
S1 ON
IV1 0.096 0.066 1.456
IV2 -0.074 0.054 -1.366
INT -0.104 0.029 -3.572
Control1 0.276 0.174 1.588
DV ON
IV1 0.039 0.044 0.887
IV2 -0.048 0.044 -1.087
INT -0.033 0.031 -1.068
Control1 0.235 0.118 1.999
DV WITH
S1 0.081 0.070 1.164
Intercepts
DV -0.179 0.085 -2.092
S1 0.149 0.102 1.465
 Bengt O. Muthen posted on Monday, November 07, 2011 - 8:40 pm
You should look at the Topic 7 slide 45 where you have a random slope. It results in a product between the within IV x and the between IV w.

In your case you get a product (interaction) of your within IV and your between IV1 and between IV2. So your equation

S1 = 0.149 + 0.096*IV1 + (-1)(0.074 + 0.104*IV1)*IV2 + 0.276*Control1 + e

is not correct because your model doesn't have an interaction bewteen IV1 and IV2.
 Dave posted on Wednesday, November 09, 2011 - 4:05 pm
Thank you for your response to my question and for pointing me towards Topic 7 slide 45. This helped clarify what I am looking for in the model and output. I would like to follow-up on on your response and more details regaring my model might be needed.

Similar to a post under the Multilevel Data/Complex Sample/Cross-level and between-group interac... around 2010/09/10 I would like to model an interaction between IV, IV1 and IV2. IV, IV1 and IV2 are observed variables. The post I saw for a similar model (IV at within level, two latent variables and their interaction at the between level) could be modeled using XWITH by including the interaction in the between level of the model. Given the observed variables, I created an interaction term (INT in my model, IV1*IV2, I did this in the data but could also use the DEFINE statement). I then added the interaction term to the between level of the model. Is this the appropriate way to model an interaction between IV1 and IV2 in the model from my last post? I think this would yield the following based on the output:

S1 = 0.149 + 0.096*IV1 - 0.074*IV2 - 0.104*INT + 0.276*Control1 + e

If so, can I simply replace INT with IV1*IV2 to rearrange the terms? I would appreciate any guidance you can provide in extending Topic 7 slide 45 to the three-way (two-way interaction at the between level) case.
 Bengt O. Muthen posted on Thursday, November 10, 2011 - 7:04 pm
Yes, this is correct.
 Dave posted on Wednesday, July 11, 2012 - 11:10 am
I have a question drawing on the example above (2011/11/07) based on the syntax:

ANALYSIS:
TYPE IS TWOLEVEL RANDOM;
MODEL:
%WITHIN%
s1 | DV on IV;
%BETWEEN%
DV s1 ON IV1 IV2 INT Control1;
DV with s1;

I have noticed that in examples 9.2 and 9.5 in the manual and in the NLES Math Achievement example in the Topic 7 slides, starting about slide 33, that when between level covariates are added they are included in the ON statement for both the random intercept and random slope. I am wondering if it is appropriate to have different variables in these statements like altering the example to:

%BETWEEN%
S1 ON IV1 IV2 INT;
DV ON Control1;
DV with s1;

This works when I estimate a similar model. Are there any concerns regarding this asymmetrical approach? If this is appropriate, is the interpretation that IV1, IV2, and the interaction affect the slope of DV on IV, not the intercept - these are cross level interactions. Control1, alternatively only affects the random intercept - and is not a cross level interaction since it does not alter the slope. Thanks in advance for your input.
 Bengt O. Muthen posted on Wednesday, July 11, 2012 - 8:23 pm
All of that is perfectly ok - the choice depends on your substantive theory.
 Dave posted on Monday, February 11, 2013 - 4:04 pm
I am using a model similar to the one outlined in the post from July 11, 2012. A reviewer has asked that I demonstrate that there is sufficient variance in the slope representing the relationship between IV and DV, specifically that there is significant variance in relationship between IV and DV at level 2 prior to testing level 2 moderators that may explain this variance.

I would appreciate your insight on how I could provide this information. Is it simply the matter of including the BETWEEN residual variances for DV and S1 with IV1 IV2 and INT constrained to zero where the estimate of the residual variances are statistically significant? Thanks in advance for your input.
 Bengt O. Muthen posted on Monday, February 11, 2013 - 5:37 pm
I think you are considering a random slope. As a first step you may just want to estimate the variance of that slope on Between, that is, not including any level-2 covariates predicting the random slope. Perhaps that is what the reviewer refers to.

If this is not what you are asking, let me know.
 Dave posted on Tuesday, March 19, 2013 - 5:10 pm
A delayed thank you for this insight.

I ran the model you suggested - outlined below - and got an estimate for the variance of the slope at the between level. I had missed that when you do not have the covariates at the between level that Mplus returns variances rather than residual variances.

I am reporting the variance estimate and CI in the text of a paper and am wondering if there is a standard greek letter (like beta for regression weights) that I should use for this estimate. The estimate in the Mplus output is in the psi matrix, should I use psi, tau_1 which I have seen used for the variance of a random slope, or something else? Thank you in advance for your input.

Model:
%Within%
s1 | DV on IV;
%Between%
DV;
s1;
DV with s1;
 Bengt O. Muthen posted on Tuesday, March 19, 2013 - 6:25 pm
There doesn't seem to be a common multilevel notational standard. HLM uses tau, MLwiN uses sigma_u I think, and Mplus uses psi because it associates it with factors. Sigma is a typical Greek letter for variances, so a fairly middle-of-the road approach could be to use sigma_b (reserving sigma_w for the within-level residual variance) - thereby not favoring any software...
 Dave posted on Wednesday, June 05, 2013 - 5:56 pm
I have constructed a multilevel three way interaction similar to the one from July 11, 2012. I have used model constraint to calculate the simple slopes and their significance to further understand a significant three way interaction.

I am now wondering if I can use model constraint to test whether two of the slopes are significantly different. The equation I have used in the following code is similar to the one above from November 9, 2011. The code I have used is the following and it has worked (meaning I get an estimate for DD and its significance):
Model Constraint:
NEW(LL LH HL HH DD);
LL = equation...;
LH = equation...;
HL = equation...;
HH = equation...;
DD = HH - LH;

I am wondering if I can interpret DD as the estimate and significance of the difference between the slopes estimated in HH and LH? For clarification, L and H are estimates of the slopes for combinations of + and - 1 SD of the variables in the interaction. Thanks in advance for your assistance.
 Linda K. Muthen posted on Thursday, June 06, 2013 - 10:59 am
Yes, the DD z-tests tests the difference between HH and LH.
 Johnna Capitano posted on Monday, September 23, 2013 - 12:46 pm
I am trying to create an interaction term, MVD, by multiplying two observed variables, DepVig and Ms. When I use the following syntax, I receive an error statement saying that MVD is an unknown variable in an on statement. How do I make it known? I thought that using the define statement was how to make it known. Thank you for your assistance! Johnna

USEVARIABLES ARE
ID Zvig Ms Cs Depvig;
Within are Ms Cs Zvig DepVig;

CLUSTER IS ID;

DEFINE:
MVD = DepVig * Ms;
CVD = DepVig * Cs;


ANALYSIS: TYPE IS TWOLEVEL;
MODEL:
%WITHIN%

Zvig on Ms;
Zvig on Cs;
Zvig on MVD;
Zvig on CVD;
 Linda K. Muthen posted on Monday, September 23, 2013 - 2:16 pm
Put it at the end of the USEVARIABLES list.
 Johnna Capitano posted on Monday, September 23, 2013 - 3:53 pm
Ahhhh - thank you! I've been looking through the manual and prior posts for over an hour. Many thanks. Johnna
 Linda K. Muthen posted on Monday, September 23, 2013 - 5:35 pm
It's stated at the bottom of page 574 and the top of page 575 in the user's guide.
 Dave posted on Wednesday, October 30, 2013 - 4:45 pm
I am interested in testing an interaction between two level 1 variables (x and m) predicting a level 1 (y) variable accounting for clustering in the variables. I would appreciate your insight regarding setting up the code to run the models. As an example, we can think of x as a rating of customer service quality, m as interaction duration, and y as purchase size. These variables are observed for sales people with multiple ratings for each sales person. Assume that I created the interaction (int) term using the define statement such that int = x * m. I am wondering if the following code is how I would set up this model when there is clustering at level 2 for both x and m.
%model%
s1| y on x;
s2| y on m;
s3| y on int;
%between%
y on;
s1 on;
s2 on;
s3 on;

Alternatively, is the following code correct when x has level 2 clustering but m does not? As an example, m could be customer gender, which is random across employees.
%model%
s1| y on x;
y on m;
s3| y on int;
%between%
y on;
s1 on;
s3 on;
 Bengt O. Muthen posted on Wednesday, October 30, 2013 - 8:38 pm
A 2-level structure does not necessitate random slopes; random intercepts can be sufficient to capture the clustering effect. So, saying

y;

on Between can be sufficient.
 Jan posted on Saturday, April 05, 2014 - 1:28 pm
And what would happen to the interpretation if y; from the above example is not mentioned on the between level (y x m & int are clustered given id) and the model is:

cluster = id;
within = y x m int;
%within%
y on x;
y on m;
y on int;

Is this model correct, and interpretable in terms of standard errors, if I use the twolevel option?
 Linda K. Muthen posted on Sunday, April 06, 2014 - 5:51 pm
If you have no between level variable and no model on between,you should use TYPE=COMPLEX.
 Jan posted on Sunday, April 06, 2014 - 11:35 pm
But I need Bayes estimator. So my question is if estimates are interpratable from such a model or to some extent biased?
 Linda K. Muthen posted on Monday, April 07, 2014 - 9:35 am
I would do a TWOLEVEL BASIC and look at the ICC's. If they are high, I would include the random intercept on between.
 Jan posted on Monday, April 07, 2014 - 9:44 am
Thanks for this. These ICC's are low.
 Linda K. Muthen posted on Monday, April 07, 2014 - 4:56 pm
What is your average cluster size and what is the range of your icc's?
 Jan posted on Tuesday, April 08, 2014 - 1:44 am
Average cluster size is 125 and the range = [.000, .000]
 Linda K. Muthen posted on Tuesday, April 08, 2014 - 9:52 am
If the ICC's are zero, you don't need to account for clustering. Just use a single-level model.
 Jan posted on Tuesday, April 08, 2014 - 9:56 am
Brilliant. Thanks very much.
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: