Cross-level interaction in multilevel...
Message/Author
 TD posted on Monday, November 19, 2007 - 7:32 am
Hello -

Forgive me if this question is too general. I have used HLM to determine the siginificance of a cross-level interaction in a multilevel model. However, I would like to compare the fit of the overall path model, to a second nested model. I have decided to use SEM and Mplus to do this. Yet, it is not clear to me if I can generate a cross-level interaction with a multilevel SEM. I haven't seen this in the literature either. The models and literature by both Muthens has been very helpful, but I hadn't seen anything about this possibility. You are innovators with regard to multilevel SEMs, so I am sure you can offer some information.
 Linda K. Muthen posted on Monday, November 19, 2007 - 8:35 am
A cross-level interaction, or a between-level (level 2) variable moderating a within level (level 1) relationship, as shown below as the random slope in y regressed on x:

yij = beta0 + beta1j xij + rij

beta1j = gamma10 + gamma11 wj + u1j

gives the interaction, a product of xij and wj if you insert the beta1j equation in the yij equation.

is specified in Mplus as:

MODEL:
%WITHIN%;
beta1 | y ON x;
%BETWEEN%;
beta1 ON w; ! estimates gamma11

The variable y can be observed or latent that is a factor measured by multiple indicators.
 TD posted on Monday, November 19, 2007 - 9:31 am
Thank you so much!
 Verena Hahn posted on Tuesday, August 07, 2012 - 6:45 am
Hi,

I would like to estimate a cross-level interaction in which the slope is not randomly varying:

yij = beta0 + beta1j xij + rij

beta0j = gamma00 + gamma01 wj

beta1j = gamma10 + gamma11 wj

How can I specify this in Mplus?

I thought the following might work. Is this right?

MODEL:
%WITHIN%;
beta1 | y ON x;
%BETWEEN%;
y on w;
beta1 ON w;
beta1 @0;

Thanks!
 Linda K. Muthen posted on Tuesday, August 07, 2012 - 7:57 am
That looks correct.
 Garett Howardson posted on Thursday, September 26, 2013 - 10:40 am
I just wanted to confirm that the Verena Hahn's post on Tuesday, August 7th, 2012 is still what you would suggest. I have a multilevel model where repeated measures are taken at two time points within persons. I'm only interested in the fixed effect of the within person slope but to also allow a random intercept. I also expect that the fixed slope will be moderated by a level 2 variable. In other words, I'm only interested in examining whether the average within person effect changes as a function of a level 2 variable. As such, I'm interested in a cross-level interaction where the level 1 slope is not randomly varying. Would you still recommend implementing this in Mplus as:

MODEL:
%WITHIN%;
beta1 | y ON x;
%BETWEEN%;
y on w;
beta1 ON w;
beta1 @0;
 Bengt O. Muthen posted on Thursday, September 26, 2013 - 3:46 pm
That seems like a correct setup. I wouldn't say that the slope isn't varying because it does vary as a function of w. I also don't see the need for fixing the residual variance at zero for the slope on between - that says w totally determines the variation in the slope.
 Garett Howardson posted on Friday, September 27, 2013 - 4:38 am
Thank you Dr. Muthen. I see what mean about the slope varying across w. If I omit the residual constraint (i.e., beta1 @0) won't that estimate the random effect for the level 1 slope? I was under the impression that with only two level 1 observations a model with both a random intercept and slope would be underidentified and that the residual constraint is necessary for model identification.

Thank you.
 Bengt O. Muthen posted on Friday, September 27, 2013 - 8:24 am
Try freeing this residual variance and see if Mplus tells you about any problems.
 Praneet Randhawa posted on Monday, October 21, 2013 - 8:25 am
Good morning:

I have a quick question. When we are testing cross-level interactions, do we test the main effects between the two level 1 variables in the hypothesized interactive model?

For example:
Within
s1 | Y ON X;
YW ON X;

Between
s1 WITH YB;
YB s1 ON Z1 Z2;

In the above model, the effect of YW ON X is negative and non-significant. Whereas in the main effects model, the effect was positive and significant. I saw some papers report similar effects but argued that lower level effects should not be interpreted in the presence of higher level effects. Is that the way to go? And what the reasoning behind such an effect?
Thank you.
 Linda K. Muthen posted on Monday, October 21, 2013 - 4:59 pm
In a model like the following,

y ON x1 x2 x1x2,

if the interaction is significant, you do not interpret the main effects. That is because they do not behave the same for everyone. There is an interaction.

I don't understand your model above in the context of your question.
 Aurelie Lange posted on Monday, January 05, 2015 - 4:26 am
Dear Dr Muthen and Muthen,

I have specified a cross-level interaction as follows:
%within%
S | x on y;
%between%
S on w;

In my output, I get the estimates for ’s on w’, but not for ‘x on y’. I was wondering why this is.

Aurelie
 Linda K. Muthen posted on Monday, January 05, 2015 - 5:36 am
x ON y has a random slope not a fixed slope like s ON w. You will get an intercept and residual variance for the random slope in the between results.
 Aurelie Lange posted on Monday, January 05, 2015 - 6:21 am
Of course! That makes sense. Thank you so much for your clarification.
 dummyvariable123 posted on Sunday, January 21, 2018 - 6:25 am
Dear Dr Muthen,

I'm testing a cross-level interaction in a three-level longitudinal model (time-persons-classes).
L3 (time-invariant) predictor "Z_grandmean" moderates the random effect of L2 (time-invariant) predictor "X_grandmean" on L1 outcome "Y".

1. Is this code correct?:

cluster = class id;
between = (id)X_grandmean (class) Z_grandmean;
within = wave Qwave X_personcenter;
MODEL:
%within%
Y;
S1 | Y ON wave;
Y ON Qwave;
Y ON X_personcenter;
%between id%
Y;
S1;
Y WITH S1;
S2 | S1 ON X_grandmean;
%between class%
Y;
s1;
s2;
Y WITH s1;
Y WITH s2;
s2 ON Z_grandmean;

2. When I'm running this code I get an error message: "One or more between-level variables have variation within a cluster for one or more CLASS clusters. Check your data and format statement. Between Cluster IDs with variation in this variable: Z_grandmean 34 19 31 36 16 6 14"
Z_grandmean is grand-mean centered at L3 and X_grandmean is grand-mean centered at L2.
 Bengt O. Muthen posted on Sunday, January 21, 2018 - 5:23 pm
The code seems ok. The problem lies in the data as suggested by the error message - check the data.
 dummyvariable123 posted on Monday, January 22, 2018 - 12:59 am
Thank you for taking a look at the code.
Just to make sure: shouldn't I also include:

at the %between class% level
S1 ON Z_grandmean
Y ON Z_grandmean

and

at the %between id% level
Y ON X_grandmean?
 Bengt O. Muthen posted on Monday, January 22, 2018 - 5:10 pm
Yes, that would be better.