對于做統(tǒng)計而言,軟件和代碼永遠只是工具,想要真正吃透一個分析方法,還是得從最原本的知識開始梳理。
雙因素方差分析的核心問題只有一個:怎樣將來自所有統(tǒng)計數(shù)據(jù)的偏差合理地分配到每一個可能影響實驗結(jié)果的因素上。
對ANOVA還不是很熟悉的人建議看看這一篇文章:對方差分析(ANOVA)的直觀解釋及計算,講解地很清楚。

既然是雙因素,就意味著需要考慮的影響條件有兩個,比如我們想統(tǒng)計某種藥物對人體產(chǎn)生的影響,可以通過測量不同血壓和血糖條件下的藥物濃度來判斷,此時,血壓和血糖就是兩個不同的因素,藥物濃度就是測量數(shù)據(jù)。推廣到一般情況,有A、B兩個因素的雙因素方差分析設(shè)計表如下:

上表中A因素有r個水平,B因素有s個水平。
1. 均衡設(shè)計
Two-way ANOVA之所以如此關(guān)心數(shù)據(jù)設(shè)計的均衡性,是因為不均衡的設(shè)計會造成兩個因素之間有相關(guān)性,給方差分配帶來干擾。
關(guān)于一個Two-way ANOVA的實驗設(shè)計是否均衡,其實定義很簡單,下面的表格設(shè)計就是一個完全均衡(balanced)的設(shè)計,每一個因素對應(yīng)的各自里的樣本量(20)都是一樣的。

這種設(shè)計對于方差分析來說是最理想的,然而在實際運用中很少有機會可以遇到。
再看下表這種設(shè)計,Soil因素和Woodchips因素對應(yīng)的樣本量不是完全一樣的,所以是非均衡設(shè)計,但是要注意到雖然數(shù)量不同,group因素與time因素的樣本比值是相同的(都是1.5倍),這種設(shè)計叫做unbalanced proportional design(非均衡成比例設(shè)計)。

這種設(shè)計雖然不均衡,但由于樣本量成比例,分配均方差的時候也可以成比例分配。
然后下面這個表的設(shè)計就是既不均衡,又不成比例的了,叫做unbalanced disproportional design。

這種情況下分配均方差就比較麻煩了。下面兩張PPT比較清晰地描述了不同設(shè)計之下的方差分配情況:


可以看到對于非均衡設(shè)計的數(shù)據(jù),在分配方差的時候?qū)⑷咧睾系牟糠譁p去了,思路應(yīng)該是“既然分不清該給誰,那就扔了誰都不給”。但是這個PPT沒有給出具體是怎么計算的。
以上PPT是從YouTube視頻中截取的,原視頻鏈接:Nested ANOVA?,??Factorial ANOVA
2. 基本數(shù)學模型
首先說A、B兩個因素沒有交互作用的情況,此時Two-way ANOVA的均方差SST構(gòu)成如下:
數(shù)學模型如下:

SSA是來自A因素的均方差,SSB是來自B因素的均方差,SSE是均方誤差。此時ANOVA計算表如下:

然后來說A、B兩個因素有交互作用的情況,此時Two-way ANOVA的均方差SST構(gòu)成如下:
其中SSAB是來自兩個因素交互產(chǎn)生的均方差。此時ANOVA計算表如下:

