有調節的中介在Mplus中的實現(調節直接路徑)
當一個模型中既有中介變數,又有調節變數時,如何在M
plus
中實現呢?
本文的變數均為顯變數,調節變數調節的路徑為直接效應,即X到Y的這條路徑。如果你的模型是第一階段或第二階段調節,可以參照本文略作修改。
來看下模型長啥樣,M為中介變數,W為調節變數,調節路徑為X到Y。
下面需要根據統計圖,寫出Y的方程,這方便接下來對路徑的命名以及生成新引數。
根據統計圖,我們看到調節變數W不僅自己對Y有影響,而且它和自變數X的互動項也對Y產生影響。
Y的方程為:
M的方程為:
將M帶入Y的方程中,得到:
寫成Y=aX+b的形式:
所以,X到Y的間接效應為:
a1b1
依賴W的情況下,X到Y的直接效應為:
下面,我們來寫語句
USEVARIABLES = X M W Y XW;
! 本次分析需要使用到的變數,互動項寫在最後
DEFINE: XW = X*W;
!定義互動項是自變數X和調節變數的乘積
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
BOOTSTRAP = 2000;
!確定Bootstrap抽樣數
MODEL:
[Y] (b0);
!Y方程的截距為b0
Y ON M (b1);
!M到Y的路徑係數命名為b1,這是中介變數到因變數的路徑
Y ON X (cdash1);
!X到Y的路徑係數命名為c1‘,這是自變數到因變數的路徑
Y ON W (cdash2);
!調節變數W到因變數Y的路徑命名為c2’
Y ON XW (cdash3);
! 互動項XW到因變數Y的路徑命名為c3‘
[M] (a0);
!M方程的截距命名為a0
M ON X (a1);
!自變數X到中介變數M的路徑命名為a1
MODEL CONSTRAINT:
NEW(LOW_W MED_W HIGH_W a1b1 DIR_LO DIR_MED DIR_HI TOT_LO TOT_MED TOT_HI);
!生成新引數,選取調節變數的低中高3個水平,如均值(Mean)及上下一個標準差(+-SD)
LOW_W = #LOWW;
!用低水平的調節變數值替換#LOWW,如Mean-1SD,這裡需要自己計算
MED_W = #MEDW;
!用中等水平的調節變數值替換#MEDW,如Mean
HIGH_W = #HIGHW;
!用高水平的調節變數值替換#HIGHW,如Mean+1SD
a1b1 = a1b1;
! 計算中介效應a*b,然後計算調節變數W的不同水平下的conditional direct effects,下面公式如有疑問需參考文章開始時對照統計圖寫的方程
DIR_LO = cdash1 + cdash3*LOW_W;
!在低水平的W下,X到Y的直接效應
DIR_MED = cdash1 + cdash3*MED_W;
!在中等水平的W下,X到Y的直接效應
DIR_HI = cdash1 + cdash3*HIGH_W;
!在高水平的W下,X到Y的直接效應
TOT_LO = DIR_LO + a1b1;
!在低水平的W下,X到Y的總效應
TOT_MED = DIR_MED + a1b1;
!在中等水平的W下,X到Y的總效應
TOT_HI = DIR_HI + a1b1;
!在高水平的W下,X到Y的總效應
!使用PLOT LOOP命令畫出在不同水平的W下,X到Y總效應的圖,三個水平正好對應三張圖,M
plus
可以將三張圖顯示在一張圖中,所以不用擔心3張圖怎麼拼
PLOT(LOMOD MEDMOD HIMOD);
LOOP(XVAL,1,5,0.1);
!1和5指的是畫圖時X軸的範圍,0。1為增量,也就是說從1開始繪圖,每隔0。1繪一次,一直繪到5停止,這裡的範圍和增量都可以根據自己的需求做替換
!還記得一開始寫的Y方程嗎,
!對照著這個方程,寫出在不同水平的W下,Y的方程。其中第二個括號中的內容其實就是中介效應+直接效應,也就是總效應
LOMOD = (b0 + a0*b1 + cdash2*LOW_W) + TOT_LO*XVAL;
MEDMOD = (b0 + a0*b1 + cdash2*MED_W) + TOT_MED*XVAL;
HIMOD = (b0 + a0*b1 + cdash2*HIGH_W) + TOT_HI*XVAL;
PLOT:
TYPE = plot2;
OUTPUT: STAND CINT(bcbootstrap);
!輸出結果
附本次分析的有調節的中介模型(顯變數,調節直接路徑)語句:
USEVARIABLES = X M W Y XW;
DEFINE: XW = X*W;
ANALYSIS:
TYPE = GENERAL;
ESTIMATOR = ML;
BOOTSTRAP = 2000;
MODEL:
[Y] (b0);
Y ON M (b1);
Y ON X (cdash1);
Y ON W (cdash2);
Y ON XW (cdash3);
[M] (a0);
M ON X (a1);
MODEL CONSTRAINT:
NEW(LOW_W MED_W HIGH_W a1b1 DIR_LO DIR_MED DIR_HI TOT_LO TOT_MED TOT_HI);
LOW_W = #LOWW;
MED_W = #MEDW;
HIGH_W = #HIGHW;
a1b1 = a1b1;
DIR_LO = cdash1 + cdash3*LOW_W;
DIR_MED = cdash1 + cdash3*MED_W;
DIR_HI = cdash1 + cdash3*HIGH_W;
TOT_LO = DIR_LO + a1b1;
TOT_MED = DIR_MED + a1b1;
TOT_HI = DIR_HI + a1b1;
LOOP(XVAL,1,5,0。1);
LOMOD = (b0 + a0*b1 + cdash2*LOW_W) + TOT_LO*XVAL;
MEDMOD = (b0 + a0*b1 + cdash2*MED_W) + TOT_MED*XVAL;
HIMOD = (b0 + a0*b1 + cdash2*HIGH_W) + TOT_HI*XVAL;
PLOT:
TYPE = plot2;
OUTPUT: STAND CINT(bcbootstrap);
參考文獻:
Stride, C。B。, Gardner, S。, Catley, N。 & Thomas, F。(2015) ’Mplus code for the mediation, moderation, and moderated mediation model templates from Andrew Hayes‘ PROCESS analysis examples’, http://www。offbeat。group。shef。ac。uk/FIO/mplusmedmod。htm