Message/Author 


I have conducted mediation analysis with INDIRECT using bootstrapping and I am interested in whether the significant mediation holds in the subgroups. 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 


MODEL INDIRECT can be used with multiple group analysis. 


Thanks Linda. I expect I may be emailing back, but as always I appreciate the rapid response. Sue 


Dear Dr. Muthèn: We are testing mediation models and we would like to see if there are sex differences on the IND pathway (multigroup 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(e1e2)), where the denominator is sqrt(var(e1e2)), where var(e1e2) 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, 


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 434435 of the Version 6 Mplus User's Guide. 


Thank you very much for your quick answer, 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); 


No, only parameters in the MODEL command. You could create the indirect effects in MODEL CONSTRAINT and use MODEL TEST to test their difference. 


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. 


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; 


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 40character limit for freeformatted 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?? 


Please send the output, data, and your license number to support@statmodel.com. 


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 mediationanalysis 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 


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). 


Thanks a lot, so to get it clear (sorry, but I am new in the realm of mediationanalysis ;) My mediator is the MASvariable (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? Thanks a lot for your helpful comments! 


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 http://www.statmodel.com/download/causalmediation.pdf 


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 4category mediator variable as well???? Thanks a lot, Best Sune 


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. 


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 3categorical 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 


Please send your input, output, and license number to support@statmodel.com. 


Dear Linda, thanks a lot I have mailed support@statmodel.com, with my questions and license number... Have a great day, Best Sune 


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=fg; 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! 


I would think using one model as you show would be fine. Yes, you would need specify both indirect effects in MODEL CONSTRAINT. 


Thanks so much for your response! These boards as well as the manual help so much. I was trying to rerun 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 NONINVERTIBLE. CHECK YOUR STARTING VALUES. Do you have any advice? 


Please send the output and your license number to support@statmodel.com. 


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 multigroup approche whether the mediation model holds in different group. Thus I constrained the relation between variables to be equal across groups. Thank you! 


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; 


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 NONINVERTIBLE.CHECK YOUR STARTING VALUES. error messages. 


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; 


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 groupspecific 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=ind1w1ind1w2; 0=ind2w1ind2w2; 0=ind1b1ind1b2; 0=ind2b1ind2b2; 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 


Please send the output and your license number to support@statmodel.com. 


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= HO; 


If your statement MODE: is really MODEL Control: then the DIFF1 test checks if those 2 products are the same or not. Small pvalue 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=HO; if p<.05, does it mean that they are different? It is similar to DIFF test, right? 


right 


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=a1a2b1b2; 0=b1b2c1c2; 0=c1c2a1a2; However, i got this error message: NO CONVERGENCE. SERIOUS PROBLEMS IN ITERATIONS. ESTIMATED COVARIANCE MATRIX NONINVERTIBLE. CHECK YOUR STARTING VALUES. 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 


You are close but you should have only 2, not 3, comparisons. Your say 0=a1a2b1b2; 0=b1b2c1c2; 0=c1c2a1a2; but since both the 1st and 3rd lines compare to a1a2 the 2nd line is redundant. It is that redundancy that gives the noninvertibility. Instead, you should for example say: 0=a1a2b1b2; 0=a1a2c1c2; 


Dear Dr. Muthen, Thank you for your help. 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=a1a2b1b2; diff1=b1b2c1c2; diff2=c1c2a1a2; The output gave me these new parameters: New/Additional 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? 


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? 


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. 


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! 


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). 


Dear Dr Muthen, I am currently running a multiple group mediation model to test whether the indirect paths significantly differ across gender. Here is the model I am specifying between my latent variables. I want to run one model (below) with freely estimated paths across gender and compare this to the fit of a model with equated indirect paths across gender (e.g. boys a1 and girls a1). MODEL: socanx10 ON scdiff; socanx13 ON scdiff; ovvic ON scdiff(a1); relvic ON scdiff(b1); socanx10 ON ovvic(c1); socanx10 ON relvic(d1); socanx13 ON ovvic(e1); socanx13 ON relvic(f1); MODEL girl: socanx10 ON scdiff; socanx13 ON scdiff; ovvic ON scdiff(a2); relvic ON scdiff(b2); socanx10 ON ovvic(c2); socanx10 ON relvic(d2); socanx13 ON ovvic(e2); socanx13 ON relvic(f2); MODEL constraint: NEW (ind_go ind_go2 ind_gr ind_gr2 ind_bo ind_bo2 ind_br ind_br2); ind_bo = a1*c1; ind_bo2 = a1*e1; ind_br = b1*d1; ind_br2 = b1*f1; ind_go = a2*c2; ind_go2 = a2*e2; ind_gr = b2*d2; ind_gr2 = b2*f2; The model outlined above will not converge: NO CONVERGENCE. NUMBER OF ITERATIONS EXCEEDED. I would be grateful for any advice you are able to offer. 


Please send the output and your license number to support@statmodel.com. 


