小標本に対して 2 つのカテゴリが互いに独立しているかどうかを検定

フィッシャーの正確検定

フィッシャーの正確確率検定は、データが 2 つのカテゴリに分けられるとき、その 2 つのカテゴリが互いに独立しているかどうかを検定する方法の一つである。独立性の検定については、カイ二乗検定を用いることも可能だが、標本数が少ない時にはフィッシャーの正確確率検定を用いる。

例えば、あるシーズンにおいて、これに対して、インフルエンザ予防接種を受けなかった 532 人を追跡調査した際に、238 人が感染し、294 人が感染しなかった。予防接種を受けた 386 人のうち 121 人が感染し、265 人が感染しなかった。このデータを利用して、インフルエンザの予防接種に効果があるかどうかを検定したい。この場合、予防接種を受けたグループとそうでないグループの感染者・非感染者の割合が同じであることを帰無仮説としてフィッシャーの正確確率検定を用いる。

感染未感染合計
未接種c = 238d = 294532
接種a = 121b = 265386

フィッシャーはこのような数値の組み合わせを得られる確率 p が、幾何分布に従うことを示した。ただし、n は全調査人数で 532 + 368 = 918 である。

\[ p = \frac{(a+b)!(c+d)!(a+c)!(b+d)!}{n!a!b!c!d!} \]
dat <- matrix(c(238, 121, 294, 265), ncol = 2)
rownames(dat) <- c("uninoculated", "inoculation")
colnames(dat) <- c("infection", "uninfected")
dat
##              infection uninfected
## uninoculated       238        294
## inoculation        121        265

fisher.test(dat)
## 	Fisher's Exact Test for Count Data
## 
## data:  dat
## p-value = 3.96e-05
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##  1.335179 2.357439
## sample estimates:
## odds ratio 
##  1.771845 

別の例をもう一つ見ていく。A 群と B 群の 100 個の遺伝子について、その発現量を比較し、20 個の遺伝子が発現変動遺伝子(DEG)と決定されたとする。その 20 個の DEG についてメタ情報を調べると、そのうち 16 個が「GO:001101」というキーワードを持つことがわかった。同様に、発現変動遺伝子でない(non-DEG)についてもメタ情報を調べると、80 個の non-DEG のうち10 個だけが「GO:001101」というキーワードを持つことがわかった。これらを表にまとめると次のようになる。

DEGnon-DEG合計
GO:001101 を持つa = 16b = 1026
GO:001101 を持たないc = 4d = 7074
合計2080n = 100

上の例について、R を利用してフィッシャーの正確確率検定を行う。

dat <- matrix(c(16, 4, 10, 70), ncol = 2)
rownames(dat) <- c("has", "doesnthave")
colnames(dat) <- c("DEG", "nonDEG")
dat
##            DEG nonDEG
## has         16     10
## doesnthave   4     70

fisher.test(dat)
## 	Fisher's Exact Test for Count Data
## data:  dat
## p-value = 1.179e-08
## alternative hypothesis: true odds ratio is not equal to 1
## 95 percent confidence interval:
##    6.857215 131.566890
## sample estimates:
## odds ratio
##   26.46712

検定結果で得られる確率が p = 1.1e-08 であり、非常に小さい。すなわち、このような数値の組み合わせが得られる確率が非常に小さいといえる。DEG と non-DEG がもっている GO:001101 の数の違いは偶然にそうなったわけではない、といえる。