Mediation in Multiple Group Analysis
Message/Author
 Susan Seibold-Simpson posted on Tuesday, October 07, 2008 - 8:28 am
I have conducted mediation analysis with INDIRECT using bootstrapping and I am interested in whether the significant mediation holds in the sub-groups. Can I use INDIRECT in multiple group analysis? I have done the multiple group testing up to the structural level per the UG recommendations. Thanks, Sue
 Linda K. Muthen posted on Tuesday, October 07, 2008 - 10:23 am
MODEL INDIRECT can be used with multiple group analysis.
 Susan Seibold-Simpson posted on Tuesday, October 07, 2008 - 5:07 pm
Thanks Linda. I expect I may be e-mailing back, but as always I appreciate the rapid response. Sue
 Annie Desrosiers posted on Thursday, September 29, 2011 - 8:06 am
Dear Dr. Muthèn:

We are testing mediation models and we would like to see if there are sex differences on the IND pathway (multi-group analyses).

When searching on the Mplus forum discussion, we found this solution:

'If you have the estimate of the mediated effect and its SE for each of
the 2 groups, you can simply use those numbers to create the
approximately normal test variable:

(e1 - e2)/(se(e1-e2)),

where the denominator is sqrt(var(e1-e2)), where var(e1-e2) is var(e1)
+ var (e2), where var(e) is the square of the SE(e).'

Our questions are:
(1) Is there another way to conclude about differences between groups on the mediated effect (i.e., Mplus command)?
(2) If the formula above is the only way to conclude about differences between groups, is there a reference we could use?

Thanks a lot and have a nice day,
 Linda K. Muthen posted on Thursday, September 29, 2011 - 9:13 am
You can use MODEL TEST to compute a Wald test or you can do difference testing of the model where the parameter of interest in free across groups compared to a model where the parameter is held equal across groups. Difference testing is discussed on pages 434-435 of the Version 6 Mplus User's Guide.
 Annie Desrosiers posted on Thursday, September 29, 2011 - 9:45 am

Is it possible to fix:
alc89pr1 IND cr567pao know134;

to be equal across groups?

For example:

Model girls:
alc89pr1 IND cr567pao know134 (1);

Model boys:
alc89pr1 IND cr567pao know134 (1);
 Linda K. Muthen posted on Thursday, September 29, 2011 - 9:53 am
No, only parameters in the MODEL command. You could create the indirect effects in MODEL CONSTRAINT and use MODEL TEST to test their difference.
 Annie Desrosiers posted on Thursday, September 29, 2011 - 10:51 am
Thanks again,

We tried with this syntax:

USEVARIABLES ARE know134 osex567 alc1yn alc89pr1 ant1r struc1yn alc5r;
grouping are sexe (1=fille 2=gars);
MISSING = all (999);

!ANALYSIS: BOOTSTRAP = 5000;

MODEL:
alc89pr1 ON know134;
alc89pr1 ON osex567;
alc89pr1 ON alc5r;
osex567 ON know134;
know134 ON ant1r alc1yn struc1yn;

MODEL INDIRECT:
alc89pr1 IND osex567 know134;

model fille:
alc89pr1 ON know134 (c1);
alc89pr1 ON osex567 (b1);
osex567 ON know134 (a1);

model gars:
alc89pr1 ON know134 (c2);
alc89pr1 ON osex567 (b2);
osex567 ON know134 (a2);

MODEL constraint:
new(f g);
f=a1*b1;
g=a2*b2;

MODEL TEST:
f=g;

OUTPUT:
cinterval sampstat stand tech4;

Does it make sense? We were not able to specify bootstrapping with Model test.
 Linda K. Muthen posted on Thursday, September 29, 2011 - 1:28 pm
This looks correct. If you want to use bootstrapping, you can run the model twice and do difference testing. You would run it once with the MODEL CONSTRAINT you show and then with

MODEL constraint:
new(f g);
f=a1*b1;
g=a2*b2;
0 = f - g;
 sune Bo hansen posted on Friday, November 18, 2011 - 4:31 am
I have a question regarding an error I get when i try to run the following model:
INPUT INSTRUCTIONS

