Confidence interval for binomial data in R?
Alternatively, use function propCI
from the prevalence
package, to get the five most commonly used binomial confidence intervals:
> 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
In this case, you have binomial distribution, so you will be calculating binomial proportion confidence interval.
In R, you can use binconf()
from package Hmisc
> binconf(x=520, n=1000)
PointEst Lower Upper
0.52 0.4890177 0.5508292
Or you can calculate it yourself:
> p <- 520/1000
> p + c(-qnorm(0.975),qnorm(0.975))*sqrt((1/1000)*p*(1-p))
[1] 0.4890345 0.5509655
You can also use prop.test
from package stats
, or binom.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
You may find interesting this article, where in Table 1 on page 861 are given different confidence intervals, for a single proportion, calculated using seven methods (for selected combinations of n and r). Using prop.test
you can get the results found in rows 3 and 4 of the table, while binom.test
returns what you see in row 5.