来自图书《MPlus中介调节模型》
模型方程:
Y = b0 + b1M + b2V + b3MV + c'X
M = a0 + a1X + a2W + a3Z + a4XW + a5XZ
将第二个方程代入第一个方程:
Y = b0 + b1(a0 + a1X + a2W + a3Z + a4XW + a5XZ) + b2V + b3(a0 + a1X + a2W + a3Z + a4XW + a5XZ)V + c'X
展开括号:
Y = b0 + a0b1 + a1b1X + a2b1W + a3b1Z + a4b1XW + a5b1XZ + b2V + a0b3V + a1b3XV + a2b3VW + a3b3ZV + a4b3XVW + a5b3XZV + c'X
模型方程:
Y = b0 + b1M + b2V + b3MV + c'X
M = a0 + a1X + a2W + a3Z + a4XW + a5XZ
将第二个方程代入第一个方程:
Y = b0 + b1(a0 + a1X + a2W + a3Z + a4XW + a5XZ) + b2V + b3(a0 + a1X + a2W + a3Z + a4XW + a5XZ)V + c'X
展开括号:
Y = b0 + a0b1 + a1b1X + a2b1W + a3b1Z + a4b1XW + a5b1XZ + b2V + a0b3V + a1b3XV + a2b3VW + a3b3ZV + a4b3XVW + a5b3XZV + c'X
整理成 Y = a + bX 的形式,合并X的各项:
Y = (b0 + a0b1 + a2b1W + a3b1Z + b2V + a0b3V + a2b3VW + a3b3ZV) + (a1b1 + a4b1W + a5b1Z + a1b3V + a4b3VW + a5b3ZV + c')X
模型方程:
Y = b0 + b1M + b2V + b3MV + c'X
M = a0 + a1X + a2W + a3Z + a4XW + a5XZ
将第二个方程代入第一个方程:
Y = b0 + b1(a0 + a1X + a2W + a3Z + a4XW + a5XZ) + b2V + b3(a0 + a1X + a2W + a3Z + a4XW + a5XZ)V + c'X
展开括号:
Y = b0 + a0b1 + a1b1X + a2b1W + a3b1Z + a4b1XW + a5b1XZ + b2V + a0b3V + a1b3XV + a2b3VW + a3b3ZV + a4b3XVW + a5b3XZV + c'X
整理成 Y = a + bX 的形式,合并X的各项:
Y = (b0 + a0b1 + a2b1W + a3b1Z + b2V + a0b3V + a2b3VW + a3b3ZV) + (a1b1 + a4b1W + a5b1Z + a1b3V + a4b3VW + a5b3ZV + c')X
X对Y的间接效应(在W, Z, V条件下):
(a1 + a4W + a5Z)(b1 + b3V)
模型方程:
Y = b0 + b1M + b2V + b3MV + c'X
M = a0 + a1X + a2W + a3Z + a4XW + a5XZ
将第二个方程代入第一个方程:
Y = b0 + b1(a0 + a1X + a2W + a3Z + a4XW + a5XZ) + b2V + b3(a0 + a1X + a2W + a3Z + a4XW + a5XZ)V + c'X
展开括号:
Y = b0 + a0b1 + a1b1X + a2b1W + a3b1Z + a4b1XW + a5b1XZ + b2V + a0b3V + a1b3XV + a2b3VW + a3b3ZV + a4b3XVW + a5b3XZV + c'X
整理成 Y = a + bX 的形式,合并X的各项:
Y = (b0 + a0b1 + a2b1W + a3b1Z + b2V + a0b3V + a2b3VW + a3b3ZV) + (a1b1 + a4b1W + a5b1Z + a1b3V + a4b3VW + a5b3ZV + c')X
X对Y的间接效应(在W, Z, V条件下):
(a1 + a4W + a5Z)(b1 + b3V)
X对Y的直接效应:
c'
USEVARIABLES = X M W Z V Y XW XZ MV;
DEFINE:
MV = M*V;
XW = X*W;
XZ = X*Z;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
BOOTSTRAP = 10000;
MODEL:
[Y] (b0);
Y ON M (b1);
Y ON V (b2);
Y ON MV (b3);
Y ON X (cdash);
[M] (a0);
M ON X (a1);
M ON W (a2);
M ON Z (a3);
M ON XW (a4);
M ON XZ (a5);
MODEL CONSTRAINT:
NEW(LOW_W MED_W HIGH_W LOW_Z MED_Z HIGH_Z LOW_V MED_V HIGH_V
ILWLZLV IMWLZLV IHWLZLV ILWMZLV IMWMZLV IHWMZLV
ILWHZLV IMWHZLV IHWHZLV
ILWLZMV IMWLZMV IHWLZMV ILWMZMV IMWMZMV IHWMZMV
ILWHZMV IMWHZMV IHWHZMV
ILWLZHV IMWLZHV IHWLZHV ILWMZHV IMWMZHV IHWMZHV
ILWHZHV IMWHZHV IHWHZHV
TLWLZLV TMWLZLV THWLZLV TLWMZLV TMWMZLV THWMZLV
TLWHZLV TMWHZLV THWHZLV
TLWLZMV TMWLZMV THWLZMV TLWMZMV TMWMZMV THWMZMV
TLWHZMV TMWHZMV THWHZMV
TLWLZHV TMWLZHV THWLZHV TLWMZHV TMWMZHV THWMZHV
TLWHZHV TMWHZHV THWHZHV);
LOW_W = #LOWW;
MED_W = #MEDW;
HIGH_W = #HIGHW;
LOW_Z = #LOWZ;
MED_Z = #MEDZ;
HIGH_Z = #HIGHZ;
LOW_V = #LOWV;
MED_V = #MEDV;
HIGH_V = #HIGHV;
ILWLZLV = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*LOW_W + a5*b3*LOW_Z*LOW_V;
IMWLZLV = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*MED_W + a5*b3*LOW_Z*LOW_V;
IHWLZLV = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*HIGH_W + a5*b3*LOW_Z*LOW_V;
...
TLWLZLV = ILWLZLV + cdash;
TMWLZLV = IMWLZLV + cdash;
THWLZLV = IHWLZLV + cdash;
...
USEVARIABLES = X M W Z V Y XW XZ MV;
DEFINE:
MV = M*V;
XW = X*W;
XZ = X*Z;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
BOOTSTRAP = 10000;
MODEL:
[Y] (b0);
Y ON M (b1);
Y ON V (b2);
Y ON MV (b3);
Y ON X (cdash);
[M] (a0);
M ON X (a1);
M ON W (a2);
M ON Z (a3);
M ON XW (a4);
M ON XZ (a5);
MODEL CONSTRAINT:
NEW(LOW_W MED_W HIGH_W LOW_Z MED_Z HIGH_Z LOW_V MED_V HIGH_V
ILWLZLV IMWLZLV IHWLZLV ILWMZLV IMWMZLV IHWMZLV
ILWHZLV IMWHZLV IHWHZLV
ILWLZMV IMWLZMV IHWLZMV ILWMZMV IMWMZMV IHWMZMV
ILWHZMV IMWHZMV IHWHZMV
ILWLZHV IMWLZHV IHWLZHV ILWMZHV IMWMZHV IHWMZHV
ILWHZHV IMWHZHV IHWHZHV
TLWLZLV TMWLZLV THWLZLV TLWMZLV TMWMZLV THWMZLV
TLWHZLV TMWHZLV THWHZLV
TLWLZMV TMWLZMV THWLZMV TLWMZMV TMWMZMV THWMZMV
TLWHZMV TMWHZMV THWHZMV
TLWLZHV TMWLZHV THWLZHV TLWMZHV TMWMZHV THWMZHV
TLWHZHV TMWHZHV THWHZHV);
LOW_W = #LOWW;
MED_W = #MEDW;
HIGH_W = #HIGHW;
LOW_Z = #LOWZ;
MED_Z = #MEDZ;
HIGH_Z = #HIGHZ;
LOW_V = #LOWV;
MED_V = #MEDV;
HIGH_V = #HIGHV;
ILWLZLV = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*LOW_W + a5*b3*LOW_Z*LOW_V;
IMWLZLV = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*MED_W + a5*b3*LOW_Z*LOW_V;
IHWLZLV = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*HIGH_W + a5*b3*LOW_Z*LOW_V;
...
TLWLZLV = ILWLZLV + cdash;
TMWLZLV = IMWLZLV + cdash;
THWLZLV = IHWLZLV + cdash;
...
PLOT(PLWLZLV PMWLZLV PHWLZLV PLWMZLV PMWMZLV PHWMZLV
PLWHZLV PMWHZLV PHWHZLV
PLWLZMV PMWLZMV PHWLZMV PLWMZMV PMWMZMV PHWMZMV
PLWHZMV PMWHZMV PHWHZMV
PLWLZHV PMWLZHV PHWLZHV PLWMZHV PMWMZHV PHWMZHV
PLWHZHV PMWHZHV PHWHZHV);
LOOP(XVAL,1,5,0.1);
PLWLZLV = ILWLZLV*XVAL;
PMWLZLV = IMWLZLV*XVAL;
PHWLZLV = IHWLZLV*XVAL;
...
USEVARIABLES = X M W Z V Y XW XZ MV;
DEFINE:
MV = M*V;
XW = X*W;
XZ = X*Z;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
BOOTSTRAP = 10000;
MODEL:
[Y] (b0);
Y ON M (b1);
Y ON V (b2);
Y ON MV (b3);
Y ON X (cdash);
[M] (a0);
M ON X (a1);
M ON W (a2);
M ON Z (a3);
M ON XW (a4);
M ON XZ (a5);
MODEL CONSTRAINT:
NEW(LOW_W MED_W HIGH_W LOW_Z MED_Z HIGH_Z LOW_V MED_V HIGH_V
ILWLZLV IMWLZLV IHWLZLV ILWMZLV IMWMZLV IHWMZLV
ILWHZLV IMWHZLV IHWHZLV
ILWLZMV IMWLZMV IHWLZMV ILWMZMV IMWMZMV IHWMZMV
ILWHZMV IMWHZMV IHWHZMV
ILWLZHV IMWLZHV IHWLZHV ILWMZHV IMWMZHV IHWMZHV
ILWHZHV IMWHZHV IHWHZHV
TLWLZLV TMWLZLV THWLZLV TLWMZLV TMWMZLV THWMZLV
TLWHZLV TMWHZLV THWHZLV
TLWLZMV TMWLZMV THWLZMV TLWMZMV TMWMZMV THWMZMV
TLWHZMV TMWHZMV THWHZMV
TLWLZHV TMWLZHV THWLZHV TLWMZHV TMWMZHV THWMZHV
TLWHZHV TMWHZHV THWHZHV);
LOW_W = #LOWW;
MED_W = #MEDW;
HIGH_W = #HIGHW;
LOW_Z = #LOWZ;
MED_Z = #MEDZ;
HIGH_Z = #HIGHZ;
LOW_V = #LOWV;
MED_V = #MEDV;
HIGH_V = #HIGHV;
ILWLZLV = a1*b1 + a4*b1*LOW_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*LOW_W + a5*b3*LOW_Z*LOW_V;
IMWLZLV = a1*b1 + a4*b1*MED_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*MED_W + a5*b3*LOW_Z*LOW_V;
IHWLZLV = a1*b1 + a4*b1*HIGH_W + a5*b1*LOW_Z + a1*b3*LOW_V +
a4*b3*LOW_V*HIGH_W + a5*b3*LOW_Z*LOW_V;
...
TLWLZLV = ILWLZLV + cdash;
TMWLZLV = IMWLZLV + cdash;
THWLZLV = IHWLZLV + cdash;
...
PLOT(PLWLZLV PMWLZLV PHWLZLV PLWMZLV PMWMZLV PHWMZLV
PLWHZLV PMWHZLV PHWHZLV
PLWLZMV PMWLZMV PHWLZMV PLWMZMV PMWMZMV PHWMZMV
PLWHZMV PMWHZMV PHWHZMV
PLWLZHV PMWLZHV PHWLZHV PLWMZHV PMWMZHV PHWMZHV
PLWHZHV PMWHZHV PHWHZHV);
LOOP(XVAL,1,5,0.1);
PLWLZLV = ILWLZLV*XVAL;
PMWLZLV = IMWLZLV*XVAL;
PHWLZLV = IHWLZLV*XVAL;
...
PLOT:
TYPE = plot2;
OUTPUT:
STAND CINT(bcbootstrap);