data:
File is P.csv;
variable:
Names are P I M;
Usevariables are P I M;
Categorical are I M;
Analysis:
Type=general;
bootstrap=5000;
Model:
I ON M P;
M ON P;
Model indirect:
I IND P;

*** ERROR
The length of the data field exceeds the 40-character limit for free-formatted
data. Error at record #: 1, field #: 1
*** ERROR
The number of observations is 0. Check your data and format statement.
Data file: P.csv

Can anyone help me with that??
 Linda K. Muthen posted on Friday, November 18, 2011 - 1:36 pm
 sune Bo hansen posted on Sunday, November 20, 2011 - 5:41 am
Dear Linda, thanks a lot for your fast response, I figured it out and Mplus is now working like a dream ;-)

Please, can you advice me how to report the results below (A mediation-analysis with one dichotomous variable) And I need to report confidence intervals for the bootstrap analysis. I am a bit in a doubt how to report it. I haves search APA, but without luck. Can you help me???

CONFIDENCE INTERVALS OF TOTAL, TOTAL INDIRECT, SPECIFIC INDIRECT, AND DIRECT EFFECTS

Lower .5% Lower 2.5% Lower 5% Estimate Upper 5% Upper 2.5% Upper .5%

Effects from PCL to IPAS via MAS

Sum of indirect -0.192 -0.151 -0.136 -0.082 -0.034 -0.024 0.000

Specific indirect
IPAS
MAS
PCL -0.192 -0.151 -0.136 -0.082 -0.034 -0.024 0.000

Thanks again
Very best,
Sune
 Bengt O. Muthen posted on Sunday, November 20, 2011 - 7:58 pm
You report the estimate and the 95% confidence interval which is the value for the Lower 2.5% and the Upper 2.5%.

If PCL is the dichotomous variable you mention, you might also want to report the corresponding STDY values, so not stand'ng wrt to the binary x (PCL).
 sune Bo hansen posted on Monday, November 21, 2011 - 3:29 am
Thanks a lot, so to get it clear (sorry, but I am new in the realm of mediation-analysis ;-)

My mediator is the MAS-variable (dichotomous), so I report the point estimate -0.082 and 95% CI [-0.151, -0.024], right (see above).
And then the S.E. Est./S.E. as well for the MAS variable?
and that will be it?

 Bengt O. Muthen posted on Monday, November 21, 2011 - 7:49 am
To report mediation results you want to also report the slope of MAS on PCL and the slopes of IPAS on MAS and PCL.

With a binary mediator, you may want to use the WLSMV estimator.

To learn about mediation, you may want to get the 2008 MacKinnon book.

And if you want to get serious about binary mediators, you should read my paper at

 sune Bo hansen posted on Tuesday, December 06, 2011 - 3:37 am
Dear Bengt,

I am wondering whether it is possible to do mediation analysis in Mplus with a categorical variable consisting of 4 subcategories? I have done it with a dichotomous variable, but would be very excited if it is possible with a 4-category mediator variable as well????

Thanks a lot,

Best Sune
 Linda K. Muthen posted on Tuesday, December 06, 2011 - 9:19 am
In the past we would have said an unordered categorical variable could not be a mediator. See the following paper on the website where a new method is shown:

Muthén, B. (2011). Applications of causally defined direct and indirect effects in mediation analysis using SEM in Mplus. Submitted for publication.
 sune Bo hansen posted on Wednesday, December 07, 2011 - 3:25 am
Dear Linda,
Thanks a lot, it sure looks very interesting and promising for future research possibilities...

I have looked into the article and the appendix as well, and I can see that there is syntax for a 3-categorical mediator, but can you in anyway help me with a syntax, if my mediator consist of 4 categories?
I would be very grateful since I have some very interesting psychological data where it would be superb with this opportunity.

Thanks a lot,
Best Sune
 Linda K. Muthen posted on Wednesday, December 07, 2011 - 11:41 am
 sune Bo hansen posted on Thursday, December 08, 2011 - 1:51 am
Dear Linda, thanks a lot I have mailed support@statmodel.com, with my questions and license number...
Have a great day,