上面表格中的公式都有嚴格的推導過程,可以參考《概率論與數(shù)理統(tǒng)計》教材第九章的內(nèi)容,后續(xù)如果有時間我也會自己再詳細整理一遍。
3. 重復測量與嵌套設(shè)計
ANOVA中的重復測量問題前面簡單提過,就是如果其中一個因素的每一個水平在每個個體上都有不止一個觀察值,那么這個因素就稱為重復測量因素,或組內(nèi)因素(within subject),另一個因素則稱為組間因素(between subject),此時的ANOVA稱為repeated measure design。有時也有可能兩個因素都是within subject。
重復測量的因素之所以會被單獨考量,是因為重復對一個個體進行同一項實驗,很有可能產(chǎn)生隨機效應(yīng)(random effect),需要重新分配均方差。對待隨機效應(yīng),需要用到協(xié)方差,當然也有專門的協(xié)方差分析(ANCOVA)
嵌套設(shè)計相對來說是一種比較特殊的情況,想一想這樣一個例子:如果我想統(tǒng)計AB兩個省份每年的湖泊蒸發(fā)量,于是在A省選了4個湖泊,在B省選了4個湖泊,然后連續(xù)幾年統(tǒng)計了這些湖泊每個季度的蒸發(fā)量。那么我們想知道這兩個省的湖泊蒸發(fā)量有沒有顯著差異,但是注意到這個例子中的四個特殊情況:
????????????????1. 統(tǒng)計的湖泊里沒有一個同時在兩個省份存在。?
????????????????2. “湖泊”這個因素雖然看起來有8個水平(8個不同的湖泊),但都是在空間上隸屬于“省份”這個因素的不同水平(A省和B?。?
????????????????3. 一個省內(nèi)不止這4個湖泊,選擇4個湖泊的時候有一定的隨機性。
? ? ? ? ? ? ? ? 4. 我們關(guān)心的兩個省份之間的差異,對于各個湖泊之間的差異不是很關(guān)心。
這樣,“湖泊”這個因素對應(yīng)的統(tǒng)計數(shù)據(jù)嚴格來說不是一個獨立的測量,它是“嵌套”在“省份”這個因素里的,這就違反了普通方差分析的前提,造成數(shù)據(jù)的假重復(pseudoreplication),使自由度也顯得虛高(falsly increased df),在進行假設(shè)檢驗時會使結(jié)果出現(xiàn)假陽性,這就是嵌套設(shè)計的應(yīng)用場景。
嵌套設(shè)計的ANOVA計算表如下:

相當于是把嵌套因素當做隨機效應(yīng)來分配方差了。另外關(guān)于隨機效應(yīng),判斷一個因素是不是隨機效應(yīng)就看這個因素的不同水平是不是隨機選擇的,拿上面的例子來說,AB兩個省份是我們深思熟慮過之后選擇的兩個省份,因此省份因素帶來的是固定效應(yīng)(fixed effect);而湖泊是我們從兩個省份里隨機選擇的,換句話說,湖泊這個因素的不同水平是來自于一個更大的總體(一個省里可能有100多個湖泊),因此湖泊就是一個隨機因素,帶來的就是隨機效應(yīng)。
4. Post hoc 與 contrast
做完ANOVA,算是完成了一半,如果分析結(jié)果顯示雙因素的影響具有顯著差異,那么需要進一步知道差異的具體來源。舉例來說,當我知道不同的血糖水平對健康有顯著影響,那么我就想知道具體哪個血糖水平的影響最大。這就需要做事后分析了(post hoc),最常見的就是做多重檢驗,也就是將兩個因素的不同水平兩兩之間的所有組合都做一遍檢驗。
這里需要了解下什么叫做family-wise error rate,也就是多重比較謬誤。簡單來講,如果我們規(guī)定實驗的差異顯著閾值為5%,那么我們在一次實驗中作出錯誤判斷(Type II error,也就是假陽性)的概率是5%,看起來已經(jīng)很低了,但是,如果我們做100次實驗,那么每一次犯錯誤的概率就會疊加,到最后100%會犯錯誤,所謂“常在河邊走,哪有不濕鞋”。
下表展示了一個因素的水平數(shù)、需要做的多重檢驗數(shù)量以及對應(yīng)的錯誤率:

可以看到當多重檢驗數(shù)到91次的時候錯誤率已經(jīng)接近100%了。
Tukey's HSD是比較重用的ANOVA post hoc方法,可以通過對p值的矯正避免多重比較謬誤。關(guān)于post hoc還有很多值得研究的東西,后續(xù)會再補充一遍專門針對post hoc分析的筆記。