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;