Best Sune
 Luna Munoz Centifanti posted on Tuesday, January 17, 2012 - 5:09 am
I'm using all observed variables in a path analysis with multiple groups (2 groups). I have the following in the model:
m1 m2 on x;
y1 y2 on m1 m2 x;

model indirect:
y1 ind x;
y2 ind x;

model lowses:
y1 on x (a1);
m1 on x (b1);
y1 on m1 (c1);
y1 on x (a3);
m2 on x (b3);
y1 on m2 (c3);

model highses:
y1 on x (a2);
m1 on x (b2);
y1 on m1 (c2);
y1 on x (a4);
m2 on x (b4);
y1 on m2 (c4);

model constraint:
new (f g);
f=(b1*c1)+(b3*c3);
g=(b2*c2)+(b4*c4);
model test:
0=f-g;

However, y1 and m1 are based on similar measures (across time) and y2 and m2 are based on similar measures (across time). Should I run 2 models (one for y1 and m1 and one for y2 and m2) or keep the analysis as one (as above)? If I run it as above, I need to run one model constraint for predicting the indirect effects for y1 across the 2 groups and another for predicting the indirect effects for y2, right? Thanks!
 Linda K. Muthen posted on Tuesday, January 17, 2012 - 2:06 pm
I would think using one model as you show would be fine.

Yes, you would need specify both indirect effects in MODEL CONSTRAINT.
 Luna Munoz Centifanti posted on Friday, January 20, 2012 - 8:55 am
Thanks so much for your response! These boards as well as the manual help so much.

I was trying to re-run my model using Bootstrapping and CINTERVAL in the output. I know you said that MODEL TEST cannot be used and so 0 = f - g needs to be brought into the MODEL CONSTRAINT field. However, when I do this, I get an error of convergence: NO CONVERGENCE. SERIOUS PROBLEMS IN ITERATIONS. ESTIMATED COVARIANCE MATRIX NON-INVERTIBLE. CHECK YOUR STARTING VALUES. Do you have any advice?
 Linda K. Muthen posted on Friday, January 20, 2012 - 2:11 pm
 davide morselli posted on Tuesday, February 14, 2012 - 4:31 am
Hi,
I was wondering if it is computionally right to test with MODEL INDIRECT a model in which a latent dimension has an effect on a DV via a second latent dimension of which the DV is one of the observed variable. From a tehoretical perspective it make sense, but I am not sure if I cant translate it into SEM, that is:

f1 BY x1 x2 x3;
f2 BY z1 z2 dv1;

f2 on f1 (7);
dv1 on f1 (8);

MODEL INDIRECT:
dv1 on f2 f1;

In addition I wanted to test with a multi-group approche whether the mediation model holds in different group. Thus I constrained the relation between variables to be equal across groups.

Thank you!
 Linda K. Muthen posted on Wednesday, February 15, 2012 - 10:13 am
Yes, this is correct. Your MODEL and MODEL INDIRECT commands are not correct according to MODEL INDIRECT. It should be:

MODEL:

f1 BY x1 x2 x3;
f2 BY z1 z2 dv1;

f1 on f2 (7);
dv1 on f1 (8);

MODEL INDIRECT:
dv1 IND f2 f1;
 Yaacov Petscher posted on Monday, April 02, 2012 - 12:04 pm
Greetings - I'm curious as to whether a solution was discovered for the problem reported here Friday, January 20, 2012 - 8:55 am. I have a model of multiple group mediation, and when the testing statement is brought into the model constraint statement, I get the NO CONVERGENCE. SERIOUS PROBLEMS IN ITERATIONS. ESTIMATED COVARIANCE MATRIX NON-INVERTIBLE.CHECK YOUR STARTING VALUES. error messages.
 Linda K. Muthen posted on Monday, April 02, 2012 - 1:16 pm
This message can mean different things. We would need to see your output and license number at support@statmodel.com to say more.
 Yan Liu posted on Thursday, August 28, 2014 - 8:30 pm
Dear Dr. Muthen,

I am trying multilevel multigroup mediational analysis and got an error message.

The labels %BETWEEN% or %WITHIN% must be specified.

Is the code wrong?

