:::

小樣本的卡方檢定:費雪爾正確概率檢定 / Fisher’s Exact Test: An Example

5月 09, 2017 18 Comments Edit Copy Download

image

本學期在教卡方檢定的時候,一併研究起小樣本時SPSS時常使用的另一種卡方檢定「費雪爾正確概率檢定 (Fisher's exact test)」。這是一種用於2x2列聯表、行列的總數不超過20個、有細格期望值小於5的情況下所使用的無母數檢定法,可分析兩組類別資料之間是否有顯著相關。我翻找了許多書籍跟網頁,最後找到Ina Parks S. Howell的統計課講義「Fisher’s Exact Test: An Example」對費雪爾正確概略檢定有最詳細的介紹。內容不多,但還挺好理解的,那我就根據講義的內容,把計算過程整理一下吧。



 


問題與列聯表資料 / Question

現在學校內有「甲班」跟「乙班」兩個不同班級,兩個班級的人數都很少。但老師非常嚴格,到了期末的時候當掉了不少學生。兩個班級在學期末通過與未通過的列聯表資料如下:

COPY
POPUP
  通過 未通過 列總合
甲班 8 14 22
乙班 1 3 4
行總合 9 17 26

乍看之下,甲班只有36%的學生過關(8/22),乙班卻只有25%的學生通過(1/4)。

乙班學生非常生氣,希望能夠找到足夠的證據來證明乙班的老師過於嚴格。這時候我們就能用費雪爾正確概率檢定來計算這件事情。

假設 / Hypothesis

在此問題中的對立假設與虛無假設如下:

  • 對立假設 H1: 兩個班級的通過比例不同。
  • 虛無假設 H0:兩個班級的通過比例沒有不同。

甲班與乙班的通過與未通過是兩個獨立的二項實驗 (binomial experiments,得到結果只有「是」或「否」兩種),而且樣本數量非常小,因此我們可以使用費雪爾正確概率檢定來計算。

在本例子中的顯著水準α 設為0.05,最後費雪爾正確概率檢定計算出的機率值p值必須要小於0.05 (在講義中寫<=,但我認為是<),我們才能推翻虛無假設、接受對立假設。

列聯表定義 / Contingency Tables Definition

為了方便計算,我們有必要給列聯表的各個位置一個代號。原始資料如下:

COPY
POPUP
  通過 未通過 列總合
甲班 8 14 22
乙班 1 3 4
行總合 9 17 26

以列變項為i,行變項為j,代號如下:

COPY
POPUP
  j = 1 j = 2  
i = 1 n11 n12 n1.
i = 2 n21 n22 n2.
  n.1 n.2 n

上面為綠底的部分為細格的個數。沒有標示的n即為樣本總數。而上面標示黃底有標示「.」的總合數字,包括「n1.」、「n2.」、「n.1」、「n.2」,是為邊際總合。


計算過程 / Calculations

1. 找尋可能的細格組合 / Possible Cells

在費雪爾正確概率檢定中,假設邊際總合(黃底位置)是固定的,而細格個數(綠底)則是可能改變的數字。

這個組合要怎麼找呢?步驟如下:

  1. 找到邊際總合最小的位置,是位於n2.的「4」。其中i=2,意思是我們要考慮的是「n21」跟「n22」的組合。
  2. 「n21」跟「n22」的原始個數是(1,3)。在總合為4,不可小於0的條件下,可能有以下5種組合:(0, 4), (1, 3), (2, 2), (3, 1) 跟 (4,0)。
  3. 根據「n21」跟「n22」的組合,調整「n11」跟「n12」,即可得到5種不同的細格組合。

這5種細格組合如下,以(n11,n12,n21,n22)呈現:

  • (9, 13, 0, 4)
  • (8, 14, 1, 3) <-原始組合
  • (7, 15, 2, 2)
  • (6, 16, 3, 1)
  • (5, 17, 4, 0)
2. 計算機率值 / Probability Computing

接著我們要為每一種細格組合計算機率值,公式如下:

image

裡面的「n!」是階乘運算。此例的「n!」即為「26!」。

image

你可以用Google計算機來計算階乘。

接著我們試著將以上的5種細格組合各別機率值:

  • (9, 13, 0, 4):p = 0.159197
  • (8, 14, 1, 3):p = 0.409365<-原始組合
  • (7, 15, 2, 2):p = 0.327492
  • (6, 16, 3, 1):p = 0.095518
  • (5, 17, 4, 0):p = 0.008428

(原始講義這邊打錯,以上面我的修正為主)

3. 計算雙尾檢定的機率值p值 / Two-tailed P-Value

若要計算雙尾檢定的機率值p值,其做法如下:

  1. 找出原始組合的機率值:(8, 14, 1, 3):p = 0.409365
  2. 將所有組合的機率值小於或等於原始組合機率值加總,即可得到雙尾檢定的機率值。

0.159197 + 0.409365 + 0.327492 + 0.095518 + 0.008428 = 1

結論:雙尾檢定的機率值為1,大於0.05顯著水準,無法拒絕虛無假設。意思是兩個班級的通過比例沒有不同。

4. 計算單尾檢定的機率值p值 / One-tailed P-Value

計算單尾檢定的機率值p值比較複雜。首先我們要計算的n11期望值:(n1. * n.1) / n = ( 22 * 9 ) / 26 = 7.6。

n11個數8大於期望值7.6,因此我們要找出細格組合中大於期望值7.6的組合:

  • (9, 13, 0, 4):p = 0.159197
  • (8, 14, 1, 3):p = 0.409365<-原始組合

將以上機率值加總,即可得到單尾檢定的機率值:

0.159197 + 0.409365 = 0.568562

結論:單尾檢定的機率值為0.569,大於0.05顯著水準,一樣無法拒絕。我們不能說甲班的通過比例高過乙班。

但大部分列聯表的計算都是看有無差異的雙尾檢定,單尾檢定則不是重點就是了。


小結 / In Closing

image

image

以上計算結果與SPSS相同,費雪爾正確概率檢定計算結束。

1280px-Nice_Cup_of_Tea

話說回來,費雪爾正確概率檢定原本是費雪爾跟他的同事在玩「能不能猜出這杯奶茶是先加奶精、還是先加茶」的遊戲中,所發展出的一種小樣本統計方法,有興趣可以看看應數博黃士峰的「統計方法應用--- Fisher’s Exact Test」介紹,很有趣吧。

總共18 則留言 ( 我要發問 , 隱藏留言 顯示留言 )

  1. 是統計白癡的研究小助理2020年5月7日 下午4:37
    回覆刪除
    回覆
    1. 回覆刪除
    2. 是統計白癡的研究小助理2020年5月8日 上午10:45
      回覆刪除
    3. 是統計白癡的研究小助理2020年5月11日 上午9:52
      回覆刪除
    4. 回覆刪除
    5. 回覆刪除
    6. 回覆刪除
  2. 是統計白癡的研究小助理2020年5月14日 下午1:23
    回覆刪除
  3. 回覆刪除
  4. 回覆刪除
    回覆
    1. 回覆刪除
  5. 回覆刪除