假設檢驗之F檢驗-方差分析

這一次我們來了解一下假設檢驗中另一個重要檢驗-F檢驗

什麼是F檢驗?

F檢驗(F-test),最常用的別名叫做聯合假設檢驗(英語:joint hypotheses test),此外也稱方差比率檢驗方差齊性檢驗方差分析,它是一種在(H0)之下,統計值服從的檢驗。其通常是用來分析用了超過一個參數的統計模型,以判斷該模型中的全部或一部分參數是否適合用來估計總體

F檢驗對於數據的正態性非常敏感,因此在檢驗方差齊性的時候,Levene檢驗, Bartlett檢驗或者Brown–Forsythe檢驗的穩健性都要優於F檢驗。 F檢驗還可以用於三組或者多組之間的均值比較(方差分析),但是如果被檢驗的數據無法滿足均是正態分佈的條件時,該數據的穩健型會大打折扣,特別是當顯著性水平比較低時。但是,如果數據符合正態分佈,而且alpha值至少為0.05,該檢驗的穩健型還是相當可靠的。

若兩個母體有相同的方差(方差齊性),那麼可以採用F檢驗,但是該檢驗會呈現極端的非穩健性和非常態性,可以用T、巴特勒特檢驗等取代。

在上節做獨立雙樣本T檢驗的時候,需要先判斷兩個樣本的方差是否相等,需要做方差齊性檢驗,提到了Levene檢驗,現在聊一下這個方差齊性檢驗。

方差齊性檢驗

1,什麼是方差齊性檢驗?

方差齊性檢驗是對兩樣本方差是否相同進行的檢驗。

也有好多人把方差齊性檢驗說成是F檢驗,和兩樣本平均數的差異性檢驗在假設檢驗的基本思想上是沒有什麼差異性的,只是所選擇的抽樣分佈不一樣。方差齊性檢驗所選擇的抽樣分佈為F分佈,即是F=Sx/Sy,方差齊性檢驗其實就是兩個正態總體的方差比的F檢驗。

2,為什麼要做方差齊性檢驗?

對於T檢驗而言,兩個樣本的方差是否相同決定了T統計量是否相同,我們做T檢驗的時候經常會出現F值,就是因為要做方差齊性檢驗,這兩兄弟經常一起出現。

對於方差分析,方差齊性檢驗是方差分析的重要前提,是方差可加性原則應用的一個條件。方差分析中有三條前提假設,一是:不同水平的總體方差相等。因為F檢驗對方差齊性的偏離較為敏感,故方差齊性檢驗十分必要。在線性迴歸分析中,也要滿足三條前提假設,除了方差齊性檢驗外,還有兩個是:因變量是否符合正態分佈和是否待分析的因變量中的個案彼此獨立也就是個案間不存在自相關並來自於同一個總體。對於線性迴歸分析,只是多一個需要因變量和自變量有線性趨勢。

3,方差齊性檢驗的方法

對以下三種方差齊性檢驗的方法,其原假設(H0)均為"變量的總體方差相同"

Bartlett檢驗,利用卡方檢驗,對數據有正態性要求,scipy.stats.bartlett(a, b)

Levene檢驗,在數據非正態的情況下,精度比Bartlett檢驗好。Levene檢驗這一方法更為穩健,且不依賴總體分佈,是方差齊性檢驗的首選方法。它既可用於對兩個總體方差進行齊性檢驗,也可用於對多個總體方差進行齊性檢驗,提供了python接口scipy.stats.levene(a, b, center = 'trimmed')

如下圖:生成統計量和P值。P值大於顯著性水平0.05,接受原假設,即三組數據方差無顯著性差異

假設檢驗之F檢驗-方差分析

方差分析

我們之前做的T分佈都是對兩個樣本都的均值進行比較,如果是三個、四個或者更多呢?這個時候我們需要考慮使用方差分析了。方差分析就是用來檢驗兩個或者多個樣本均值之間差異的顯著性,也就是用來研究諸多控制變量中哪些變量對觀測值有顯著的影響。

為什麼叫方差分析?

在檢驗均值之間的差異是否有統計學意義的過程中,我們實際上是從觀測變量的方差入手,通過比較方差而得到的。

方差分析的原理

方差分析認為控制變量值的變化手兩類因素的影響,第一類是控制因素的不同水平所產生的,第二類是隨機因素產生的影響,這裡的隨機因素主要是實驗過程中的抽樣誤差。

什麼是因素?所要檢驗的對象就是因素

什麼是水平?因素的不同類別或者不同取值就是因素的水平,每一個水平都可以看成一個總體

不同處理組的均數間的差別基本來源有兩個:

(1) 因子條件,即不同的因子造成的差異,稱為組間平方和。用變量在各組的均值與總均值之偏差平方和的總和表示,記作SSB

