線性回歸模型掏膏、中介調(diào)節(jié)模型和方差分析其實相互關(guān)聯(lián),且某種程度上都屬于一般線性模型(general linear model)敦锌。因此壤追,在統(tǒng)一的框架下梳理這三個模型可以更好地融會貫通。將不同來源的供屉、存在關(guān)聯(lián)的信息整合到綜合的知識結(jié)構(gòu)中行冰,有利于我們更系統(tǒng)地掌握一個領(lǐng)域的知識溺蕉。同時,加深對統(tǒng)計學(xué)知識的理解悼做,也能使我們避免在數(shù)據(jù)分析的過程中犯錯疯特,并更準(zhǔn)確地解讀結(jié)果。
本文假設(shè)讀者對上述三個模型以及R語言的基礎(chǔ)知識有所了解肛走,本文的目的是把三個模型放在統(tǒng)一的框架下梳理一遍漓雅。筆者并非統(tǒng)計學(xué)出身,只是由于研究中使用了這些模型朽色,因此將自己的思考分享給大家邻吞。才疏學(xué)淺,錯漏之處歡迎大家補充葫男。
線性回歸模型(Linear Regression Model)
為了偷懶不寫代碼抱冷,這里用了JASP(version 0.16.3)來展示例子。JASP是一個類似SPSS的提供GUI的統(tǒng)計分析軟件梢褐,不過它其實是基于R語言來分析數(shù)據(jù)的旺遮,對于常用的一些分析都提供了基本的設(shè)置(不過更復(fù)雜的分析就需要自己在R里面敲代碼來跑了)。
這里用的是College Success這個數(shù)據(jù)盈咳,如果你想自己嘗試的話耿眉,可以在JASP的菜單欄中找到這個數(shù)據(jù)(選擇“Open”,“Data Library”鱼响,“4. Regression”鸣剪,“College Success”,見下圖)丈积。
該數(shù)據(jù)似乎來源于Moore等人編寫的一本教科書筐骇,不過我沒有這本書,而且我們只是為了做演示桶癣,所以就大概猜測一下變量的含義。根據(jù)簡介娘锁,satm大概是SAT中的數(shù)學(xué)成績牙寞,反過來可以推斷hsm大概是高中的數(shù)學(xué)成績,gpa就是大學(xué)績點莫秆。這三個變量都是連續(xù)變量间雀。
我們先看看高中數(shù)學(xué)成績(hsm)對gpa的影響。我們將hsm作為一個covariate镊屎,gpa作為一個outcome惹挟,線性回歸分析的結(jié)果如下。
涉及到的公式如下(去掉了誤差的估計)缝驳,這里我們做的是簡單線性回歸连锯,用X來預(yù)測Y归苍。i表示截距(intercept),也就是X為0的時候Y的初始值运怖,它在某些時候是有意義的拼弃,例如當(dāng)X表示從確診到康復(fù)的時間,Y表示抑郁癥狀的水平摇展,我就可以用截距來說明患者在確診時的癥狀的嚴(yán)重程度吻氧。s表示斜率(slope),也就是我們估計的X的coefficient咏连,表示X對Y影響的程度盯孙。
先來看圖中的第一、第二個表格祟滴。在這個例子中振惰,我們假設(shè)X對Y沒有影響(H0,也就是X解釋了Y的variance的程度為0)踱启,然后用分析得到的結(jié)果和H0進(jìn)行比較报账。這里是用了ANOVA來進(jìn)行假設(shè)檢驗。
首先解釋為什么ANOVA會出現(xiàn)在回歸...(施工中)
中介調(diào)節(jié)模型
在理解了線性回歸模型的基礎(chǔ)上埠偿,我們就可以看看中介調(diào)節(jié)模型了透罢。不過這里不講調(diào)節(jié)變量,只對最簡單的一個中介模型進(jìn)行講解冠蒋。
我們還是用的剛剛的數(shù)據(jù)羽圃。我們假設(shè)高中時的數(shù)學(xué)成績影響大學(xué)入學(xué)時的數(shù)學(xué)成績,并進(jìn)而影響大學(xué)績點抖剿。假設(shè)的模型如下圖所示朽寞。
在這個模型中,a代表了x對m的影響斩郎,b代表了x不變的情況下m對y的影響脑融,c'是代表了m不變的情況下x對y的影響(direct effect)。a乘b就是“x -> m -> y“這條路徑的效應(yīng)(indirect effect缩宜,以下寫為ab或)肘迎。最后還有一個total effect,c=c'+ab锻煌,包括了x對y的direct effect(x -> y)和indirect effect(x -> m -> y)妓布。不過我還不太清楚為什么indirect effect是a*b而非a+b,希望有了解的朋友可以解釋一下宋梧。
無論如何匣沼,這也意味著indirect effect可以表示為ab = c - c'。
三者的關(guān)系可以表示如下(公式2.1和2.2)捂龄,可以看出就是線性回歸模型释涛,其中i表示截距加叁,e表示誤差。
而total effect則可以表示如下(公式2.3)枢贿。
如果我們假設(shè):
以及殉农,total effect公式中的誤差等于前兩個公式中的:
那么公式2.3可以寫為以下形式(公式2.4)。
同樣是一個線性回歸模型局荚。
既然如此超凳,現(xiàn)在來試著用線性回歸的方式來估計各路徑的系數(shù)。具體而言耀态,我們需要做兩個線性回歸模型轮傍。首先是用hsm(x)預(yù)測satm(m)(對應(yīng)公式2.1),結(jié)果如下圖所示首装〈匆梗可以得到路徑a的效應(yīng),a = 23.911仙逻,p < 0.001驰吓。
然后是在控制hsm(x)的情況下用satm(m)預(yù)測gpa(y),以及控制satm(m)的情況下用hsm(x)預(yù)測gpa(y)系奉,不過兩者的結(jié)果可以在同一個模型中查看(對應(yīng)公式2.2)檬贰,如下圖所示。得到b = 6.105e-4缺亮,p = 0.319翁涤,以及c' = 0.193,p < 0.001萌踱。
以上兩個線性回歸模型的結(jié)果就足夠了葵礼,因為我們只需要知道a、b并鸵、c'就可以算出c鸳粉。不過我們也可以順便看看用hsm(x)預(yù)測gpa(y)的結(jié)果(對應(yīng)公式2.3),如下圖所示园担。這里其實就是我們在上文線性回歸部分里的做的分析届谈。可以得到c = 0.208粉铐,p < 0.001掸冤。
最后將結(jié)果整理如下溢谤。
上圖沒有給出indirect effect梳凛,也就是ab吵取,我們可以現(xiàn)在計算看看笋婿,如下男韧。
> 23.911*6.105e-4
[1] 0.01459767
也可以通過a涝涤、b句占、c'來計算c,如下溪胶。
> 0.193+23.911*6.105e-4
[1] 0.2075977
最后用mediation analysis驗證結(jié)果搂擦,見下圖,結(jié)果是一致的哗脖。
小結(jié):中介調(diào)節(jié)模型可以被理解為通過一系列的回歸模型來探討多個變量如何通過一系列路徑或在不同條件下相互關(guān)聯(lián)的一種統(tǒng)計模型瀑踢。
順便一提,結(jié)構(gòu)方程的圖是通過如下代碼繪制的才避。
library(DiagrammeR)
code <- "digraph moderated_mediation_sem {
# Nodes
node [shape = rectangle, fontname = Arial, fontsize=12]
X [pos = '-3,1!', label = 'hsm (x)']
M [pos = '-1,2!', label = 'satm (m)']
Y [pos = '1,1!', label = 'gpa (y)']
# Edges
edge [fontname = Arial, fontsize=12]
X -> M [label = '23.911***']
M -> Y [label = '0']
X -> Y [label = 'c`=0.193***\nc=0.208***']
# Graph
graph [layout = neato, overlap = false, outputorder = edgesfirst]
}"
grViz(code) %>%
export_svg %>%
charToRaw %>%
rsvg_png("fig_example_mediation_model.png",width = 900*4, height = 300*4)
References
Hayes, A. F. (2013). Introduction to mediation, moderation, and conditional process analysis: A regression-based approach (pp. 85-122). Guilford publications.
https://github.com/peterdalle/social-science-diagrams
方差分析(Analysis of Variance, ANOVA)
簡單說就是橱夭,ANOVA可視為線性回歸模型的一種特例。然而桑逝,因為分析的目的不同棘劣,ANOVA還會涉及到許多線性回歸沒有的東西(例如assumption check,post-hoc comparison)楞遏。這也是為什么在R語言中茬暇,我們可以用aov()或者Anova()(來自car包)來分析lm()得到的結(jié)果。網(wǎng)上不少人也因此糾結(jié)究竟是用Anova()還是summary()來輸出lm()得到的模型的結(jié)果寡喝,這里其實就是涉及到應(yīng)該用ANOVA還是線性回歸來進(jìn)行統(tǒng)計分析糙俗。因此,雖然兩種模型同屬于線性模型的框架拘荡,但是應(yīng)用的場景不一樣臼节,因此具體用到的算法和報告的指標(biāo)會有所區(qū)別珊皿。
作為例子网缝,這里用的是Bear Googles這個數(shù)據(jù),如果你想自己嘗試的話蟋定,可以在JASP的菜單欄中找到這個數(shù)據(jù)(選擇“Open”粉臊,“Data Library”,“3. ANOVA”驶兜,“Bear Googles”)扼仲。
我們的自變量是FaceType(包括兩個水平,用1和0表示)抄淑,因變量是Attractiveness(連續(xù)變量屠凶,范圍從1到8)∷磷剩看名字可以大概猜到變量的含義矗愧,但是這里只是用于演示,就不展開闡述了郑原。為了能夠同時跑回歸和ANOVA唉韭,我把FaceType這個分類變量復(fù)制了一份夜涕,定義為scale尺度,相當(dāng)于用作dummy variable(見下圖)属愤。
線性回歸模型的結(jié)果見下圖女器。
方差分析的結(jié)果見下圖。
(施工中)
系數(shù)和p值
在線性回歸中住诸,我們關(guān)注的是自變量對因變量的variance的解釋的程度驾胆。也就是X變化了,Y多大程度上會變化贱呐,所以我們關(guān)注的是slope俏拱,由表格可知slope的coefficient為1.333。同時吼句,我們通過T-test來檢驗該slope是否顯著區(qū)別于0锅必。結(jié)果發(fā)現(xiàn)該slope顯著區(qū)別于0,t = 3.175, p = 0.003惕艳,所以X對Y的影響(或者說關(guān)系)是顯著的搞隐。
在ANOVA中,我們關(guān)注的是自變量的不同分組對因變量的variance的影響是否有顯著的差別远搪。因此我們關(guān)注的是組間比較的結(jié)果劣纲,由于ANOVA通常會涉及多個水平,因此用到了F-test而非T-test谁鳍,但因為我們這里的自變量只有兩個水平癞季,因此結(jié)果和T-test是一致的。t的平方 = F倘潜。
> 3.175^2
[1] 10.08062
同時绷柒,因為我們這里用到的自變量的值只有1和0...(施工中)
效應(yīng)量
R方并不會出現(xiàn)在ANOVA的結(jié)果中,相反涮因,ANOVA通常會報告eta方(eta-squared)這類效應(yīng)量指標(biāo)废睦。這是由兩種模型的側(cè)重點導(dǎo)致的。線性回歸模型關(guān)注的是預(yù)測變量多大程度上解釋了結(jié)果變量的variance养泡,這反映在R方這一指標(biāo)嗜湃。假設(shè)1代表所有variance都可以被解釋,那么我們就可以用1減去無法被解釋的variance所占的比例澜掩,來表示可解釋的variance的程度购披。其中,無法被解釋的variance用residual的平方和來表示肩榕,再加上預(yù)測變量的平方和就相當(dāng)于total variance刚陡。由此可計算出R方,如下,和表格中是一致的(為了方便和表格的結(jié)果比較橘荠,我在這里保留了三位小數(shù))。
> round(1 - 97.333 / (21.333 + 97.333), 3)
[1] 0.18
而ANOVA則通過eta方這類效應(yīng)量指標(biāo)來了解組間差異對結(jié)果的影響郎逃,這反映在eta方的計算方式哥童,也就是eta方 = 組間差異的平方和(組間差異導(dǎo)致的variance) / 總平方和(total variance),如下褒翰。
> round(21.333/(21.333+97.333), 3)
[1] 0.18
當(dāng)然贮懈,因為兩個模型都是基于相同的數(shù)據(jù)和分析思路跑出來的,所以這里得到了相同的結(jié)果优训。
小結(jié):方差分析和線性回歸模型同屬于線性模型朵你,只不過研究者基于不同的研究目的將它們用于不同的場合中,這兩種模型各自有著不同的側(cè)重點揣非。
?
----------2023.10.11更新----------
增加了線性回歸和ANOVA的部分內(nèi)容