Hello, I ran a multiple group path analysis with two groups. I tested whether the indirect effects were significantly different using likelihood ratio tests and they were not. In the output I see the indirect effects separated by group, so I'm not sure which I should report. Should I run the analysis without the grouping variable and report those indirect effects? Thank you! Analia 


I assume you do a run where you hold the indirect effects equal across the 2 groups  use that. 


Dear Profs Muthen, I've been running a multiple group path analysis on a complex survey data. The BRR are the replicates weights used in the dataset. Since there are some missing, I used the default estimator declaring a multivariate normality assumption. I've tested also the difference between boys and girls on specific indirect effects by using MODEL CONSTRAINT. Checking the output, the parameter relative to the difference was statistically significant. I kindly ask whether the computation of the standard error of this parameter takes into account the sampling design, considering the BRR weights. Thank you in advance for your help. Carlo 


Yes  model constraints parameters use the same computation as for regular model parameters. 


Dear Prof. Asparouhov, apologies for this delayed reply. Thank you so much for the reassuring response. I would like ask another question. Mplus do not provide Chisquare statistics if BRR replicates are being used. Could you please suggest me other methods of model comparison? Thank you again. Carlo 


You can use model constraint to test for differences between parameters see for example Mplus user's guide page 274, or you can use the "model test" command. 


Dear Dr Muthen, We are testing mediation models (two mediators) and we would like to see if there are cohort differences on the IND pathway (multigroup analyses with three groups). We have a dichotomous outcome. According to your commend earlier in this thread you could test the difference of indirect effects between groups with model constraint in two ways. First, obtain indirect effects in model constraint: a1b1 = c1 * a2; aa1bb1 = cc1 * aa2; model test: a1b1=aa1bb1; We do this for all indirect effects. This works fine. However, it is not possible to use the bootstrapping command in combination with model test. Is this a concern at all? The second way is to define this command in MODEL constraint: 0 = a1b1  aa1bb1; We can use bootstrapping. However, we are getting this error: THE DEGREES OF FREEDOM FOR THIS MODEL ARE NEGATIVE. THE MODEL IS NOT IDENTIFIED. NO CHISQUARE TEST IS AVAILABLE. CHECK YOUR MODEL. NO CONVERGENCE. NUMBER OF ITERATIONS EXCEEDED. Can we conclude that the constraint does not work and therefore the bootstrapped indirect effects are not the same? Or does this mean that there is a problem with our model? How else could we obtain a significance test of bootstrapped indirect effects across cohorts? Thanks a lot in advance! 


You should use MODEL constraint: New(diff); diff = a1b1  aa1bb1; and look at the bootstrap CI for diff with output:cint(boot); 

Daniel Lee posted on Monday, August 05, 2019  3:26 pm



Hi Dr. Muthen, I am using the WLSMV estimator and bias corrected bootstrap confidence interval to test for group differences (two groups) in the direct and indirect paths in a simple mediation model. I found significant group differences in the direct path from the mediator to the outcome (y), but did not find group differences between the indirect effects. Of note, the indirect effect was significant in one group, but not the other. I was wondering if this means that there is a significant difference from the mediator to the outcome (M to Y) but that this difference is not robust enough to influence group differences in the indirect effect? If there are no significant group differences in the indirect effects, which indirect effect should I interpret (e.g., indirect effect from model where the groups are pooled)? Thank you! 


If a and b do not show group differences in a joint 2 df Wald test (Model Test), then use the model with them equal across groups. 

Daniel Lee posted on Wednesday, August 07, 2019  8:39 am



Hi Dr. Muthen, Thank you for the response. I have set equality constraints on all model coefficients between the two groups, and only freed the "a" and "b" path (to be unequal between groups). When I did that, the difference in chisquare (2 df) was significant. Is that what you meant? Thank you! 


Right. 


Hello, We are aiming to test a mediation model based on latent variables formed from ordinal data (so have used WLSMV). We want to see if there are differences on the IND pathway for two groups (diagnosis/no diagnosis). Based on what I've read so far, our current syntax is as below: Y BY Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9 Y10 Y11 Y12; X BY X1 X2 X3 X4; M BY M1 M2 M3 M4 M5 M6; Y ON X M; M ON X; MODEL INDIRECT: Y IND X; MODEL diagnosis: Y ON X (a1); Y ON M (b1); M ON X (c1); MODEL no diagnosis: Y ON X (a2); Y ON M (b2); M ON X (c2); MODEL constraint: new (D ND DIFF1); D=a1*b1; ND=a2*b2; DIFF1=NDD; OUTPUT: CINTERVAL STAND TECH4; Is this correct? Could you explain how you would bootstrap this? I also wanted to ask what the appropriate way would be to test individual pathways within the model between the two groups  would this be DIFFTEST? Many thanks. 


Yes, this is correct. To use bootstrapping, just say Bootstrap = 500 in the Analysis command and Cinterval(Bootstrap) in the Output command. If you want to test a single parameter you can do DIFFTEST or again use Model Constraint. Those are two different chisquare tests with the same aim. 

Back to top 