沙莎 (北京師範大學)
E-mail: [email protected]
背景介紹
在研究中,我們探索自變量 X 對因變量 Y 產生的影響,得到 X 和 Y 在實際或理論上的關係,進而我們試圖探索兩者之間關係的內部機制或原理,中介效應分析爲回答這一問題提供了可能性。
在本篇推文中,我們爲大家梳理出幾個廣泛使用的中介效應分析方法和實現程序,供大家參考。
1. 中介效應簡介
中介效應:通俗來說,我們分析自變量 X 對因變量 Y 產生的影響,如果變量 X 通過影響變量 M 來影響變量 Y ,那麼這個變量 M 就是中介變量。例如租客 (X) 通過中介公司 (M) 找到合適的房子 (Y),中介公司就在其中扮演了中介變量的角色,中介變量發揮的作用就稱爲中介效應。
2. 中介效應分析
中介效應分析是檢驗某一變量是否成爲中介變量,發揮何種程度中介作用的重要步驟。我們先以最簡單的單中介模型爲例來說明中介效應分析的思路,再具體介紹三種中介效應分析方法。
假設所有變量都已經中心化 (即均值爲零),可用下圖來描述變量之間的關係。圖中分爲兩個部分, 圖 1(a) 是自變量 X 作用於因變量 Y ,路徑係數爲 c 。由於不涉及第三個變量,所以係數 c 代表了自變量作用於因變量的總效應。圖 1(b) 是在控制中介變量 M 以後,自變量 x 和因變量 Y 之間的關係,其中係數 a 代表自變量作用於中介變量的效應,係數 b 表示中介變量作用於因變量的效應,兩者構成圖中變量間關係的間接效應,係數 c’ 代表考慮在控制中介變量後,自變量作用於因變量的效應,也就是自變量和因變量之間的直接效應。那麼,圖 1(b) 中的變量間總效應就應該等於直接效應加上間接效應,即總效應 = ab + c’。 將圖1 (a) 和 (b) 結合起來,我們就得到了 c= ab + c’,c 爲總效應,c’ 爲直接效應, ab 爲中介效應也稱間接效應。我們做中介效應分析就是要檢驗 ab 效應是否存在,以及它在總效應中的佔比,體現中介效應的作用程度。
2.1 逐步檢驗迴歸係數
- 逐步檢驗迴歸係數的方法分爲三步 (Baron & Kenny, 1986; Judd & Kenny, 1981;溫忠麟等,2004):
- 第一步:檢驗方程 (1) 的係數 c,也就是自變量 X 對因變量 Y 的總效應;
- 第二步:檢驗方程 (2) 的係數 a,也就是自變量 X 和 中介變量 M 的關係;
- 第三步:控制中介變量 M 後,檢驗方程 (3) 的係數 c’ 和係數 b ;
- 判定依據:
- 係數 c 顯著,即 被拒絕;
- 係數 a 顯著,即 被拒絕,且係數 b 顯著,即 被拒絕;
- 同時滿足以上兩個條件,則中介效應顯著;
- 如果在滿足以上兩個條件的同時,在方程 (3) 中,係數 c’ 不顯著,則稱爲完全中介;
- 注意事項:
- 逐步檢驗迴歸係數方法簡單易懂,是檢驗中介效應最常用的方法;
- 逐步檢驗的檢驗力在各種方法中是最低的 (Fritz & MacKinnon, 2007; Hay, 2009; MacKinnonet al., 2002)。就是說,當中介效應較弱的時候,逐步檢驗迴歸係數的方法很難檢驗出中介效應顯著,但反過來理解,溫忠麟等 (2014) 提出如果研究者用依次檢驗已經得到顯著的結果, 檢驗力低的問題就不再是問題;
- 方程 (1) 的係數 c 顯著是逐步檢驗回顧係數方法的基礎,但是這一點也受到了後來研究的挑戰,因爲在有些情況下 c 不顯著恰恰是受到了中介效應的影響。例如,工人的智力 (X) 按理說應該和工人在產線中犯得錯誤數量 (Y) 反向相關,但是數據呈現兩者之間的並不相關,也就是方程 (1) 的係數 c 不顯著。經過分析,發現是工人在工作中的無聊程度 (M) 在起作用。在所有其他條件相同的情況下,越聰明的工人會表現出越高的無聊水平,X 和 M 正相關,方程 (2) 的係數 a 符號爲正,而無聊與錯誤的數量呈正相關,M 和 Y 正相關,方程 (3) 的係數 b 符號爲正,越聰明的工人將犯越少的錯誤,即 X 和 Y 負相關,方程 (3) 的係數 c’ 符號爲負。這樣雖然中介變量在發揮作用,總效應 c (= ab + c’) 卻因爲直接效應 c’ 和間接效應 ab 的相互抵消而不再顯著,即所謂的抑制 / 遮掩模型 (Suppression model) (MacKinnon, Krull, & Lockwood, 2000)。在實踐中直接和間接效應完全抵消的情況並不常見,但是在直接和間接效應大小相似或符號相反必然存在,甚至會影響因變量和自變量之間的整體關係,所以逐步檢驗法可能會錯過一些實際存在的中介效應;
2.2 係數乘積檢驗法
檢驗係數乘積是直接針對假設 提出的檢驗方法,有多種計算公式,我們介紹兩種常用的方法。
2.2.1 Sobel 檢驗
目前最常用的就是 Sobel (1982, 1988),檢驗統計量爲 ,其中 和 分別是 a 和 b 的估計值, 的標準誤爲:
$se_{a} $ 和 分別是 和 的標準誤。
- 模擬研究發現,Sobel 法的檢驗力高於依次檢驗迴歸係數法 (MacKinnon et al., 2002; 溫忠麟等,2004),也就是說 Sobel 可以檢驗出比前者更多的中介效應,但如果兩種方法檢驗的結果都顯著,依次檢驗結果要強於 Sobel 檢驗結果 (溫忠麟等,2004);
- 檢驗係數乘積的統計量推導需要假設 服從正態分佈,這一點是很難保證的,因爲即使 和 服從正態分佈也無法保證兩者的乘積服從正態分佈,因而 Sobel 檢驗也存在一定的侷限性;
2.2.2 Bootstrap 檢驗
Bootstrap 檢驗的也是 ,它根據標準誤的理論概念,將樣本容量很大的樣本當作總體,進行有放回抽樣 (抽樣次數可以自己定),從而得到更爲準確的標準誤。例如,將一個容量爲 500 的樣本當作 Bootstrap 總體, 從中有放回地重複取樣, 可以得到一個 Bootstrap 樣本 (容量還是500)。對這 500 個 Bootstrap 樣本,可以得到 500 個係數乘積的估計值,其全體記爲 ,將它們按數值從小到大排序, 其中第 2.5 百分位點和第 97.5 百分位點就構成 ab 的一個置信度爲 95% 的置信區間,如果這個置信區間不包含 0,則說明拒絕原假設 ,係數乘積顯著 (方傑,張敏強,2012;Preacher & Hayes, 2008;Preacher, Rucker, &Hayes, 2007;溫忠麟,劉紅雲,侯傑泰,2012)
- bootstrap 的前提條件是樣本能夠代表總體;
- 模擬研究發現,與其他中介效應檢驗方法相比, Bootstrap 具有較高的統計效力,Bootstrap 法是公認的可以取代 Sobel 方法而直接檢驗係數乘積的方法 (溫忠麟,葉寶娟,2014);
2.3 係數差異檢驗法
差異係數檢驗的是 ,因爲通常情況下,,因此,乘積係數法和差異係數法的檢驗效力是基本上相同的,區別在於兩者的標準誤不同。
差異係數檢驗方法犯錯的概率要高於係數乘積檢驗法 (MacKinnon et al., 2002; 溫忠麟等,2004),很少使用。
連享會計量方法專題…… || https://gitee.com/arlionn/Course
3. 中介效應分析示例
接下來,我們藉助 Stata 自帶案例展示上述中介效應分析方法的具體操作。
3.1 調用數據並定義變量
數據基本描述:這是一組有關大型百貨公司銷售人員的數據,我們用來討論經理的激勵與員工工作表現之間的關係,基本假設是:經理的激勵 (perceived support from managers) 可能通過影響員工的工作滿意度 (job satisfaction) 而影響員工的工作表現 (job performance)。
. use "http://www.stata-press.com/data/r15/gsem_multmed" //調用數據
(Fictional job-performance data)
. summarize //查看數據分佈
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
branch | 1500 38 21.65593 1 75
support | 1500 .0084667 .5058316 -1.6 1.8
satis | 1500 .0212 .6087235 -1.6 2
perform | 1500 5.005317 .8949845 2.35022 8.084294
數據分佈可以看到,我們的樣本量爲 1500, 其中所需使用的變量爲:
- support:經理的激勵,自變量,連續變量
- perform:員工的工作表現,因變量,連續變量
- satis:員工的工作滿意度,中介變量,連續變量
3.2 多方法進行中介效應分析
接下來我們展現多種方法進行的中介效應分析程序,並分析結果。
3.2.1 逐步檢驗迴歸係數方法
逐步檢驗迴歸係數方法分爲三步:
reg perform support //分析 x 和 y 之間的關係
reg satis support //分析 x 和 m 之間的關係
reg perform satis support // 加入 m,看 x 和 y 之間的關係
第一步,reg support peform
結果顯示員工的工作表現與經理的激勵顯著相關,迴歸係數 c=0.822,可以進行下一步檢驗。
. reg perform support //第一步,查看 x 與 y 之間的關係
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 1, 1498) = 412.00
Model | 258.999482 1 258.999482 Prob > F = 0.0000
Residual | 941.695489 1498 .628635173 R-squared = 0.2157
-------------+------------------------------ Adj R-squared = 0.2152
Total | 1200.69497 1499 .800997312 Root MSE = .79287
------------------------------------------------------------------------------
perform | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
support | .8217557 .0404849 20.30 0.000 .7423427 .9011687
_cons | 4.99836 .0204746 244.13 0.000 4.958198 5.038522
------------------------------------------------------------------------------
第二步,reg satis perform
迴歸結果顯示, 經理的激勵顯著增加員工的工作滿意度,係數 a=0.229。
. reg satis support //第二步,查看 x 與 m 之間的關係
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 1, 1498) = 56.23
Model | 20.0948214 1 20.0948214 Prob > F = 0.0000
Residual | 535.351023 1498 .357377185 R-squared = 0.0362
-------------+------------------------------ Adj R-squared = 0.0355
Total | 555.445844 1499 .370544259 Root MSE = .59781
------------------------------------------------------------------------------
satis | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
support | .2288945 .0305251 7.50 0.000 .1690181 .2887709
_cons | .019262 .0154376 1.25 0.212 -.0110195 .0495436
------------------------------------------------------------------------------
第三步,reg perform satis support
在加入工作滿意度後,員工的表現和經理激勵之間的顯著關係沒有發生變化,但是係數由第一步的 c=0.822 減小到 c’=0.616,員工的工作滿意度和員工的表現之間顯著相關,係數 b=0.898,說明工作滿意度在經理激勵和員工表現之間起到了部分中介的作用。
. reg perform satis support //第三步:加入中介變量 m, 查看 x 與 y 之間的關係
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 2, 1497) = 1015.21
Model | 691.131957 2 345.565979 Prob > F = 0.0000
Residual | 509.563014 1497 .340389455 R-squared = 0.5756
-------------+------------------------------ Adj R-squared = 0.5750
Total | 1200.69497 1499 .800997312 Root MSE = .58343
------------------------------------------------------------------------------
perform | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
satis | .8984401 .0252156 35.63 0.000 .8489785 .9479017
support | .6161077 .0303447 20.30 0.000 .556585 .6756303
_cons | 4.981054 .015074 330.44 0.000 4.951486 5.010622
------------------------------------------------------------------------------
- 完整結果解讀
- 經理的激勵對員工表現的總效應是 0.822,效果顯著;
- 經理激勵對員工表現的直接效應爲 0.616,雖然結果顯著,但是影響並不大;
- 經理激勵通過工作滿意度對員工表現發揮的間接效應爲 0.206 (=0.898 * 0.229),也就是我們說的中介效應;
- 中介效應在總效應中佔比 25.02% (=0.898 * 0.229 / 0.822);
- 傳統的逐步檢驗迴歸係數方法受到了很多挑戰,建議進一步進行其他方法的檢驗,穩健中介效應效果。
3.2.2 兩步迴歸法 (two-step regression)
Zhao, Lynch et al. (2010) 對傳統的逐步檢驗迴歸係數方法提出再次思考,但其具體的步驟方法與逐步檢驗迴歸係數方法接近,只是取消了第一步中的檢驗自變量 x 和因變量 y 之間的關係,分爲兩步:
reg satis support //分析 x 和 m 之間的關係
reg perform satis support // 加入 m,看 x 和 y 之間的關係
第一步,reg satis perform
迴歸結果顯示,經理的激勵顯著增加員工的工作滿意度,係數 a=0.229。
. reg satis support //第二步,查看 x 與 m 之間的關係
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 1, 1498) = 56.23
Model | 20.0948214 1 20.0948214 Prob > F = 0.0000
Residual | 535.351023 1498 .357377185 R-squared = 0.0362
-------------+------------------------------ Adj R-squared = 0.0355
Total | 555.445844 1499 .370544259 Root MSE = .59781
------------------------------------------------------------------------------
satis | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
support | .2288945 .0305251 7.50 0.000 .1690181 .2887709
_cons | .019262 .0154376 1.25 0.212 -.0110195 .0495436
------------------------------------------------------------------------------
第二步,reg perform satis support
迴歸結果和第一種方法相同:
. reg perform satis support //第三步:加入中介變量 m, 查看 x 與 y 之間的關係
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 2, 1497) = 1015.21
Model | 691.131957 2 345.565979 Prob > F = 0.0000
Residual | 509.563014 1497 .340389455 R-squared = 0.5756
-------------+------------------------------ Adj R-squared = 0.5750
Total | 1200.69497 1499 .800997312 Root MSE = .58343
------------------------------------------------------------------------------
perform | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
satis | .8984401 .0252156 35.63 0.000 .8489785 .9479017
support | .6161077 .0303447 20.30 0.000 .556585 .6756303
_cons | 4.981054 .015074 330.44 0.000 4.951486 5.010622
------------------------------------------------------------------------------
- 完整結果解讀
- 分析結果和第一種方法幾乎一致,只是需要自己計算經理激勵對員工工作表現的總效應,總效應 = 直接效應 + 間接效應;
- 經理激勵對員工表現的直接效應爲 0.616,雖然結果顯著,但是影響並不大;
- 經理激勵通過工作滿意度對員工表現發揮的間接效應爲 0.206 (=0.898 * 0.229),也就是我們說的中介效應;
- 中介效應在總效應中佔比 25.02% (=0.898 * 0.229 / (0.616 + 0.898 * 0.229));
- 建議進一步進行檢驗,穩健中介效應效果。
3.2.3 sobel 檢驗
第一步:安裝 segmediation 命令包 findit sgmediation
findit sgmediation
原先可通過此命令下載來自 UCLA 的 segmediation 命令包,但是這個網址取消了,可通過網絡等方式獲取此命令,例如:人大經濟論壇 https://bbs.pinggu.org/thread-6354003-1-1.html
第二步:進行分析
sgmediation perform, mv(satis) iv(support)
命令會自動檢驗變量之間的關係路徑,並提供中介效應在總效應中的佔比和顯著值。如果需要加入控制變量,sgmediation y, mv(m) iv(x) cv(c)
。具體結果如下:
. sgmediation perform, mv(satis) iv(support) //用 sobel 方法檢驗中介變量
Model with dv regressed on iv (path c) //這裏,Stata 自動檢驗經理激勵和員工工作表現之間的路徑,形成路徑 c
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 1, 1498) = 412.00
Model | 258.999482 1 258.999482 Prob > F = 0.0000
Residual | 941.695489 1498 .628635173 R-squared = 0.2157
-------------+------------------------------ Adj R-squared = 0.2152
Total | 1200.69497 1499 .800997312 Root MSE = .79287
------------------------------------------------------------------------------
perform | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
support | .8217557 .0404849 20.30 0.000 .7423427 .9011687
_cons | 4.99836 .0204746 244.13 0.000 4.958198 5.038522
------------------------------------------------------------------------------
Model with mediator regressed on iv (path a) //這裏,Stata 檢驗中介變量 (工作滿意度) 與自變量 (經理激勵) 之間的關係,形成路勁 a
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 1, 1498) = 56.23
Model | 20.0948214 1 20.0948214 Prob > F = 0.0000
Residual | 535.351023 1498 .357377185 R-squared = 0.0362
-------------+------------------------------ Adj R-squared = 0.0355
Total | 555.445844 1499 .370544259 Root MSE = .59781
------------------------------------------------------------------------------
satis | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
support | .2288945 .0305251 7.50 0.000 .1690181 .2887709
_cons | .019262 .0154376 1.25 0.212 -.0110195 .0495436
------------------------------------------------------------------------------
Model with dv regressed on mediator and iv (paths b and c') //加入中介變量, Stata 再次檢驗經理支持對員工工作表現的影響
Source | SS df MS Number of obs = 1500
-------------+------------------------------ F( 2, 1497) = 1015.21
Model | 691.131957 2 345.565979 Prob > F = 0.0000
Residual | 509.563014 1497 .340389455 R-squared = 0.5756
-------------+------------------------------ Adj R-squared = 0.5750
Total | 1200.69497 1499 .800997312 Root MSE = .58343
------------------------------------------------------------------------------
perform | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
satis | .8984401 .0252156 35.63 0.000 .8489785 .9479017
support | .6161077 .0303447 20.30 0.000 .556585 .6756303
_cons | 4.981054 .015074 330.44 0.000 4.951486 5.010622
------------------------------------------------------------------------------
Sobel-Goodman Mediation Tests //進行 Sobel 檢驗,原假設 $H0 : ab=0$
Coef Std Err Z P>|Z|
Sobel .20564799 .02802571 7.338 2.172e-13 //我們需要關注這個部分的 P 值,這裏的 P<0.05 則代表拒絕原假設,中介效應成立
Goodman-1 (Aroian) .20564799 .02803628 7.335 2.216e-13
Goodman-2 .20564799 .02801514 7.341 2.127e-13
Coef Std Err Z P>|Z|
a coefficient = .228894 .030525 7.49857 6.5e-14 // 這裏分別提供了輸入命令三個變量之間的關係路徑係數
b coefficient = .89844 .025216 35.6304 0
Indirect effect = .205648 .028026 7.33783 2.2e-13
Direct effect = .616108 .030345 20.3036 0
Total effect = .821756 .040485 20.2979 0
Proportion of total effect that is mediated: .25025442 //這裏 Stata 直接幫我們計算出中介效應在總效應中的佔比 25.03%
Ratio of indirect to direct effect: .3337858
Ratio of total to direct effect: 1.3337858
- 完整結果解讀
- 經理激勵對員工工作表現的總效應,等於直接效應 0.616 加上 間接效應 0.206,總效應爲 0.822;
- 中介效應的 Sobel 檢驗 P 值小於 0.05,說明中介效應成立;
- 計算出的中介效應在總效應中佔比爲 25.03%。
3.2.4 bootstrap 檢驗
bootstrap r(ind_eff) r(dir_eff), reps(500) : ///
sgmediation perform, mv(satis) iv(support) //計算中介效應和間接效應
estat bootstrap, percentile bc //計算置信區間
bootstrap 抽樣次數可以自己設定,這裏我們設定爲 500。如下命令會計算變量間的直接效應 _bs_1
和間接效應 _bs_2
:
bootstrap r(ind_eff) r(dir_eff), reps(500) : sgmediation perform, mv(satis) iv(support)
如果需要加入控制變量,命令爲:
bootstrap r(ind_eff) r(dir_eff), reps(500) : sgmediation y, mv(m) iv(x) cv(c)
進而可以使用 estat bootstrap, percentile bc
命令計算間接效應的置信區間,根據 _bs_2
置信區間是否包含 0 判斷中介效應是否成立。具體結果如下:
. bootstrap r(ind_eff) r(dir_eff), reps(500) : sgmediation perform, mv(satis) iv(support)
// bootstrap 方法首先計算出直接效應 bs_1 和間接效應 bs_2
(running sgmediation on estimation sample)
Bootstrap replications (500)
----+--- 1 ---+--- 2 ---+--- 3 ---+--- 4 ---+--- 5
.................................................. 50
.................................................. 100
.................................................. 150
.................................................. 200
.................................................. 250
.................................................. 300
.................................................. 350
.................................................. 400
.................................................. 450
.................................................. 500
Bootstrap results Number of obs = 1500
Replications = 500
command: sgmediation perform, mv(satis) iv(support)
_bs_1: r(ind_eff) //間接效應 = 0.206
_bs_2: r(dir_eff) //直接效應 = 0.616
------------------------------------------------------------------------------
| Observed Bootstrap Normal-based
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
_bs_1 | .205648 .0282388 7.28 0.000 .150301 .260995
_bs_2 | .6161077 .0305996 20.13 0.000 .5561335 .6760818
------------------------------------------------------------------------------
. estat bootstrap, percentile bc //這裏計算直接效應和間接效應的置信區間
Bootstrap results Number of obs = 1500
Replications = 500
command: sgmediation perform, mv(satis) iv(support)
_bs_1: r(ind_eff)
_bs_2: r(dir_eff)
------------------------------------------------------------------------------
| Observed Bootstrap
| Coef. Bias Std. Err. [95% Conf. Interval]
-------------+----------------------------------------------------------------
_bs_1 | .20564799 -.0008603 .02823879 .1478535 .2641403 (P)
| .1528905 .2683623 (BC)
_bs_2 | .61610768 .0003294 .03059962 .559106 .6745357 (P) //我們需要關注這個地方的置信區間,很顯然不包含 0 ,中介效應成立
| .5592248 .6750107 (BC)
------------------------------------------------------------------------------
(P) percentile confidence interval
(BC) bias-corrected confidence interval
- 完整結果解讀
- 經理激勵對員工工作表現的總效應,等於直接效應 0.616 加上 間接效應 0.206,總效應爲 0.822,中介效應占比爲 25.06%;
- 注意:bootstrap命令有時不穩定,可能會出現 ‘r(ind_eff)’ evaluated to missing in full sample 報錯,可以通過換高版本 Stata 或者稍後再試等方法嘗試解決。
連享會計量方法專題……
3.2.5 結構方程方法
Stata 也可以通過結構方程 (sem) 或者廣義線性迴歸 (gsem) 的方式檢驗中介效應。分爲兩步:
sem (perform <- satis support) (satis <- support) //進行模型估計
estat teffects //計算中介效應
具體結果如下:
. sem (perform <- satis support) (satis <- support) //具體的模型估計
Endogenous variables
Observed: perform satis
Exogenous variables
Observed: support
Fitting target model:
Iteration 0: log likelihood = -3779.9224
Iteration 1: log likelihood = -3779.9224
Structural equation model Number of obs = 1500
Estimation method = ml
Log likelihood = -3779.9224
-------------------------------------------------------------------------------
| OIM
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
--------------+----------------------------------------------------------------
Structural |
perform <- |
satis | .8984401 .0251903 35.67 0.000 .849068 .9478123
support | .6161077 .0303143 20.32 0.000 .5566927 .6755227
_cons | 4.981054 .0150589 330.77 0.000 4.951539 5.010569
------------+----------------------------------------------------------------
satis <- |
support | .2288945 .0305047 7.50 0.000 .1691064 .2886826
_cons | .019262 .0154273 1.25 0.212 -.0109749 .0494989
--------------+----------------------------------------------------------------
var(e.perform)| .3397087 .0124044 .3162461 .364912
var(e.satis)| .3569007 .0130322 .3322507 .3833795
-------------------------------------------------------------------------------
LR test of model vs. saturated: chi2(0) = 0.00, Prob > chi2 = .
. estat teffects //效應分析
Direct effects //直接效應
------------------------------------------------------------------------------
| OIM
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
Structural |
perform <- |
satis | .8984401 .0251903 35.67 0.000 .849068 .9478123
support | .6161077 .0303143 20.32 0.000 .5566927 .6755227
-----------+----------------------------------------------------------------
satis <- |
support | .2288945 .0305047 7.50 0.000 .1691064 .2886826
------------------------------------------------------------------------------
Indirect effects //間接效應
------------------------------------------------------------------------------
| OIM
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
Structural |
perform <- |
satis | 0 (no path)
support | .205648 .0280066 7.34 0.000 .150756 .26054
-----------+----------------------------------------------------------------
satis <- |
support | 0 (no path)
------------------------------------------------------------------------------
Total effects //總效應
------------------------------------------------------------------------------
| OIM
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
Structural |
perform <- |
satis | .8984401 .0251903 35.67 0.000 .849068 .9478123
support | .8217557 .0404579 20.31 0.000 .7424597 .9010516
-----------+----------------------------------------------------------------
satis <- |
support | .2288945 .0305047 7.50 0.000 .1691064 .2886826
------------------------------------------------------------------------------
- 完整結果解讀
- 直接效應表裏,
perform <- support
的影響係數 c’ 爲 0.6161,perform <- satis
的影響係數 b 爲0.898,經理激勵對員工工作滿意度的影響來自表中的satis <- support
,係數 a 爲 0.229; - 間接效應表中,
perform <- satis support
展現的就是工作滿意度在工作經理激勵和員工工作表現之間的間接效應,係數 ab 爲 0.206; - 最後我們來看,經理激勵對員工工作表現的總效應,等於直接效應 0.616 加上 間接效應 0.206,總效應爲 0.822,中介效應占比爲 25.06%。
- 直接效應表裏,
3.3 類別變量的中介效應檢驗
通常的中介效應模型,假設自變量、中介變量和因變量均爲連續變量,對於連續變量的中介效應分析本文 3.2 中的方法均可使用。當自變量 X 爲分類變量時,可以先通過生成啞變量的方法對自變量進行處理,之後的中介效應分析方法與連續變量的步驟完全相同。但是,對於因變量 Y 爲分類變量或者中介變量 M 爲類別變量的情況,研究中使用的相對較少,下文中我們收集了幾個處理因變量 Y 或者中介變量 M 爲類別變量的分析方法。
3.3.1 廣義結構方程方法
對於因變量 Y 是二分類變量,中介變量 M 爲連續變量的情況,可以考慮使用 gsem 模型檢驗中介效應。
調用數據並定義變量
數據基本描述:這是一組有關大型百貨公司銷售人員的數據,我們用來討論經理的激勵與員工工作表現之間的關係,基本假設是:經理的激勵 (perceived support from managers) 可能通過影響員工的工作滿意度 (job satisfaction) 而影響員工的工作表現 (job performance)
下文中爲了舉例用廣義結構方程方法分析類別變量的中介效應分析,我們將因變量 Y 處理爲二分類變量
. use http://www.stata-press.com/data/r15/gsem_multmed //調用數據
(Fictional job-performance data)
. summarize //查看數據分佈
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
branch | 1500 38 21.65593 1 75
support | 1500 .0084667 .5058316 -1.6 1.8
satis | 1500 .0212 .6087235 -1.6 2
perform | 1500 5.005317 .8949845 2.35022 8.084294
. gen perform_gr2=.
(1500 missing values generated)
. replace perform_gr2=1 if perform<5
(719 real changes made)
. replace perform_gr2=2 if perform>=5&perform!=.
(781 real changes made)
. tab perform_gr2,missing //將因變量處理爲類別變量,perform_gr2=0 代表員工工作表現不好, perform_gr2=1 代表員工工作表現好
perform_gr2 | Freq. Percent Cum.
------------+-----------------------------------
1 | 719 47.93 47.93
2 | 781 52.07 100.00
------------+-----------------------------------
Total | 1,500 100.00
數據分佈可以看到,我們所需使用的變量爲:
- support:經理的激勵,自變量,連續變量
- perform_gr2:員工的工作表現,因變量 (perform_gr2=0 代表員工工作表現不好, perform_gr2=1 代表員工工作表現好)
- satis:員工的工作滿意度,中介變量,連續變量
進行模型估計
gsem (perform_gr2 <- support satis) (satis <- support) //模型估計
gsem, coeflegend` //計算效應
nlcom _b[perform_gr2:satis]*_b[satis:support] //計算間接效應
nlcom _b[perform_gr2:support]+_b[perform_gr2:satis]*_b[satis:support] //計算總效應
gsem (perform_gr2 <- support satis) (satis <- support)
先進行模型估計,nlcom _b[perform_gr2:satis]*_b[satis:support]
計算間接效應, nlcom _b[perform_gr2:support]+_b[perform_gr2:satis]*_b[satis:support]
計算總效應,具體結果如下:
. gsem (perform_gr2 <- support satis) (satis <- support) //模型估計
Iteration 0: log likelihood = -2091.094
Iteration 1: log likelihood = -2091.094
Generalized structural equation model Number of obs = 1500
Log likelihood = -2091.094
-----------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
------------------+----------------------------------------------------------------
perform_gr2 <- |
satis | .415528 .0170752 24.34 0.000 .3820612 .4489948
support | .2578802 .0205485 12.55 0.000 .2176059 .2981546
_cons | 1.509674 .0102077 147.90 0.000 1.489667 1.529681
------------------+----------------------------------------------------------------
satis <- |
support | .2288945 .0305047 7.50 0.000 .1691064 .2886826
_cons | .019262 .0154273 1.25 0.212 -.0109749 .0494989
------------------+----------------------------------------------------------------
var(e.perform_gr2)| .1560887 .0056996 .1453081 .167669
var(e.satis)| .3569007 .0130322 .3322507 .3833795
-----------------------------------------------------------------------------------
. gsem, coeflegend //計算效應
Generalized structural equation model Number of obs = 1500
Log likelihood = -2091.094
-----------------------------------------------------------------------------------
| Coef. Legend
------------------+----------------------------------------------------------------
perform_gr2 <- |
satis | .415528 _b[perform_gr2:satis]
support | .2578802 _b[perform_gr2:support]
_cons | 1.509674 _b[perform_gr2:_cons]
------------------+----------------------------------------------------------------
satis <- |
support | .2288945 _b[satis:support]
_cons | .019262 _b[satis:_cons]
------------------+----------------------------------------------------------------
var(e.perform_gr2)| .1560887 _b[var(e.perform_gr2):_cons]
var(e.satis)| .3569007 _b[var(e.satis):_cons]
-----------------------------------------------------------------------------------
. nlcom _b[perform_gr2:satis]*_b[satis:support] //直接估計間接效應,ab = 0.095,P值顯著,中介效應存在
_nl_1: _b[perform_gr2:satis]*_b[satis:support]
------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
_nl_1 | .0951121 .0132645 7.17 0.000 .0691142 .1211099
------------------------------------------------------------------------------
. nlcom _b[perform_gr2:support]+_b[perform_gr2:satis]*_b[satis:support] //計算總效應,總效應 c=0.353
_nl_1: _b[perform_gr2:support]+_b[perform_gr2:satis]*_b[satis:support]
------------------------------------------------------------------------------
| Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
_nl_1 | .3529923 .0238251 14.82 0.000 .3062959 .3996886
------------------------------------------------------------------------------
- 完整結果解讀
- 間接效應爲 0.095,雖然係數不大, 但是 P 值顯著,中介效應成立;
- 總效應爲 0.353,總效應顯著;
- 中介效應在總效應中佔比 26.99%。
3.3.2 計算置信區間 CI
對於因變量 Y 是多分類變量,中介變量 M 爲多分類變量的情況,可以考慮通過直接計算置信區間 CI 的方式進行中介效應分析。下文中我們結合 Stata 和 R 語言爲大家提供一種多階段計算置信區間 CI 的方法,用以分析類別變量的中介效應。
調用數據並定義變量
數據基本描述:這是一組有關大型百貨公司銷售人員的數據,我們用來討論經理的激勵與員工工作表現之間的關係,基本假設是:經理的激勵 (perceived support from managers) 可能通過影響員工的工作滿意度 (job satisfaction) 而影響員工的工作表現 (job performance) 。
下文中爲了解釋方便,我們將因變量 Y 處理爲三分類變量,中介變量 M 處理爲二分類變量
. use http://www.stata-press.com/data/r15/gsem_multmed //調用數據
(Fictional job-performance data)
. summarize //查看數據分佈
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
branch | 1500 38 21.65593 1 75
support | 1500 .0084667 .5058316 -1.6 1.8
satis | 1500 .0212 .6087235 -1.6 2
perform | 1500 5.005317 .8949845 2.35022 8.084294
. gen satis_gr2=.
(1500 missing values generated)
. replace satis_gr2=0 if satis<=0
(802 real changes made)
. replace satis_gr2=1 if satis>=0&satis!=.
(803 real changes made)
. tab satis_gr2,missing //將中介變量處理爲類別變量,satis_gr2=0 代表員工工作滿意度低,satis_gr2=1 代表員工工作滿意度高
satis_gr2 | Freq. Percent Cum.
------------+-----------------------------------
0 | 697 46.47 46.47
1 | 803 53.53 100.00
------------+-----------------------------------
Total | 1,500 100.00
. gen perform_gr3=.
(1500 missing values generated)
. replace perform_gr3=1 if perform<4.5
(418 real changes made)
. replace perform_gr3=2 if perform>=4.5&perform<5.5
(648 real changes made)
. replace perform_gr3=3 if perform>=5.5&perform!=.
(434 real changes made)
. tab perform_gr3,missing //將因變量處理爲類別變量,perform_gr3=1 代表員工工作表現不好, perform_gr3=2 代表員工工作表現一般,per
> form_gr3=3 代表員工工作表現優秀
perform_gr3 | Freq. Percent Cum.
------------+-----------------------------------
1 | 418 27.87 27.87
2 | 648 43.20 71.07
3 | 434 28.93 100.00
------------+-----------------------------------
Total | 1,500 100.00
數據分佈可以看到,我們的樣本量爲 1500, 其中所需使用的變量爲:
- support:經理的激勵,自變量,連續變量
- perform_gr3:員工的工作表現,因變量 ,分類變量 (perform_gr3=1 代表員工工作表現不好, perform_gr3=2 代表員工工作表現一般,perform_gr3=3 代表員工工作表現優秀)
- satis_gr2:員工的工作滿意度,中介變量,分類變量 (satis_gr2=0 代表員 工工作滿意度低,satis_gr2=1 代表員工工作滿意度高)
方法介紹
前文介紹了多種中介效應的檢驗方法,其中的一個重點在於建立置信區間 (CI),在此基礎之上檢驗中介效應。文獻中有幾種計算置信區間(CI)的方法。這些方法大致可以分爲四類:(1) the distribution of the product (e.g., MacKinnon, Fritz, Williams, & Lockwood, 2007; MacKinnon, Lockwood,Hoffman, West, & Sheets, 2002); (2) the Monte Carlo method (MacKinnon, Lockwood, & Williams, 2004); (3) resampling methods (e.g., bootstrap resampling; MacKinnon et al., 2004); (4) the asymptotic normal distribution method.
Tofighi & MacKinnon (2011) 在文章中介紹了 RMediation 程序包,可以通過 R語言實現上述多個建立置信區間檢驗中介效應的方法。
具體實施步驟
第一步,我們需要通過 Stata 對變量之間關係進行分析。這一步可以用逐步檢驗迴歸係數的方法進行,這裏我們採用 two-step regression (Zhao, Lynch et al. 2010)
logit satis_gr2 support //分析中介變量和自變量之間的關係
mlogit perform_gr3 support satis_gr2,base(1) //控制中介變量後,看自變量和因變量之間的關係
具體結果如下:
. logit satis_gr2 support
Iteration 0: log likelihood = -1035.9723
Iteration 1: log likelihood = -1022.275
Iteration 2: log likelihood = -1022.2694
Iteration 3: log likelihood = -1022.2694
Logistic regression Number of obs = 1500
LR chi2(1) = 27.41
Prob > chi2 = 0.0000
Log likelihood = -1022.2694 Pseudo R2 = 0.0132
------------------------------------------------------------------------------
satis_gr2 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
support | .5433644 .1052097 5.16 0.000 .3371572 .7495716
_cons | .13959 .0522446 2.67 0.008 .0371925 .2419875
------------------------------------------------------------------------------
. mlogit perform_gr3 support satis_gr2,base(1)
Iteration 0: log likelihood = -1616.2168
Iteration 1: log likelihood = -1313.8029
Iteration 2: log likelihood = -1280.1679
Iteration 3: log likelihood = -1279.5623
Iteration 4: log likelihood = -1279.5621
Iteration 5: log likelihood = -1279.5621
Multinomial logistic regression Number of obs = 1500
LR chi2(4) = 673.31
Prob > chi2 = 0.0000
Log likelihood = -1279.5621 Pseudo R2 = 0.2083
------------------------------------------------------------------------------
perform_gr3 | Coef. Std. Err. z P>|z| [95% Conf. Interval]
-------------+----------------------------------------------------------------
1 | (base outcome)
-------------+----------------------------------------------------------------
2 |
support | 1.362149 .1541686 8.84 0.000 1.059984 1.664314
satis_gr2 | 1.533283 .1508245 10.17 0.000 1.237673 1.828894
_cons | .0722626 .0838749 0.86 0.389 -.0921292 .2366545
-------------+----------------------------------------------------------------
3 |
support | 2.866737 .2031084 14.11 0.000 2.468651 3.264822
satis_gr2 | 3.563446 .2090607 17.05 0.000 3.153694 3.973197
_cons | -2.000543 .1634619 -12.24 0.000 -2.320922 -1.680164
------------------------------------------------------------------------------
第二步:聯網狀態,在 R 語言中安裝程序包
install.packages("RMediation")
library (package = "RMediation")
命令 install.packages("RMediation")
可以自動在網上獲取 RMediation 程序包,library (package = "RMediation")
將安裝包載入正在使用的 R 環境,具體結果如下:
> install.packages("RMediation")
試開URL’https://mirrors.tongji.edu.cn/CRAN/bin/windows/contrib/3.6/RMediation_1.1.4.zip'
Content type 'application/zip' length 96732 bytes (94 KB)
downloaded 94 KB
程序包‘RMediation’打開成功,MD5和檢查也通過
下載的二進制程序包在
C:\Users\1212\AppData\Local\Temp\Rtmp6XTJIW\downloaded_packages裏
> library (package = "RMediation")
載入需要的程輯包:MASS
載入需要的程輯包:lavaan
This is lavaan 0.6-5
lavaan is BETA software! Please report any bugs.
載入需要的程輯包:e1071
第三步,使用 R 語言 RMediation 軟件包進行計算
medci (mu.x = 0.543, mu.y = 1.533, se.x = 0.105, se.y = 0.151, rho = 0, alpha = 0.1, type = "prodclin")
medci (mu.x = 0.543, mu.y = 3.563, se.x = 0.105, se.y = 0.209, rho = 0, alpha = 0.1, type = "prodclin")
medci (mu.x = 0.543, mu.y = 1.533, se.x = 0.105, se.y = 0.151, rho = 0, alpha = 0.1, type = "prodclin")
代表,相較於員工員工表現不好,員工是否滿意對於經理激勵和員工工作表現一般的中介作用置信區間;medci (mu.x = 0.543, mu.y = 3.563, se.x = 0.105, se.y = 0.209, rho = 0, alpha = 0.1, type = "prodclin")
代表,相較於員工員工表現不好,員工是否滿意對於經理激勵和員工工作表現優秀的中介作用的置信區間。在兩個命令中,- mu.x 和 se.x 分別對應中介模型中的 a 路徑的估計值和標準誤,根據第一步 Stata 命令
logit satis_gr2 support
輸出結果,我們可以看到,mu.x = = 0.543, se.x = = 0.105 - mu.y 和 se.y 分別對應中介模型中的 b 路徑的估計值和標準誤,根據第一步 Stata 命令
mlogit perform_gr3 support satis_gr2,base(1)
輸出結果,我們可以看到,由於 因變量員工的工作表現是三分類變量,mu.y1 = = 1.533 , se.y1 = KaTeX parse error: Double subscript at position 7: se_{b}_̲1 = 0.151 , mu.y2 = = 3.563 , se.y2 = = 0.209 rho
指定兩個變量之間的相關性,默認值爲 0alpha
是置信區間 CI 的顯著性水平,默認值爲 0.05type
是類型,默認值爲 “PRODCLIN” 程序
> medci (mu.x = 0.543, mu.y = 1.533, se.x = 0.105, se.y = 0.151, rho = 0, alpha = 0.1, type = "prodclin")
$`95% CI`
[1] 0.5456374 1.1411552
$Estimate
[1] 0.832419
$SE
[1] 0.1813394
結果中,相較於員工員工表現不好,員工是否滿意對於經理激勵和員工工作表現一般的中介作用置信區間爲 (0.546, 1.141),區間不包含 0 ,中介效應成立。
> medci (mu.x = 0.543, mu.y = 3.563, se.x = 0.105, se.y = 0.209, rho = 0, alpha = 0.1, type = "prodclin")
$`95% CI`
[1] 1.301461 2.588863
$Estimate
[1] 1.934709
$SE
[1] 0.3915647
結果中,相較於員工員工表現不好,員工是否滿意對於經理激勵和員工工作表現優秀的中介作用置信區間爲 (1.301, 2.589),區間不包含 0 ,中介效應成立。
拓展:type 是類型,默認值爲 “PRODCLIN” 程序,還可選 “DOP” (RDOP 程序)、“MC” (蒙特卡羅方法)、“asymp” (AND方法) 或 “all” (使用所有四種方法)。需要注意,參數類型的值必須用單引號或雙引號括起來。
連享會計量方法專題…… https://gitee.com/arlionn/Course
4. 總結
- 中介變量是聯繫兩個自變量 x 和因變量 y 之間的紐帶,理論上來說,可以通過中介變量研究變量關係的內部機制。
- 傳統的逐步檢驗迴歸係數方法雖然受到了很多挑戰,但仍然廣泛使用,建議使用逐步檢驗迴歸係數方法檢驗出在部分中介效應的情況下,進一步使用 Bootrap 方法對中介效應進行檢驗。
- 現有研究對於類別變量的中介效應討論較少,可以通過多階段方法建立置信區間,檢驗類別變量的中介效應。
參考文獻:
- 方傑,張敏強.中介效應的點估計和區間估計:乘積分佈法、非參數 Bootstrap 和 MCMC 法 [J].心理學報,2012,44(10):1408-1420.[PDF]
- 溫忠麟,劉紅雲,侯傑泰.(2012).調節效應和中介效應分析 [M].北京:教育科學出版社.
- 溫忠麟,葉寶娟.中介效應分析:方法和模型發展 [J].心理科學進展,2014,22(05):731-745.[PDF]
- 溫忠麟,張雷,侯傑泰,劉紅雲.(2004).中介效應檢驗程序及其應用 [J].心理學報 ,36,614–620.[PDF]
- Baron, R. M., & Kenny, D. A. (1986) . The moderator-mediator variable distinction in social psychological research: Conceptual, strategic, and statistical considerations. Journal of Personality and Social Psychology, 51, 1173-1182. [PDF])
- Judd, C. M., & Kenny, D. A. (1981) . Process analysis: Estimating mediation in treatment evaluations . Evaluation Review, 5, 602-619. [PDF]
- Hayes, A. F. (2009) . Beyond Baron and Kenny: Statistical mediation analysis in the new millennium. Communication Monographs, 76, 408-420. [PDF]
- MacKinnon, D. P., Lockwood, C. M., Hoffman, J. M., West, S. G., & Sheets, V. (2002) . A comparison of methods to test mediation and other intervening variable effects. Psychological Methods, 7, 83-104. [PDF]
- MacKinnon, D. P., Lockwood, C. M., & Williams, J. (2004) . Confidence limits for the indirect effect: Distribution of the product and resampling methods. Multivariate Behavioral Research, 39, 99-128. [PDF]
- Mackinnon, D. P., Fairchild, A. J., & Fritz, M. S. (2007). Mediation analysis. Annual Review of Psychology, 58, 593-614. [PDF]
- MacKinnon, D. P., Krull, J. L., & Lockwood, C. M. (2000) . Equivalence of the mediation, confounding, and suppression effect. Prevention Science, 1, 173–181. [PDF]
- Preacher, K. J., & Hayes, A. F. (2008) . Asymptotic and resampling strategies for assessing and comparing indirect effects in multiple mediator models. Behavior Research Methods, 40(3), 879–891. [PDF]
- Preacher, K. J., Rucker, D. D., & Hayes, A. F. (2007) . Addressing moderated mediation hypotheses: Theory, methods, and prescriptions. Multivariate Behavioral Research, 42, 185–227. [PDF]
- Sobel, M. E. (1982) . Asymptotic confidence intervals for indirect effects in structural equation models. In S. Leinhardt (Ed.), Sociological methodology (pp. 290–312). Washington, DC: American Sociological Association.
- Sobel, M. E. (1988) . Direct and indirect effects on linear structural equation models. In J.S. Long (Ed.), Common problem/ proper solution (pp. 44-64).Beverly Hills, CA: Sage.
- Tofighi, D., MacKinnon, D. P. (2011) . RMediation: An R package for mediation analysis confidence intervals. Behavior Research Methods, 43, 692-700. [PDF]
- Zhao, X., et al. (2010) . Reconsidering Baron and Kenny: Myths and Truths about Mediation Analysis. Journal of Consumer Research, 37, 197-206. [PDF]
關於我們
- Stata連享會 由中山大學連玉君老師團隊創辦,定期分享實證分析經驗。
- 歡迎賜稿: 歡迎賜稿至[email protected]。錄用稿件達 三篇 以上,即可 免費 獲得一期 Stata 現場培訓資格。
- 往期精彩推文:
Stata繪圖 | 時間序列+面板數據 | Stata資源 | 數據處理+程序 | 迴歸分析-交乘項-內生性