Message/Author 


211 mediation analysis (http://quantpsy.org/pubs/syntax_appendix_081311.pdf) Code: DATA: FILE IS ...; listwise=on; VARIABLE: NAMES ARE pcid pcTRT ptid ptwaira2 ptkasra2 nucwai nucsdm; USEVARIABLES ARE pcTRT nucwai nucsdm; BETWEEN IS pcTRT; CLUSTER IS pcid; MISSING ARE ALL (9999); ANALYSIS: TYPE IS TWOLEVEL RANDOM; MODEL: %WITHIN% nucwai*72 nucsdm*124; sb  nucsdm ON nucwai; %BETWEEN% pcTRT*.3 nucwai*26.0 nucsdm*52.0; nucwai ON pcTRT(a); nucsdm ON nucwai(bb); nucsdm ON pcTRT; [sb](bw); sb WITH pcTRT nucwai nucsdm; MODEL CONSTRAINT: NEW(b indb); b=bb+bw; indb=a*b; OUTPUT: SAMP TECH1 TECH8 CINTERVAL; Problem: Without listwise deletion, I get: *** FATAL ERROR THIS MODEL CAN BE DONE ONLY WITH MONTECARLO INTEGRATION.. After adding ALGORITHM = INT; Integration=MONTECARLO; to ANALYSIS section: *** ERROR in MODEL command Observed variable on the righthand side of a betweenlevel ON statement must be a BETWEEN variable. Problem with: NUCWAI *** ERROR The following MODEL statements are ignored: * Statements in the BETWEEN level: NUCSDM ON NUCWAI 


To clarify, my question is why does not specifying listwise deletion lead to the errors above? 


With listwise deletion there is no missing data. The message is triggered when the mediator has missing data. 


If you have missing data on nucwai the model includes the product of two latent variables and there is no explicit likelihood expression  therefore you have to use numerical integration and a completely different algorithm, i.e., the missing data makes the algorithm quite a bit more complicated. You can resolve your problem by using this equivalent model %BETWEEN% pcTRT*.3 nucwai*26.0 nucsdm*52.0; nucwai ON pcTRT(a); nucsdm ON f(bb); nucsdm ON pcTRT; [sb](bw); sb WITH pcTRT nucwai nucsdm; f by nucwai@1; nucwai@0; f*1; You should also consider using multiple imputation as an alternative estimation approach, that way you avoid numerical integration. You should also consider using the observed covaraite version of this model for nucwai http://statmodel.com/download/Ludtkeposted.pdf Finally note that the covariate with the random slope is uncentered. 


1  I am trying to calculate a 211 multilevel mediation model where the mediator is binary. Will this input do this correctly and also calculate the indirect effect correctly? Conscie is the predictor x, poscons the mediator m, and success the outcome y. … USEVARIABLES = poscons success conscie ID ; missing = poscons (9) success (9) conscie (9) ID (9) ; BETWEEN IS conscie ; CLUSTER IS ID; ANALYSIS: TYPE IS TWOLEVEL; ESTIMATOR = WLSMV; MODEL: %WITHIN% poscons success; success ON poscons(b); %BETWEEN% conscie poscons success; poscons ON conscie(a); success ON poscons(b); success ON conscie; MODEL CONSTRAINT: NEW(indb); indb=a*b; OUTPUT: TECH1 TECH8 CINTERVAL; 2  I am using the WLMSV estimator. Is this correct? Or should I use ML or MLR? 3  If I use WLMSV, how do I interpret the regression coefficients: Are they probit regression coefficients? Or can they be interpreted like regression coefficients from a linear regression? 


1. This is fine. 2. WLSMV is ok here. 3. They are regular linear reg coeff's because on Between all variables are continuous (no matter that some are latent). 

Yoon Oh posted on Wednesday, April 05, 2017  2:31 pm



I'm trying to conduct a multilevel mediation analysis, with outcome at L1, mediator at L2, and predictor at L3. Thd codes that I wrote for this anaysis are as below. Would you please let me know if I'm doing it right. Thank you so much for your time! ANALYSIS: TYPE = THREELEVEL RANDOM; estimator = mlf; MODEL: %WITHIN% POSTTEST on PRETEST ; %BETWEEN Class_ID% POSTTEST on COVARIATE MEDIATOR(b); MEDIATOR on COVARIATE; %BETWEEN School_ID% POSTTEST on PREDICTOR (c); MEDIATOR on PREDICTOR (a); MODEL CONSTRAINT: new(direct indirect); indirect = a*b; direct = c; OUTPUT: sampstat tech1 tech3 tech8 cinterval; 


This seems correct. But why not let Postest be regressed on Mediator also on level 2? If we call that slope b2, I think the indirect effect is a*b+a*b2*b. 

Yoon Oh posted on Thursday, April 06, 2017  7:49 pm



Dear Bengt, Thank you so much for your response. But Posttest is already regressed on mediator on level2. Did you mean Level3? If so, I revised the codes as below. Would you please let me know if this looks okay? MODEL: %WITHIN% POSTTEST on PRETEST ; PRETEST; %BETWEEN Class_ID% POSTTEST on COVARIATE PRETEST MEDIATOR(b1); MEDIATOR on COVARIATE PRETEST; PRETEST; %BETWEEN School_ID% POSTTEST on PRETEST PREDICTOR (c); POSTTEST on MEDIATOR(b2); MEDIATOR on PRETEST PREDICTOR(a): MODEL CONSTRAINT: new(direct indirect); indirect = ((a*b1)+(a*b1*b2)); direct = c; 


Yes, I meant level 3. Note that you can only have one parameter labeled per line. So change for instance POSTTEST on COVARIATE PRETEST MEDIATOR(b1); to POSTTEST on COVARIATE PRETEST MEDIATOR(b1); 

Yoon Oh posted on Friday, April 07, 2017  9:52 am



Thank you so much for your guidance! This is really helpful. 


Dear Drs. Muthen, I am trying to do something similar to the above. However, my X is measured at L2: middle managers (MMs) who are rating their superiors. Several MMs are rating the same superior. I also have covariates at each level. I have written the following syntax, but it will not run. usevariable= idg idc m2 y1 x2 gen1 gen2; WITHIN = gen1; BETWEEN = (idg) x2 m2 gen2 (idc) gen3; CLUSTER= idc idg; ANALYSIS:TYPE = threelevel random; MODEL: %within% y1 ON gen1; !DV = control %between idg% y1 ON m2 (b) !DV = M x2 (c); !DV = X m2 ON x2 (a) !M = X gen2; !control %between idc% y1 ON m2 !DV = M @L3 x2 ; !DV = X @L3 m2 ON x2; !M = X @L3 x2 ON gen3; !control MODEL CONSTRAINT: NEW (IND); IND = a*b; ! Estimate indirect effect Please let me know what I need to change. Thanks! 


We need to see your full output  send to Support along with your license number. 

Derek Boy posted on Wednesday, January 10, 2018  12:07 pm



Dear Dr. Muthen I am considering a multilevel mediation analysis (while still pending the field data), with outcome EIP to be modeled at all three levels, mediator EEO also to be modeled at all three levels, and predictors EEL SGL CCT modeled at L1, L2, and L3 respectively. The codes that I wrote are as below. Would you please kindly let me know if I am doing it right or not? And, I am particularly nervous on my calculation of the indirect effect. Many many thanks. WITHIN = EEL; BETWEEN = (S_ID) SGL (C_CN) CCT; CLUSTER = C_CN S_ID; ANALYSIS: TYPE = threelevel; MODEL: %WITHIN% EIP ON EEO (b1) EEL (c); EEO ON EEL (a); %BETWEEN S_ID% EIP ON SGL EEO (b2); EEO ON SGL; EEO; EIP; %BETWEEN C_CN% EIP ON EEO (b3); EEO ON CCT; EEO; MODEL CONSTRAINT: new(direct indirect); indirect = ((a*b1)+(a*b1*b2)+(a*b1*b2*b3)); direct = c; OUTPUT: sampstat tech1 tech8 cinterval; 


Because the Withinlevel EEL variable is the exposure variable, the indirect effect is simply a*b1. 

Derek Boy posted on Friday, January 12, 2018  11:32 pm



Many many thanks for your kind reply. 


Hi Muthen Can you please tell me whether this syntax is correct or not? I am trying to investigate threelevel model. TITLE: 3211 mediation (MSEM) PHCASCEEOutcomes BETWEEN = (Group) Agg_ASC (Org) AggEPHC; CLUSTER IS Org Group; Missing are all (99); ANALYSIS: TYPE IS THREELEVEL RANDOM; MODEL: %WITHIN% T_EX T_DRes; T_DRes ON T_EX(c); T_DRes ON E_Age E_Gend E_TWSup; %BETWEEN Group% E_Age E_Gend E_TWSup Agg_ASC T_EX T_DRes; T_EX ON Agg_ASC(b); T_EX ON E_Age E_Gend E_TWSup; T_DRes ON E_Age E_Gend E_TWSup Agg_ASC; %BETWEEN Org% E_Age E_Gend E_TWSup AggEPHC Agg_ASC T_EX T_DRes; Agg_ASC ON AggEPHC(a); MODEL CONSTRAINT: NEW(indb1); NEW(indb2); indb1=a*b; indb2=b*c; OUTPUT: TECH1 TECH8 CINTERVAL; 


I don't understand the model. What is (are) you mediator(s) and what is (are) your ultimate outcome(s)? Why is there no regression of T_DRes on T_Ex on the Between Group level while you have it on Within? Why do you call the path from Agg_Asc to T_Ex "b" on Between Group when you call the path from T_Ex to T_DRes "c" on Within? 


Dear Dr(s) Muthen, Is it possible to run a 111 MLM with 3 DVs simultaneously? If so, would it consist in including all Y1, Y2 and Y3 together in the model? Ex: %WITHIN% m ON x(aw); Y1 ON m(bw1); Y1 ON x; Y2 ON m(bw2); Y2 ON x; Y3 ON m(bw3); Y3 ON x; %BETWEEN% x m y1 y2 y3; m ON x(ab); y1 ON m(bb1); y1 ON x; y2 ON m(bb2); y2 ON x; y3 ON m(bb3); y3 ON x; MODEL CONSTRAINT: ! NEW(indb1 indb2 indb3 indw1 indw2 indw3); indw1=aw*bw1; indb1=ab*bb1; indw2=aw*bw2; indb2=ab*bb2; indw3=aw*bw3; indb3=ab*bb3; Thank you! 


Q1: Yes. Q2: Right. 


Thank you for your answer. I ran my model accordingly. However, I have trouble understanding what to do with model fit indexes. ChiSquare Test of Model Fit Value 0.000* Degrees of Freedom 0 PValue 1.0000 Scaling Correction Factor 1.0000 for MLR Therefore, all the indexes are "perfect" (RMSEA = 0.000; CFI = 1.000, etc.). I don't think my model is just identified (I have 600 observations, for a 111 model with 3 DVs; 35 free parameters). I understand I cannot use these indexes to assess my model. I have checked the website for the chisquare difference test computation using MLR. But I don't understand which model should I compare this one against... Could you help me with this? Finally, even if I get a "chisquare" value, I will still be missing the other indexes, is this correct? Thank you for your help. Best, Patricia 


The possibility to test model fit by SEM approaches is not related to the sample size but to the number of variances and covariances among the variables. Your model is justidentified (saturated; all paths are present in the model) and is therefore not testable by regular SEM approaches. 


I am estimating a MSEM, including a 111 and a 121 mediation simultaneously. Three questions: 1) Is this the correct way of estimating the model? 2) How should I interpret the betweenlevel indirect effect of the 111 mediation? Is it the effect of the aggregate of X on the aggregate of Y via the aggregate of M. Or should I not interpret this indirect effect and is it only estimated to get an unbiased indirect effect at level 1? 3) Y is ordered categorical. Should I use the WLSMV estimator to take ordinality into account? If I do, Mplus asks me to cluster mean center the level 1 variables and add them on level 2 (unconflated MLM), instead of MSEM (which is preferable). Should I go for MLR anyway? X = level 1 independent; M = level 1 mediator; Z = level 2 mediator; Y = level 1 dependent NAMES ARE x m1 m2 z y district weight; USEVARIABLES ARE x m z y; WEIGHT IS weight; CLUSTER IS district; BETWEEN ARE Z; ANALYSIS: TYPE = twolevel random; ESTIMATOR = MLR; MODEL: %WITHIN% y x m; y ON x; m ON x (a); y ON m (b); %BETWEEN% x m z y; y ON x; z on x (c); y on z (d); m ON x (e); y ON m (f); MODEL CONSTRAINT: NEW(ind1 ind2 ind3); ind1=a*b; ind2=c*d; ind3=e*f; Thank you so much! 