(2) 隨機誤差,如測量誤差造成的差異或個體間的差異,稱為組內平方和,用變量在各組的均值與該組內變量值之偏差平方和的總和表示,記作SSE

總偏差平方和 SST = SSB + SSE。

SSB/SSE比值構成F分佈

假設檢驗之F檢驗-方差分析

用F值與其臨界值比較,推斷各樣本是否來自相同的總體 。

根據因素的個數,可以將方差分析分為單因素方差分析和多因素方差分析兩種

單因素方差分析

原假設H0:不同因子對觀測結果沒有產生顯著性影響(不同因子對觀測量的效應同時為零)

舉個栗子:

在一個飼料養雞研究中,提出A,B,C三種飼料,為比較三種飼料的效果,選擇24只相似的雛雞隨機分為三組,各組餵養一種飼料,60天后觀察他們的重量

假設檢驗之F檢驗-方差分析

問三組飼料對養雞增重的作用是否相同?

1,使用Excel實現

假設檢驗之F檢驗-方差分析

P值為0.045432,小於0.05,所以拒絕原假設,說明三種飼料對雞增重有明顯的差別

Python實現單因素方差分析

假設檢驗之F檢驗-方差分析

結果如下:

假設檢驗之F檢驗-方差分析

說明: 上述結果中, df表示自由度; sum_sq表示平方和; mean_sq表示均方和;F表示F檢驗統計量的值,; PR(>F)表示檢驗的p值; x就是因素x ;Residuals為殘差。

其中P=0.45432,和用Excel做的一樣,拒絕原假設

python使用方差分析在特徵選擇上的應用-單變量特徵選擇

單變量特徵選擇的原理是分別單獨的計算每個變量的某個統計指標,根據該指標來判斷哪些指標重要,剔除那些不重要的指標

Python庫sklearn.feature_selection.SelectKBest(score_func,K),score_func提供了許多種統計指標,默認的是f_classif,主要用於分類任務的標籤和特性之間的方差分析。當然還有分類問題卡方檢驗(Chi2),還有迴歸問題的F檢驗(f_regression)

多因素方差分析

多因素方差分析用來研究兩個及兩個以上的控制變量是否對觀測值產生顯著的影響,不僅能夠分析多個因素對觀測值的影響,還能夠分析多個控制變量的交互作用能否對觀測值產生影響,進而找到有利於觀測值的最優組合。

在 ANOVA 呈現顯著性之後,我們很自然就想知道究竟哪些組的均值不一樣。

要回答這個問題,我們需要用到「事後檢驗」( post-hoc test )。事後檢驗的方法有很多,其中 Tukey-Kramer(又叫做 Tukey HSD)檢驗是最常用的辦法。它不僅給出 p 值,還能同時給出置信區間,方便判斷效應大小,一舉兩得。統計學裡面正好有一個分佈就是描述來自同一正態分佈的多組數據的平均值最大和最小的兩組的差距,叫做學生範圍分佈( Studentized range distribution )。Tukey-Kramer 檢驗是正是根據學生範圍分佈提出來的。

具體來講,Tukey-Kramer 檢驗會對所有組進行兩兩比較,在SPSS中單因素ANOVA或者一般線性模型中都有"兩兩比較"選項卡,勾選Tukey即為本文中提到的Tukey-Kramer方法

這裡提供python的方法

舉個栗子:

教學實驗中,採用不同的教學方法和不同的教材進行教學實驗,獲取數據分析不同教法和不同教材對教改成績的影響,數據如下:

假設檢驗之F檢驗-方差分析

假設檢驗之F檢驗-方差分析

結果如下:

假設檢驗之F檢驗-方差分析

結果顯示教法(P=0.000004)對教改成績有顯著影響,教材和教法的交互作用(P=0.016695)對教改成績有顯著影響,而教材(p=0.377)對教改成績沒有顯著影響

有必要進行事後簡單,使用tukey方法對教法進行多重比較的方法及結果:

假設檢驗之F檢驗-方差分析

結果說明:1和2的reject=False,兩種教法無顯著性差異;1和3,2和3的reject=True,說明這兩種教法有顯著性差異

說了這麼多,F分佈到底長啥樣?來最後看一下F分佈:

假設檢驗之F檢驗-方差分析

後記:

T檢驗和方差分析有什麼區別:

其方差分析和t檢驗其實相通的,在特定情況下甚至是等價的。比如要比較兩個獨立樣本的均值是否有顯著不同,在雙邊檢驗的情況下 t 檢驗算出來的 p 值與 ANOVA 算出來的 p 值相等,ANOVA 的統計檢驗量 F 正好是 t 檢驗得到的 t 值的平方。

方差分析在實際應用中使用非常廣泛。比如研究幾條不同生產線生產的同一種零件會不會有顯著差異,同一種藥物對不同年齡組的人群會不會有不同的效果,同一個城市居住在幾個不同城區的人患某種疾病的概率是不是一樣等等問題。


分享到:


相關文章: