二項分布檢驗和卡方檢驗的區別?

我發現有些例子既可以用卡方檢驗也可以用二項分布檢驗?

比如有現在一個問題,兩組小白鼠,分別用致癌劑A和致癌劑B處理,最後得到實驗數據甲組的未發病52例,發病19例;乙組未發病39例,發病22例,比較兩組發癌率有無差別?

對於這種例子,是否兩個檢驗都可以用?如果都可以的話,那我該怎麼選擇呢?


  • 更新

留意到 @clivesun 添加了問題的說明,想問獨立兩樣本的比例檢驗。這種情形一樣有類似結論:用近似正態分布得到的 z 值平方嚴格等於2×2列聯表獨立檢驗報告的chi^2,前者勝在可以輸出兩組比例之差的置信區間。一般而言,prop.test 報告的「比例之差/Proportions Difference」比 fisher.test 報告的「賠率之比/Odds Ratio」可讀性更好 。文末 R 代碼相應增加了對應的示例。

  • 原答

二項分布檢驗如果用正態分布近似,得到的 z 值平方將等於chi^2檢驗報告的chi^2,前者的雙尾 p 值即後者的(總是單尾的) p 值。這個道理有一個更適合用來解說的案例:方差齊性條件下的獨立兩組均值 t 檢驗,也可以做成被試間二水平(單個)因素的方差分析,t^2 = F,前者雙尾 p 值等於後者(總是單尾的)p 值。

值得一提的是,現在絕大多數軟體都支持基於二項分布精確概率的二項分布檢驗。比如,R 的 binom.test(...) 只提供基於二項分布精確概率的結果;SPSS 的二項檢驗界面提供了非預設但可改選的Exact選項如下圖。在樣本量很小的時候必須用這個選項。我個人認為任何情況都應該首先試用Exact作精確的二項分布檢驗,近似正態分布的做法只有教學意義沒有應用意義——除非是海量樣本,這種特別的場合二項分布相對正態近似的精度優勢可以忽略不計,其實點估計都夠用了,而此時二項分布的計算量和計算時間可能大到不必要。

