Message/Author 

Jaimee posted on Tuesday, May 27, 2014  4:01 pm



I am trying to figure out how to plot an interaction effect between 2 level 2 variables in a MLM. I am having a bit of trouble as I am getting confused with the syntax. Here is what I have USEVARIABLES clus Y X C D M N O MxN; CLUSTER = clus; WITHIN = C D; BETWEEN = M N O MxN; DEFINE: MxN = M*N; CENTER M (GRANDMEAN); CENTER N (GRANDMEAN); CENTER O (GRANDMEAN); ANALYSIS: TYPE = TWOLEVEL; MODEL: %within% Y on C D; %BETWEEN% Y on M (beta1) N (beta2) O MxN; MODEL CONSTRAINT: PLOT(interaction); LOOP(moderate, 5, 28, 1); Y = beta1+beta2* moderate; PLOT: TYPE = PLOT2; The model constraint and naming of the pathways is where I am confused. I need a plot with Y on the Y axis, N as the moderator and M on the X axis. Any help would be very much appreciated. Thanks very much. 


Take a look at how it is done for UG ex 3.18 as shown on our Mediation page: http://www.statmodel.com/Mediation.shtml Just translate that to your Betweenlevel statements. 


Hi, I have a related question to the above discussion. I am running a twolevel random model with random intercepts and slopes. I wish to plot the cross over interaction but I get an error message: ' Error in parsing line:"LOOP (MOD,1,1,0.1)"' Here is the full syntax: Missing are all (99); BETWEEN = gmx; WITHIN = gmw; CLUSTER = Id; ANALYSIS: TYPE = TWOLEVEL RANDOM; MODEL: %WITHIN% s  sqy ON gmw; %BETWEEN% sqy ON gmx; [s] (a); s ON gmx (b); sqy WITH s; MODEL CONSTRAINT PLOT(crosslv1); LOOP (mod, 1,1,0.1); crosslv1 = a+b*mod; PLOT: TYPE = PLOT2; OUTPUT: TECH8 TECH4 SAMPSTAT; I cannot figure out what am I doing wrong. Thanks a lot in advance! 


You don't show a colon after CONSTRAINT. 


Professor Muthen, thank you so much for the quick response! It was a very sloppy mistake on my side. 

Stefan Kamin posted on Wednesday, October 25, 2017  9:02 am



Dear all, I would like to plot an interaction between X and M within the level 1 equation. The model has one covariate at level 1 (cov1) and another one at level 2 (cov2). In addition, I am interested in the simple slopes at different values of M (0/1). I adapted the example from UG ex 3.18 and would like to know whether my syntax is accurate: %WITHIN% s_x  y on x; s_m  y on m; s_xm  y on xm; s_cov1  y on cov1; %BETWEEN% [y] (b0); [s_x] (b1); [s_m] (b2); [s_xm] (b3); y on cov2; y with s_x s_m s_xm; Model Constraint: PLOT(SS1 SS2); LOOP(x,0,100,0.1); SS1 = b0 + b1*x + b3*0*x + b2*0; SS2 = b0 + b1*x + b3*1*x + b2*1; NEW(SS1 SS2); SS1 = b1+b3*(0); SS2 = b1+b3*(1); Thank you very much! 


The syntax looks correct. 

S REN posted on Friday, February 23, 2018  3:29 am



Hi, could I ask how to create the xm IN mplus 9.2 EXAMPLE. I don't really understand that 'The observed clusterlevel covariate xm takes the value of the mean of x for each cluster'. Does this mean xm = (the group mean of X) * m Or does this mean xm = (groupmean centering X) * m Thank you. 

S REN posted on Friday, February 23, 2018  3:55 am



Hi a followup question is for the example 9.2 in the UserGuide as below is X (as specified as the within level) referring to the raw data of X? Or is X (as specified as the within level) referring to the group mean centered raw data of X? Thanks. VARIABLE: NAMES = y x w xm clus; WITHIN = x; BETWEEN = w xm; CLUSTER = clus; 


First post: xm refers to "the x mean", that is what can be obtained using the Cluster_Mean option. Second post: x is the groupmean centered raw data of the observed x variable. This is what the Center x(groupmean) statement in the Define command accomplishes. 

S REN posted on Saturday, February 24, 2018  9:32 am



Much appreciated@ 


