测试两个二项式比例的相等性(一个接近 100 %)

机器算法验证 假设检验 二项分布 列联表
2022-04-01 11:37:05

我正在测试两个二项式比例 87/88 和 48/60 的相等性。我使用 这个在线计算器 ,它注意到标准正态近似在这种情况下无效。这对我来说似乎很奇怪。如果其中一个比例非常接近 100%,那么在测试两个二项式比例是否相等时会出现问题吗?

2个回答

如果您相信维基百科的经验法则来判断二项分布的正态近似值的有效性:

  • 一条规则是,两者npn(1p)必须大于5. 但是,具体数字因来源而异,取决于人们想要的近似值有多好;一些消息来源给出10对于大“n”,直到“n”非常大(例如:“x=11,n=7752”),它给出的结果几乎与以下规则相同。

  • 第二条规则是n>5正态近似是足够的,如果

|(1/n)((1p)/pp/(1p))|<0.3

  • 另一个常用的规则认为,只有在其平均值的 3 个标准差内的所有内容都在可能值的范围内时,正态近似才是合适的,即如果

μ±3σ=np±3np(1p)[0,n].

所有这些都失败了p接近于0或者1. 直观的想法是,那么分布是:

  1. 非常偏斜,并且
  2. 在二项分布的实际范围之外,正态近似值太显着,[0,n].

为@Jaime +1。但正如在这种情况下发生的那样,您的零假设是两个比例都等于 (87+48)/(88+60) = 0.91 的汇总数字。对于您的样本量,这在近似值(例如 z 检验或等效卡方检验)的可接受范围内。看到下面的“预期”(意味着在相等比例的原假设下预期)矩阵中的值都大于 5,通常被接受为一个好的经验法则。

我主张将卡方检验作为一种简单的解决方案,并进行连续性校正——这与您的观点(低 p 值)一致,即共同的潜在比例不太可能产生这两组观察到的数据。

> p <- (87+48)/(88+60)
> p
[1] 0.9121622
> obs <- matrix(c(87,1,48,12), nrow=2)
> obs
     [,1] [,2]
[1,]   87   48
[2,]    1   12
> expected <- rbind(p * margin.table(obs,2),(1-p) * margin.table(obs,2))
> expected
         [,1]     [,2]
[1,] 80.27027 54.72973
[2,]  7.72973  5.27027
> chisq.test(obs)

        Pearson's Chi-squared test with Yates' continuity correction

data:  obs 
X-squared = 13.5773, df = 1, p-value = 0.0002289