從二水平到 k 水平,對應自由度從 1 到 k-1。在單個自由度的情況可以作置信區間。比如二水平的匹配概率檢驗(即二項分布檢驗)、2×2的列聯表檢驗(應當用 Fisher"s Exact Test 報告 Odds Ratio 置信區間)、獨立兩組均值檢驗、兩個被試間因素 2×2 的交互作用檢驗(應當直接報告第一列兩行均值之差 - 第二列兩行均值之差 的置信區間,所謂「差之差」)。

  • 從多自由度的 Omnibus Fchi^2 Test 到多重的單自由度置信區間

現在至少在心理統計學領域,方法研究圈和教學圈有一股潮流/清流鼓吹不作多自由度的 F 檢驗、chi^2檢驗,直接採用多重比較方法控制總的一類錯誤率,把多自由度的總效應直接確定到若干個單自由度的特定效應。比如連續變數,六組均值,按 2×3 的設計分在兩行三列,總的交互作用自由度為2,就可以用Tukey方法整成(寫在第三行的)三個差值兩兩之間相減的三套「差之差」置信區間;又比如三水平的屬性數據匹配度檢驗,可以直接用 Bonferroni 校正整成三個水平各自百分比的三組置信區間;再比如 2行×3列 的計數列聯表,可以直接用 Bonferroni 校正整成三個Odds(寫在第三行)兩兩之間的 Ratio 置信區間,即三套「比之比」置信區間。這個潮流的背後是優秀團隊研究經費的充溢,導致預研究階段對樣本量的預算可以更激進。各學刊審稿標準水漲船高,如果你能燒多幾倍的經費和研究生勞動力搞明白「效應出現在 k 個水平中具體的哪兩個水平」,就比只能報告「效應出現在k個水平中的某兩個水平但不知道具體是哪兩個」更優先獲得發表。

  • 一個細節:Yates" Continuity Correction

R 中基於近似正態分布的二項分布檢驗是比例檢驗 prop.test(...),留意到prop.test(...)的結果與chisq.test(...) 略有出入,差別在於 prop.test(...) 預設作 Yates 校正。在目前的版本(R3.3.2), chisq.test(...) 的代碼只處理 2×2 情形的列聯表獨立檢驗的 Yates 校正。

舉個例子,從麥金萊到老布希,23 次大選,樂觀忽悠型候選人勝出18次,悲觀謹慎型候選人勝出5次 (Zullow Seligman, 1990)

#### correct = F 不作 Yates 校正 ####################
prop.test(x = 5, n = 23, correct = F)$statistic
## X-squared
## 7.347826

(Z_asym = (5 - 0.5*23) / sqrt(23*.5*.5))^2
## [1] 7.347826

chisq.test(c(5,23-5),correct = F)$statistic
## X-squared
## 7.347826

#### Yates』 Correction #############################
chisq.test(c(5,23-5),correct = T)$statistic ##Actually No Correction
## X-squared
## 7.347826

prop.test(x = 5,n = 23, correct = T)$statistic ## Yates" Correction
## X-squared
## 6.26087

#### Z_asym ~ N(23*0.5, 23*0.5*(1-0.5)) ##############
#### 極端事件集 (悲觀勝選次數 ≤ 5) 即 (悲觀勝選次數 ≤ 5.5)
Z_yates = (5.5 - 0.5*23)/sqrt(23*.5*.5)
Z_yates ^ 2
## [1] 6.26087

#### 實際研究中應當用 binom.test,不牽涉 Yates 校正 #######
binom.test(x = 5,n = 23)
##
## Exact binomial test
##
## data: 5 and 23
## number of successes = 5, number of trials = 23, p-value = 0.01062
## alternative hypothesis: true probability of success is not equal to 0.5
## 95 percent confidence interval:
## 0.07460341 0.43703073
## sample estimates:
## probability of success
## 0.2173913

#### 題主的問題和數據,不作 Yates 校正的結果 ###############
sick2 &<- c(19,22); heal2 &<- c(52,39) chisq.test(rbind(sick2,heal2),correct = F)$statistic ## X-squared ## 1.326693 (Z_asym &<- (19/(19+52)-22/(22+39))/ sqrt( (1/(19+52)+1/(22+39))* (19+22)*(52+39)/(19+22+52+39)^2 ) )^2 ## [1] 1.326693 prop.test(x = sick2,n =sick2+heal2 ,correct = F)$statistic ## X-squared ## 1.326693 #### 題主的問題和數據,實際應用中應當作 Yates 校正 ########### chisq.test(rbind(sick2,heal2),correct = T)$statistic ## X-squared ## 0.9277272 (Z_asym &<- (19.5/(19+52)-21.5/(22+39))/ sqrt( (1/(19+52)+1/(22+39))* (19+22)*(52+39)/(19+22+52+39)^2 ) )^2 ## [1] 0.9277272 prop.test(x = sick2,n =sick2+heal2 ,correct = T)$statistic ## X-squared ## 0.9277272 prop.test(x = sick2,n =sick2+heal2 ,correct = T) ## ## 2-sample test for equality of proportions with continuity ## correction ## ## data: sick2 out of sick2 + heal2 ## X-squared = 0.92773, df = 1, p-value = 0.3355 ## alternative hypothesis: two.sided ## 95 percent confidence interval: ## -0.26679813 0.08069792 ## sample estimates: ## prop 1 prop 2 ## 0.2676056 0.3606557


僅就你的問題,來談談應該用什麼方法檢驗。你的問題是非常經典的問題,文獻中早就有了固定的做法了。我不覺得你的問題可以用二項分布檢驗。

  1. 你的問題只需要判斷致癌率是否相同。所以原假設是致癌率相同,備擇假設是致癌率不同。

  2. 考慮到你的問題中四個類別在原假設成立時,頻數都超過5(經驗規則而已,若超過10效果更好),因此完全可以用皮爾遜卡方檢驗。
  3. 若在原假設成立時,某個類別的理論頻數小於5,應該用Fisher"s Exact檢驗。當然,在任何時候用Fisher"s Exact檢驗,都是可以的。

附帶SAS程序

DATA EXAMPLE;

DO GROUP=1 TO 2 ;

DO CANCER=1 TO 2 ;

INPUT COUNT @@;

OUTPUT;

END;

END;

DATALINES;

19 52 22 39

;

PROC FREQ DATA=EXAMPLE;

WEIGHT COUNT;

TABLE GROUP*CANCER/CHISQ RISKDIFF MEASURES;

EXACT CHISQ;

run;

其中EXACT CHISQ是為了做Fisher"s Exact檢驗的。

輸出結果非常多,只需關注如下幾塊即可

這是2X2列聯表的頻數分析

這是皮爾遜卡方檢驗的結果。由於p值很大(0.2494)可以說,兩者總體致癌率沒有顯著差異。當然也可以參考0.2641這個值

下面的輸出是Fisher"s Exact檢驗的結果

上述結果中p值很大(0.2641)所以結論與皮爾遜卡方檢驗相同,不能拒絕原假設。

另外Fisher"s Exact檢驗基於的是超幾何分布。這個檢驗任何時候都可以用。參考文獻:

Agresti, A. (2007), An Introduction to Categorical Data Analysis, second edition, Wiley

請參考第2章2.4和2.6節


都可以


請問題主有答案了嗎?我也很糾結這個部分


推薦閱讀:

為什麼斷點回歸可以解決內生性問題?
經濟學研究中,哪些領域的數據搜尋比較需要爬蟲技術?
實證檢驗博弈論模型推出的結論,用reduced form的計量方法是否不合適?
如何寫好一篇計量經濟學論文?

TAG:統計學 | 統計 | 計量經濟學 | 數理統計學 |