Dear all, I am interested in a model containing an interaction between two L1predictors and one L2predictor. This is the model: within = x w xw; between = z; model: %within% y on x w; s y on xw; %between% y on z; [s]; s on z; y with s; How can I plot the interaction and calculate simple slopes adapting the input from example 9.2b? I would like to calculate slopes for low/ high values of w and z. Thank you. 


Do you mean that you are interested in a 3way interaction between x,w, and z? 


yes, exactly. 


You can just play with the regression equations for your model: y = a_j + b1*x + b2*w + b3_j*w + error a_j = a + g1*z + error b3_j = b + g2*z + error Here a_j is your random intercept which appears as Y on Between and b3_j is your random slope s in the regression of y on the xw interaction. Plugging the last 2 equations into the first, you have y = a + g1*z + b1*x + b2*w + (b + g2*z)*xw + error terms, where the terms involving x can be summarized as [b1 + (b + g2*z)*w]*x. That would be the simple slope that can be evaluated as a function of x for different combinations of values of z and w  but you better check that I did the algebra right. This can be done like the plot of ex 9.2b where you just have a different simple slope formula as given above and you have not only 2 expressions you want to plot but perhaps 4 (low/high z combined with low/high w). 


Dear Prof. Muthen, that is exactly what I was looking for, thank you very much! 

Silvia posted on Tuesday, October 30, 2018  6:12 am



Dear Prof. Muthen, as in the previous post, I need to estimate the simple slopes for a three way interaction between x, w (both level 1) and z (level 2). I would like to know whether my syntax is accurate in labeling the terms for the simple slope formula you suggested ([b1 + (b + g2*z)*w]*x). %WITHIN% Y on X (b1); Y on W C1 C2; s  Y ON XW; %BETWEEN% Y on Z; [s] (b); s on Z (g2); y with s; Thank you 


This looks correct. 


Hello, I am setting up a model that features a 3way interaction between two L1 variables (x, w) and an L2 variable (z). I have two questions about the set up: 1. Should I include all constituent main effects and 2way interaction terms as I typically would, or do I set it up more like the post above, with only the 3way interaction specified? 2. I am using latent decompositon, so cannot clustermean center my L1 variables. Do I need to do any centering to deal with multicollinearity among the L1 vars? Here is my setup currently, with all 2way and main effects: %WITHIN% sw  y on w; sxw  y on xw; sx  y on x; %BETWEEN% [y$1]; [sx]; !main effect x [sw]; !main effect w y ON z; !main effect z [sxw]; !2way xw sx on z; !2way sw on z; !2way sxw on z; !3way Thanks! 


1. If the effects are significant you would want to keep these (as random or nonrandom effects depending on the significance of the mean and variance of the random effects sx sw sxw) 2. If you are not using the new methodology that we just released in 8.3 you should take a look at section 3.3 http://statmodel.com/examples/webnotes/webnote%2023.pdf and examples http://statmodel.com/download/WebNote23.zip From the input you are providing I am not sure you are using latent centering correctly since X*W should have been defined with the XWITH command. If you want to use latent centering you should follow the scripts in Section 3.3. Alternatively and sufficiently good for cluster sizes >50 use observed centering for X and W and then form the interactions. Also see Table 5 & 6 for MLO estimation and the corresponding scripts. 


Hi Tihomir, Thank you for directing us to this new material, it's been very helpful. Reading through the webnote and the examples, it looks as though the recommendation is to no longer use a random slope for Preacher's B1 hypothesis (crosslevel interaction). I've been trying to adapt our own syntax to match the Section 3.3.5 example (B1 hypothesis, Table 10). I’ve started with a simpler 2way crosslevel interaction (rather than jumping into the 3way I mention above) but the model doesn't converge and I’m wondering if I've made an error in setting it up (it has previously converged, using the random slope approach). We use a true factor at the betweenlevel instead of a single indicator latent. Is this the appropriate way to set it up? (no variables are declared as within or between) MODEL: %WITHIN% xw BY x@1; x@.01; s  y ON xw; xz  xw XWITH NEG; y ON xz; %BETWEEN% NEG BY BECKns HAMns SCLINTns; !latent specification y on NEG; ! added for "main effect" of NEG !removed y on x, as it's not of interest x with s@0; NEG with s@0; 


Please send your full output to Support along with your license number. 

Back to top 