USEVARIABLES ARE group x m y1 y2 tchid;
GROUPING = group (0=g1 1=g2);
CLUSTER = tchid;
ANALYSIS: TYPE = TWOLEVEL RANDOM;
MODEL:
%WITHIN%
m ON x;
y1 ON x m;
y2 ON x m;

MODEL g1:
m ON x (aw1);
y1 ON x
m (b1w1);
y2 ON x
m (b2w1);

MODEL g2:
m ON x (aw2);
y1 ON x
m (b1w2);
y2 ON x
m (b2w2);

%BETWEEN%
m ON x;
y1 ON x m;
y2 ON x m;

MODEL g1:
m ON x (ab1);
y1 ON x
m (b1b1);
y2 ON x
m (b2b1);

MODEL g2:
m ON x (ab2);
y1 ON x
m (b1b2);
y2 ON x
m (b2b2);

MODEL CONSTRAINT:
NEW(ind1w1 ind1w2 ind1b1 ind1b2
ind2w1 ind2w2 ind2b1 ind2b2);
ind1w1=aw1*b1w1;
ind2w1=aw1*b2w1;
ind1b1=ab1*b1b1;
ind2b1=ab1*b2b1;

ind1w2=aw2*b1w2;
ind2w2=aw2*b2w2;
ind1b2=ab2*b1b2;
ind2b2=ab2*b2b2;
 Linda K. Muthen posted on Friday, August 29, 2014 - 1:34 pm
The structure should be

MODEL:
%WITHIN%
#BETWEEN%
MODEL g1;
%WITHIN%
%BETWEEN%
MODEL g2;
%WITHIN%
%BETWEEN%

The basic model should be specified under MODEL. Differences between group-specific models and this model should be specified under MODEL g1 and MODEL g2.
 Yan Liu posted on Saturday, August 30, 2014 - 6:17 pm
Dear Linda,

Thank you so much! The code works now. However, when I added more under the MODEL CONSTRAINT to test the difference on indirect effects between two groups.

0=ind1w1-ind1w2;
0=ind2w1-ind2w2;
0=ind1b1-ind1b2;
0=ind2b1-ind2b2;

The model doesn't work and gives me error message as follows.

THE MODEL ESTIMATION DID NOT TERMINATE NORMALLY DUE TO AN ERROR IN THE COMPUTATION.CHANGE YOUR MODEL AND/OR STARTING VALUES.

Is this because I have zero degrees of freedom, which doesn't allow more tests, or my model doesn't fit the data?
Thanks!
Yan
 Linda K. Muthen posted on Sunday, August 31, 2014 - 5:45 am
 anonymous Z posted on Tuesday, July 26, 2016 - 1:53 pm
Dear Dr. Muthen,

Below is my test on the difference of indirect effects. I used model constraint. Does the syntax look right to you?

1.If DIFF is significant, i.e., p<.05, can I conclude that the indirect effects were significantly across the two groups?
2.Do I need to use bootstrapping while using model constraint?

Thanks so much,

MODE:

IPPA_3 ON CARE_2;
CARE_3 ON IPPA_2(a1);

IPPA_3 ON IPPA_2;
CARE_3 ON CARE_2;

emo_4 on ippa_3;
emo_4 on CARE_3 (b1);

MODEL Treat:

IPPA_3 ON CARE_2;
CARE_3 ON IPPA_2(a2);

IPPA_3 ON IPPA_2;
CARE_3 ON CARE_2;

emo_4 on ippa_3;
emo_4 on CARE_3 (b2);

MODEL constraint:

New (H O DIFF1);

H= a1*b1;
O= a2*b2;

DIFF1= H-O;
 Bengt O. Muthen posted on Wednesday, July 27, 2016 - 11:39 am

MODE:

is really

MODEL Control:

then the DIFF1 test checks if those 2 products are the same or not. Small p-value means that they are different.
 anonymous Z posted on Wednesday, July 27, 2016 - 11:52 am
Dr. Muthen,

Thanks so much! It is a typo. It should be "model"

BTW, I tried wald test too.

model test:

0=H-O;

