分布均匀性的卡方检验:它可以容忍多少个零?

机器算法验证 分布 卡方检验 列联表
2022-03-24 13:34:27

我正在比较两组突变体,每组突变体只能具有 21 种不同表型中的一种。我想看看这些结果在两组之间的分布是否相似。我找到了一个在线测试 ,它计算“分布相等的卡方检验”并给了我一些似是而非的结果。但是,我在这个表中有很多零,所以在这种情况下我可以使用卡方吗?

这是包含两组和特定表型计数的表格:

2 1
2 3
1 6
1 4
13 77
7 27
0 1
0 4
0 2
2 7
2 3
1 5
1 9
2 6
0 3
3 0
1 3
0 3
1 0
1 2
0 1
2个回答

如今,在这样的桌子上进行费舍尔的“精确”测试是完全可行的。我刚刚使用 Stata 得到 p = 0.087(tabi 2 1 \ 2 3 \ .... , exact. 执行耗时 0.19 秒)。

在下面 chl 的评论后编辑(尝试添加为评论但无法格式化):

它适用于我的 R 2.12.0,尽管我不得不将“工作区”选项增加到默认值 200000 之上:

> fisher.test(x)
Error in fisher.test(x) : FEXACT error 7.
LDSTP is too small for this problem.
Try increasing the size of the workspace.
> system.time(result<-fisher.test(x, workspace = 400000))
   user  system elapsed 
   0.11    0.00    0.11 
> result$p.value
[1] 0.0866764

(执行时间比在 Stata 中稍快,但考虑到计算错误消息含义所花费的时间,这具有可疑的相关性,它使用“工作区”来表示与 R 的通常含义不同的东西,尽管 fisher.test是 R 的核心“统计”包的一部分。)

通常的准则是预期计数应大于 5,但可以稍微放宽,如下文所述:

Campbell, I, Chi-squared and Fisher-Irwin test of two-by-two tables with small sample recommendations , Statistics in Medicine (2007) 26(19): 3661–3675。

另见 Ian Campbell 的主页

请注意,在 R 中,总是有可能通过蒙特卡洛方法 (值,而不是依赖于渐近分布。pchisq.test(..., sim=TRUE)

在您的情况下,似乎大约 80% 的预期计数低于 5,40% 低于 1。聚合一些观察到的表型是否有意义?