Multilevel random effects meta-analysis PreviousNext
Mplus Discussion > Multilevel Data/Complex Sample >
Message/Author
 Sara Douglass posted on Wednesday, May 23, 2012 - 10:24 am
Hello,

I am working on a multi-level meta analysis. The model we have has a continuous Level 1 outcome, a continuous Level 1 predictor, and a continuous Level 2 predictor. I have been able to easily fit a fixed effects model to the data in MPlus, and would like to now fit a random effects model. However, I am running into serious issues with this model, and in looking more closely at the available examples for such analyses I have noticed that they all only use Level 1 predictors. Indeed, when the Level 2 predictor is excluded, the random effects model runs just fine. I am wondering if it is possible to estimate such a model including a Level 2 predictor, and if you might be able to point me to any references regarding this type of analysis?

Thank you,
Sara Douglass
 Linda K. Muthen posted on Wednesday, May 23, 2012 - 12:19 pm
You cannot use a level 2 predictor on level 1. You may be wanting a cross-level interaction. See Example 9.2 in the user's guide.
 Sara Douglass posted on Wednesday, May 23, 2012 - 12:29 pm
Sorry, let me clarify:

Is it possible to just include a Level 2 predictor, at Level 2, while modeling a random slope at Level 1. For instance:

%WITHIN%
s | x on y;
%BETWEEN%
s;
[sw];
[x@0.0];
x@1.0;
x on z;

Thank you!
 Sara Douglass posted on Wednesday, May 23, 2012 - 12:29 pm
I apologize for the error above - I meant [s]; not [sw];
 Linda K. Muthen posted on Wednesday, May 23, 2012 - 3:56 pm
The variable x must be on the WITHIN list when it is used as part of a random slope. So x cannot appear on between. See Example 9.2.
 Christoph Nohe posted on Tuesday, June 30, 2015 - 12:27 am
Hello
I am working on a 3 level meta-analysis. In my data, the effect sizes (= level 1) are nested under samples (= level 2) which are nested under countries (= level 3). In your handout, I found code for a two-level meta-analysis (on slide 157): https://www.statmodel.com/download/Topic9-v52%20%5BCompatibility%20Mode%5D.pdf

My understanding is that in your code ID is the unique identifier for each level 2 cluster (samples in my case). I would like to apply your approach to 3 level data. In addition, I would like to test a level 3 moderator. As in your code, ID is the unique identifier for each level 2 cluster (= samples). CLUSTER is the unique identifier for each level 3 cluster (= countries):

VARIABLE: Names = Cluster Id y sd A_SB;

USEVARIABLE = y A_SB x;
CLUSTER = Cluster Id;
WITHIN = y x;
BETWEEN = (Cluster) A_SB;
DEFINE: y = y/sd;
x = 1/sd;

ANALYSIS: TYPE = THREELEVEL RANDOM;
ESTIMATOR = ML;

MODEL: %WITHIN%
[y@0.0];
y@1.0;
theta | y ON x;

%BETWEEN Id%
theta;

%BETWEEN Cluster;
theta ON A_SB;

Is this correct? Thank you!
 Bengt O. Muthen posted on Wednesday, July 01, 2015 - 5:17 pm
Looks like it is on the right track.
 Matthias Weiss posted on Wednesday, April 08, 2020 - 12:19 am
Dear Drs. Muthen,

I am working on a 3-level meta-analysis, in which the effect sizes (level 1) are nested in samples (level 2) which are nested in countries (level 3).

In our data, ID is the unique identifier for the level 2 clusters (i.e., samples) and CLUSTER is the unique identifier for the level 3 clusters (i.e, countries). We have observed predictors on level 2 (cond, task) and level 3 (cult) to be tested as moderators. Using the code below worked to get the results.

VARIABLE: Names = CLUSTER ID cond task cult r vi;
USEVARIABLE = cond task cult cor w2;
CLUSTER = CLUSTER ID;
WITHIN = cor w2;
BETWEEN = (CLUSTER) cult;
BETWEEN = (ID) cond task;
DEFINE: w2 = SQRT(vi**(-1)); !Weight for transformation
cor = w2*r; !transformed r

ANALYSIS: TYPE = THREELEVEL RANDOM;
ESTIMATOR = ML;

MODEL: %WITHIN%
[cor@0.0];
cor@1.0;
f | cor ON w2;

%BETWEEN Id%
f ON cond task;

%BETWEEN CLUSTER;
f ON cult;

However, we would also like to test cross-level interaction effects between level 2 and level 3 variables. Is this generally possible and, if yes, how can I implement this in the model?

Many thanks,
Matthias
 Bengt O. Muthen posted on Wednesday, April 08, 2020 - 4:16 pm
Yes, this cross-level interaction is possible. For the Between id level, you can add random slopes s1 and s2

s1 | f on cond;
s2 | f on task;

and then regress s1, s2 on a variable at the Between Cluster level.
 Matthias Weiss posted on Thursday, April 09, 2020 - 2:32 am
Many thanks for your quick response! This works nicely.
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: