R中二项式数据的置信区间?

25

我知道要找到区间就需要均值和标准差,但是如果问题是:

从随机选择的1,000名工人中进行调查,其中520名是女性。基于这项调查,创建一个95%置信度区间,用于表示女性工人的比例。

那么我该如何找到均值和标准差呢?


也许可以看一下这里发布的答案:https://dev59.com/bHTYa4cB1Zd3GeqPysYy - Mark Miller
4个回答

34

你也可以使用来自stats包的prop.testbinom.test

prop.test(x, n, conf.level=0.95, correct = FALSE)

        1-sample proportions test without continuity correction

data:  x out of n, null probability 0.5
X-squared = 1.6, df = 1, p-value = 0.2059
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
 0.4890177 0.5508292
sample estimates:
   p 
0.52 

您可能会对文章单比例的双侧置信区间:七种方法的比较感兴趣,在第861页的表1中给出了使用七种方法(对于选定的n和r组合)计算单个比例的不同置信区间。使用prop.test,您可以获得表格中第3行和第4行的结果,而binom.test返回第5行的结果。


好答案,而且不需要任何外部包。 - thelatemail
@thelatemail 这可能是一个愚蠢的问题,但是你如何将95% CI转换为SE,然后再转换为SD? - Alexander
prop.test给出的结果非常奇怪,如果你将其与SAS进行比较。我宁愿使用Hmisc包中的binconf(参见@Zbynek的答案),该包具有已知的置信区间计算方法。 - crow16384
链接已损坏 - Julien
@Julien 我想我找到了。我已经更新了链接。 - gd047

22
在这种情况下,您拥有二项分布,因此您将计算二项比例置信区间
在R中,您可以使用Hmisc包中的binconf()函数。
> binconf(x=520, n=1000)
 PointEst     Lower     Upper
     0.52 0.4890177 0.5508292

或者你可以自己计算:

> p <- 520/1000
> p + c(-qnorm(0.975),qnorm(0.975))*sqrt((1/1000)*p*(1-p))
[1] 0.4890345 0.5509655

6
你可以用qnorm(0.975)替换你的1.96。 - thelatemail
如果使用99%的置信区间,q-范数会是多少? - DeMelkbroer
qnorm(0.99) 是 2.326348。 - Zbynek

22

或者,使用prevalence包中的propCI函数,获取五个最常用的二项式置信区间:

> library(prevalence)
> propCI(x = 520, n = 1000)
    x    n    p        method level     lower     upper
1 520 1000 0.52 agresti.coull  0.95 0.4890176 0.5508293
2 520 1000 0.52         exact  0.95 0.4885149 0.5513671
3 520 1000 0.52      jeffreys  0.95 0.4890147 0.5508698
4 520 1000 0.52          wald  0.95 0.4890351 0.5509649
5 520 1000 0.52        wilson  0.95 0.4890177 0.5508292

6

另一个包: tolerance 将计算许多典型分布函数的置信区间/公差范围。


哇,那个名为“tolerance”的包非常全面和彻底。出色的推荐! - cmo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接