Appendices for

“Moderated Mediation Analysis Using Bayesian Methods”

by Lijuan Wang and Kristopher J. Preacher (2015)

 

Appendix A

Testing whether a mediation effect is moderated using the delta method (pdf)

 

Appendix B

BUGS/Mplus code for the moderated mediation analysis in scenario 6

 

BUGS code

model {

for (i in 1:N) {

m[i]~dnorm(mu.m[i],prec.m)

mu.m[i]<-iM[i] + a[i]*x[i]

y[i]~dnorm(mu.y[i],prec.y)

mu.y[i]<-iY[i] + c[i]*x[i] + b[i]*m[i]

a[i]<-a1+a2*z1[i]+a3*z[i]

iM[i]<-i1M+i2M*z1[i] +i3M*z[i]

b[i]<-b1+b2*z2[i]+b3*z[i]

iY[i]<-i1Y+i2Y*z1[i]+i3Y*z2[i]+i4Y*z[i]

c[i]<-c1+c2*z1[i]+c3*z2[i]+c4*z[i]}

# priors for the regression parameters

a1~dnorm(0,1.0E-6)

a2~dnorm(0,1.0E-6)

a3~dnorm(0,1.0E-6)

i1M~dnorm(0,1.0E-6)

i2M~dnorm(0,1.0E-6)

i3M~dnorm(0,1.0E-6)

b1~dnorm(0,1.0E-6)

b2~dnorm(0,1.0E-6)

b3~dnorm(0,1.0E-6)

i1Y~dnorm(0,1.0E-6)

i2Y~dnorm(0,1.0E-6)

i3Y~dnorm(0,1.0E-6)

i4Y~dnorm(0,1.0E-6)

c1~dnorm(0,1.0E-6)

c2~dnorm(0,1.0E-6)

c3~dnorm(0,1.0E-6)

c4~dnorm(0,1.0E-6)

# priors for the residual precision parameters

prec.m~dgamma(.001,.001)

prec.y~dgamma(.001,.001)

#transform the precision parameters to the variance parameters

sigma2.em<-1/prec.m

sigma2.ey<-1/prec.y

# Assign possible values to the moderator(s)

for (k in 1:1) {

z1value[k]<-1

z2value[k]<-1

zvalue[k]<-1

mome[k]<-(a1+a2*z1value[k]+a3*zvalue[k])*(b1+b2*z2value[k]+b3*zvalue[k])}}

 

Mplus code

TITLE: moderated mediation analysis using Bayesian scenario 6;

DATA: FILE = data.dat;

VARIABLE: NAMES = id x y m z1 z2 z;

USEVARIABLES ARE x y m z1 z2 z xz1 xz2 xz mz2 mz;

DEFINE:

xz1 = x*z1;

xz2 = x*z2;

xz = x*z;

mz2 = m*z2;

mz = m*z;

ANALYSIS: ESTIMATOR IS BAYES;

PROCESS = 2;    ! define the number of chains;

POINT=MEAN;     ! define the estimator;

FBITER = 20000; ! define the number of iterations;

MODEL:

x;

m (vm);

y (vy);

[m](i1M);

[y](i1Y);

m ON z1(i2M);

m ON z(i3M);

m ON x(a1);

m ON xz1(a2);

m ON xz(a3);

y ON z1(i2Y);

y ON z2(i3Y);

y ON z(i4Y);

y ON x(c1);

y ON xz1(c2);

y ON xz2(c3);

y ON xz(c4);

y ON m(b1);

y ON mz2(b2);

y ON mz(b3);

MODEL PRIORS:

a1  ~ N(0,100000);

a2  ~ N(0,100000);

a3  ~ N(0,100000);

i1M ~ N(0,100000);

i2M ~ N(0,100000);

i3M ~ N(0,100000);

b1  ~ N(0,100000);

b2  ~ N(0,100000);

b3  ~ N(0,100000);

i1Y ~ N(0,100000);

i2Y ~ N(0,100000);

i3Y ~ N(0,100000);

i4Y ~ N(0,100000);

c1  ~ N(0,100000);

c2  ~ N(0,100000);

c3  ~ N(0,100000);

c4  ~ N(0,100000);

vm~IG(.001,.001);

vy~IG(.001,.001);

MODEL CONSTRAINT:

NEW (mome);

mome = (a1+a2*1+a3*1)*(b1+b2*1+b3*1);

NEW (mometest1);

mometest1=(a1+a2*1+a3*1)*(b1+b2*1+b3*1)-(a1+a2*0+a3*0)*(b1+b2*0+b3*0);

OUTPUT: CINT tech1;