如果我不想合并类,对于表大于 2 x 2 且单元格计数小于 5 的分类变量的卡方检验有哪些替代方法?
大于 2 x 2 的表的独立性卡方检验的替代方案
这里有一些常见的误解。卡方检验非常适合用于大于. 为了使卡方检验统计量的实际分布接近卡方分布,传统的建议是所有单元格都有期望值. 这里必须注意两点:
观察到的细胞计数是多少并不重要——它们很可能是没有问题——只有预期的数量很重要。
现在众所周知,这种传统的经验法则过于保守。拥有它可能很好具有预期计数的细胞只要没有预期计数. 看:
- Campbell Ian,2007,2×2 表的卡方检验和 Fisher-Irwin 检验以及小样本建议,医学统计,26,3661 - 3675
如果您的预期计数与这个更准确的标准不匹配,则可以使用一些替代选项:
您最好的选择可能是模拟检验统计量的抽样分布,或使用置换检验。(但是请注意,R
chisq.test(..., simulate.p.value=TRUE)
确实是对 Fisher 精确检验的模拟——参见 #2——因此,如果您不希望这样做,则必须手动编写模拟代码。)您可以使用替代检验,例如 Fisher 精确检验。尽管在这种情况下通常建议使用 Fisher 精确检验,但值得注意的是,它做出了不同的假设,可能并不合适。也就是说,Fisher 的精确检验假设行数和列数是预先设置的,并且只有行 x 列组合的排列可以变化(请参阅:鉴于当今计算机的能力,是否有理由进行卡方检验而不是 Fisher 的精确检验?)。如果您对这个假设感到不舒服,模拟卡方将是一个更好的选择。
作为@gung 回答的补充,让我们看另一种方式:模拟无条件地检验统计量,并且与 Fisher 精确检验不同,使用条件分布(以两个边际为条件)。
例如,我将使用以下3x2 列联表中的Fisher 精确检验表:
mydat
a b c
A 2 12 1
B 5 3 1
我们必须从这个表中计算(真正估计)边际概率,然后在独立下用它来估计表的概率。然后我们在多项抽样中使用它,具有相同的样本量。
一个问题表明,一些模拟表(在这个例子中超过 10%)有一些零边距。这给计算卡方带来了问题,因为这意味着我们要除以零。然后我的 R 函数返回NaN
(不是数字)。对于下面的插图,我决定简单地删除这个值,尽管这当然值得商榷。
我得到以下模拟空分布:
用红色覆盖的是通常具有两个自由度的近似卡方分布的密度。
我们可以使用它来计算模拟的 p 值,结果0.0523
与通常的 p 值相比,由 R's 返回chisq.test
,即0.06293
。该函数的模拟选项给出的 p 值为0.04927
。
但是,在具有空边距的模拟表的情况下如何处理的问题很有趣。它表明,无条件地模拟卡方检验统计量的零分布并非没有问题。上面的结果并不是真正无条件的,它们是有条件的,没有空边距。使用Fisher精确检验,务实地避免了这个问题!