R:prop.test - 卡方近似可能不正确

机器算法验证 r 卡方检验 二项分布 部分
2022-03-18 22:48:32

我试图比较两个人口的比例,使用prop.test

我的数据很简单——第一个人口是 6/26,第二个是 15/171。我想看看我是否有重要意义,即第一个总体中的比例大于第二个。

当我prop.test在 R 中运行时,我的代码是:

prop.test(c(6,15), c(26, 171), alternative="greater").

但是,我收到警告:

In prop.test(c(6, 15), c(26, 171), alternative = "greater") :
  Chi-squared approximation may be incorrect

我的假设是,这是基于第一个总体中的小样本量。那是对的吗?我读过这篇 文章,这似乎表明问题确实是样本量小,但提供的解决方案不适用于 prop.test。

有什么办法可以纠正这个吗?

如果没有,有什么方法可以了解卡方近似中缺乏正确性对我的 p 值的影响有多大?在这种情况下,报告的 p 值为 0.03137。我是否可以假设即使卡方近似存在潜在问题,我仍然有 95% 的置信度,或者不一定?

1个回答

警告是因为卡方中的期望值之一小于 5。

a <- c(6, 15)
b <- c(26, 171)
m <- matrix(c(a, b-a), ncol=2)
chisq.test(m)
chisq.test(m)$expected

但是,该经验法则有点保守,您可以考虑其他经验法则。有些其他的经验法则通过了,有些则没有。

除了卡方检验,还有二项式比例检验

p1 <- 6/26
n1 <- 26
p2 <- 15/171
n2 <- 171
p <- (n1 * p1 + n2 * p2)/ (n1 + n2)
z <- (p1 - p2) / sqrt(p * (1-p) * (1/n1 + 1/n2))
z

在这里,我们使用二项分布的正态近似。对于这种近似,有一个经验法则,即,这对于这两个比例都是正确的。此外,对于这两个比例,正常近似在绘制时对我来说是合理的。np>5n(1p)>5

hist(rbinom(10000, 26, 6/26))
hist(rbinom(10000, 171, 15/171))

对于该数据,二项式比例检验给出单边 p 值 = 0.0139。单边 prop.test 给出 p 值 = 0.03137。

正如@EdM 在下面的评论中提到的那样,有些人认为Fisher 的精确测试可能适合这种情况。This other page很好地参考了一些人关于Fisher精确测试的适当性,看起来这件事还没有决定。该测试给出了单侧 p 值 = 0.03963

fisher.test(m, alternative = 'greater')