1) A quick perusal says it looks ok. 2) Yes, indirect effect for the aggregates. 3) I would treat Y as continuous unless it has a big floor or ceiling effect. 


Hello, I try to estimate a model similar to the one mentioned above from 2016 (with outcome at L1, mediator at L2, and predictor at L3) but with the mediator beeing a latent variable modelled on all three levels (similar to a doubly latent approach). Could you please let me know if the code is correct (particularly with regard to the model constraint)? MODEL: %WITHIN% LATENTw by LAT1* LAT2; LATENTw@1; POSTTEST on PRETEST; POSTTEST on LATENTw; LATENTw on PRETEST; %BETWEEN IDclass% LATENTb1 by LAT1* LAT2; LATENTb1@1; POSTTEST on PRETEST; POSTTEST on LATENTb1(b1); LATENTb1 on PRETEST; %BETWEEN IDschool% L3PREDICTOR by PRE1* PRE2; P3PREDICTOR@1; LATENTb2 by LAT1* LAT2; LATENTb2@1; POSTSTEST on PRETEST; POSTTEST on LATENTb2(b2); POSTTEST on L3PREDICTOR; LATENTb2 on PRETEST; LATENTb2 on L3PREDICTOR(a); MODEL CONSTRAINT: new(indirect); indirect = ((a*b1)+(a*b1*b2)); 


You say the mediator is at L2 but then you say that it is modeled on all 3 levels  this doesn't square. The Latent variable on the 3 levels needs to have its loadings held equal across levels to give a meaningful decomposition. On level 3 you need to call is Latentb3. It is easier to answer questions involving so much code by sending the output to Support  along with your license number. 

Back to top 