使用 Fisher 精确检验还是超几何检验?

机器算法验证 渔民精确测试 超几何分布
2022-04-02 09:13:06

我正在寻找集丰富的测试,我想知道 Fisher 的精确测试或超几何测试是否更合适(如果没有直接的答案,相对优点是什么)。

举个例子,我有一组 400 个对象,其中 150 个属于 A 类。我画了 50 个对象,重叠了 15 个。我可以将其布局为矩阵 (15, 50-15 , 150-15 和 400 - 50 - 150 + 15) 并使用此矩阵计算 Fisher 精确检验。或者,我可以使用 R 中的超几何分布并执行 phyper(15, 150, 400-150, 50)。

其中之一是否优于另一个,如果是,为什么?谢谢!

2个回答

超几何检验评估观察 x 个或更多“好”案例(重叠)的极端性,因此与片面的 Fisher 精确检验(其中替代假设在 R 行话中“更大”)相同。如果您不关心方向性,则可以使用双边费舍尔精确检验。

只是一条评论来显示 R 命令的结果,两种方法都是一样的。

> phyper(15, 150, 400-150, 50)
[1] 0.1549789
> fisher.test(matrix(c(15, 50-15, 150-15, 400 - 50 - 150 + 15), nr = 2),
              alternative = "less")$p.value
[1] 0.1549789