if p<.05, does it mean that they are different? It is similar to DIFF test, right?
 Bengt O. Muthen posted on Wednesday, July 27, 2016 - 2:16 pm
right
 Diana Chirinos Medina posted on Tuesday, October 04, 2016 - 2:52 pm
Dear Dr. Muthen,
I am running a model across 3 groups and want to see whether an indirect path is equal across all 3 groups. I constrained all paths to be equal except these:

Model: STRESS ON NEIGH (a1);
BMI ON STRESS (a2);

MODEL HISP:
STRESS ON NEIGH (b1);
BMI ON STRESS (b2);

MODEL BLACK:
STRESS ON NEIGH (c1);
BMI ON STRESS (c2);

And added the model constrained command: MODEL CONSTRAINT:
NEW(a1a2 b1b2 c1c2);
a1a2=a1*a2;
b1b2=b1*b2;
c1c2=c1*c2;
0=a1a2-b1b2;
0=b1b2-c1c2;
0=c1c2-a1a2;

However, i got this error message:
NO CONVERGENCE. SERIOUS PROBLEMS IN ITERATIONS.
ESTIMATED COVARIANCE MATRIX NON-INVERTIBLE.

How should I specify this model? I want all paths to be held equal across group except for the indirect path:
BMI ind stress neigh;

I look forward to hearing from you.
Best,
Diana
 Bengt O. Muthen posted on Tuesday, October 04, 2016 - 3:11 pm
You are close but you should have only 2, not 3, comparisons. Your say

0=a1a2-b1b2;
0=b1b2-c1c2;
0=c1c2-a1a2;

but since both the 1st and 3rd lines compare to a1a2 the 2nd line is redundant. It is that redundancy that gives the non-invertibility.

Instead, you should for example say:

0=a1a2-b1b2;
0=a1a2-c1c2;
 Diana Chirinos Medina posted on Wednesday, October 05, 2016 - 12:39 pm
Dear Dr. Muthen,
I tried to run the model as you suggested but I am still getting the same error.
I tried this alternative model and it did run:
MODEL CONSTRAINT:
NEW(a1a2 b1b2 c1c2 diff diff1 diff2);
a1a2=a1*a2;
b1b2=b1*b2;
c1c2=c1*c2;
diff=a1a2-b1b2;
diff1=b1b2-c1c2;
diff2=c1c2-a1a2;

The output gave me these new parameters:
A1A2 -0.023 0.011 -2.079 0.038
B1B2 -0.008 0.006 -1.300 0.193
C1C2 -0.032 0.021 -1.549 0.121
DIFF -0.014 0.012 -1.162 0.245
DIFF1 0.024 0.021 1.105 0.269
DIFF2 -0.009 0.023 -0.405 0.685

Is there any other way of testing whether these are significantly different from each other?
 Diana Chirinos Medina posted on Wednesday, October 05, 2016 - 12:49 pm
One follow up question, i ran two models one with the direct paths constrained and one with them unconstrained.
There does not seem to be significant change in model fit.
If the direct paths are the same across group, couldn't I just assume that the indirect paths are the same as well?
 Bengt O. Muthen posted on Wednesday, October 05, 2016 - 2:52 pm
Q1. You used Model Constraint. You can also use Model Test.

Q2. If all paths are equal, the indirect effects will also be equal. The reverse doesn't hold.
 Analia Albuja posted on Tuesday, June 20, 2017 - 2:32 pm
Hi,

I ran a multiple group path analysis with two groups. The chi squared difference test between the unrestrained and the restrained models was not significant. However, the patterns of mediation are different between groups. I have three mediators, so for example in one group the mediation is significant through two mediators but in the other group it's only significant through one. Are these differences significant? Or are they not since the models are not different overall? Any advice you have on how to interpret that would be appreciated! Thank you!
 Bengt O. Muthen posted on Tuesday, June 20, 2017 - 5:26 pm
Even if two estimates are not significantly different, one of them may be significantly different from zero while the other isn't.

For instance, with

a= 0.5, b= 0.75

the difference of 0.25 might not be significant while the difference between 0.5 and 0 is. It also depends on their SEs and the covariance between the estimates (shown in TECH3).