Fisher Exact Test
教材里面是这么说的:
也就是说判断名义尺度的相似性(有没有统计意义上的差),可以用Fisher Exact test,也可以用χ2 test,但是什么情况下用Fisher,什么情况下用χ2呢?这篇文章里有详细说明,简单来说就是样本数量大的时候,用χ2,数量小的时候用Fisher。Fisher(フィッシャー)の正確検定(Fisher's exact test)は,分割表(クロス集計表)の各行(各列)が独立かどうかを調べる方法です。直接確率法とも呼ばれます(ref)。
这个Fisher Test是干啥用的呢?判断有没有统计意义上的差是怎么回事儿?举个例子说明:
比如,有两组药,分别给A组和B组两组患者使用,得到的结果如下,要确定两种药有没有统计学意义上的差别?
A组
|
B组
|
计
| |
死亡
|
1
|
5
|
6
|
生存
|
24
|
15
|
39
|
计
|
25
|
20
|
47
|
再比如瓶子里有4个红球和6个白球,从瓶子里拿出5个球,里面有3个红球2个白球,请问出现这种情况是否“正常”?
计算方法如下:
球色 | 红 | 白 | 红 | 白 | 红 | 白 | 红 | 白 | 红 | 白 |
取出 | 4 | 1 | 3 | 2 | 2 | 3 | 1 | 4 | 0 | 5 |
剩下 | 0 | 5 | 1 | 4 | 2 | 3 | 3 | 2 | 4 | 1 |
概率 | 0.02380952 | 0.2380952 | 0.4761905 | 0.2380952 | 0.02380952 |
※choose是R里的计算组合的函数
那么取出3个红球和2个白球的概率是0.2380952。而比这个更加极端的情况(4个红球,1个白球)的概率是0.02380952。合起来是0.2619048,这就是p-value。p-value>0.05所以接受H0(属于正常)。
在R里面也有相应的函数,fisher.test。
> fisher.test(matrix(c(3,1,2,4),nrow=2),alternative="greater")
Fisher's Exact Test for Count Data
data: matrix(c(3, 1, 2, 4), nrow = 2)
p-value = 0.2619
alternative hypothesis: true odds ratio is greater than 1
95 percent confidence interval:
0.3152217 Inf
sample estimates:
odds ratio
4.918388
当然也可以做双边测试,就是比红3白2更极端的两侧的概率(即,概率≤0.2380952)之和。
=0.02380952(红4白1)+0.2380952(红3白2)+0.2380952(红1白4)+0.02380952(红0白5)=0.5238095
在R里面计算一下:=0.02380952(红4白1)+0.2380952(红3白2)+0.2380952(红1白4)+0.02380952(红0白5)=0.5238095
> fisher.test(matrix(c(3,1,2,4),nrow=2),alternative="two.sided")
Fisher's Exact Test for Count Data
data: matrix(c(3, 1, 2, 4), nrow = 2)
p-value = 0.5238
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
0.218046 390.562917
sample estimates:
odds ratio
4.918388
0 Comments:
Post a Comment
<< Home