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. 

Back to top 