BinomCI  R Documentation 
Compute confidence intervals for binomial proportions following the most popular methods.
(Wald, Wilson, AgrestiCoull, Jeffreys, ClopperPearson etc.)
BinomCI(x, n, conf.level = 0.95, sides = c("two.sided", "left", "right"), method = c("wilson", "wald", "waldcc", "agresticoull", "jeffreys", "modified wilson", "wilsoncc","modified jeffreys", "clopperpearson", "arcsine", "logit", "witting", "pratt", "midp", "lik", "blaker"), rand = 123, tol = 1e05)
x 
number of successes. 
n 
number of trials. 
conf.level 
confidence level, defaults to 0.95. 
sides 
a character string specifying the side of the confidence interval, must be one of 
method 
character string specifing which method to use; this can be one out of:

rand 
seed for random number generator; see details. 
tol 
tolerance for method 
All arguments are being recycled.
The Wald interval is obtained by inverting the acceptance region of the Wald largesample normal test.
The Wald with continuity correction interval is obtained by adding the term 1/(2*n) to the Wald interval.
The Wilson interval, which is the default, was introduced by Wilson (1927) and is the inversion of the CLT approximation to the family of equal tail tests of p = p0. The Wilson interval is recommended by Agresti and Coull (1998) as well as by Brown et al (2001).
The AgrestiCoull interval was proposed by Agresti and Coull (1998) and is a slight modification of the Wilson interval. The AgrestiCoull intervals are never shorter than the Wilson intervals; cf. Brown et al (2001).
The Jeffreys interval is an implementation of the equaltailed Jeffreys prior interval as given in Brown et al (2001).
The modified Wilson interval is a modification of the Wilson interval for x close to 0 or n as proposed by Brown et al (2001).
The Wilson cc interval is a modification of the Wilson interval adding a continuity correction term.
The modified Jeffreys interval is a modification of the Jeffreys interval for
x == 0  x == 1
and x == n1  x == n
as proposed by
Brown et al (2001).
The ClopperPearson interval is based on quantiles of corresponding beta distributions. This is sometimes also called exact interval.
The arcsine interval is based on the variance stabilizing distribution for the binomial distribution.
The logit interval is obtained by inverting the Wald type interval for the log odds.
The Witting interval (cf. Beispiel 2.106 in Witting (1985)) uses randomization to obtain uniformly optimal lower and upper confidence bounds (cf. Satz 2.105 in Witting (1985)) for binomial proportions.
The Pratt interval is obtained by extremely accurate normal approximation. (Pratt 1968)
The Midp approach is used to reduce the conservatism of the ClopperPearson, which is known to be very pronounced. The method midp accumulates the tail areas. The lower bound p_l is found as the solution to the equation
\frac{1}{2} f(x;n,p_l) + (1F(x;m,p_l)) = \frac{α}{2}
where f(x;n,p) denotes the probability mass function (pmf) and F(x;n,p) the (cumulative) distribution function of the binomial distribution with size n and proportion p evaluated at x. The upper bound p_u is found as the solution to the equation
\frac{1}{2} f(x;n,p_u) + F(x1;m,p_u) = \frac{α}{2}
In case x=0 then the lower bound is zero and in case x=n then the upper bound is 1.
The Likelihoodbased approach is said to be theoretically appealing. Confidence intervals are based on profiling the binomial deviance in the neighbourhood of the MLE.
For the Blaker method refer to Blaker (2000).
For more details we refer to Brown et al (2001) as well as Witting (1985).
Some approaches for the confidence intervals are capable of violating the [0, 1] boundaries and potentially yield negative results or values beyond 1. These would be truncated such as not to exceed the valid range of [0, 1].
And now, which interval should we use? The Wald interval often has inadequate coverage, particularly for small n and values of p close to 0 or 1. Conversely, the ClopperPearson Exact method is very conservative and tends to produce wider intervals than necessary. Brown et al. recommends the Wilson or Jeffreys methods for small n and AgrestiCoull, Wilson, or Jeffreys, for larger n as providing more reliable coverage than the alternatives. Also note that the point estimate for the AgrestiCoull method is slightly larger than for other methods because of the way this interval is calculated.
A vector with 3 elements for estimate, lower confidence intervall and upper for the upper one.
The base of this function once was binomCI()
from the SLmisc package. In the meantime, the code has been updated on several occasions and it has undergone numerous extensions and bug fixes.
Matthias Kohl <Matthias.Kohl@stamats.de>, Rand R. Wilcox (Pratt's method), Michael Hoehle <hoehle@math.su.se> (Midp), Ralph Scherer <shearer.ra76@gmail.com> (Blaker), Andri Signorell <andri@signorell.net> (interface issues and all the rest)
Agresti A. and Coull B.A. (1998) Approximate is better than "exact" for interval estimation of binomial proportions. American Statistician, 52, pp. 119126.
Brown L.D., Cai T.T. and Dasgupta A. (2001) Interval estimation for a binomial proportion Statistical Science, 16(2), pp. 101133.
Witting H. (1985) Mathematische Statistik I. Stuttgart: Teubner.
Pratt J. W. (1968) A normal approximation for binomial, F, Beta, and other common, related tail probabilities Journal of the American Statistical Association, 63, 1457 1483.
Wilcox, R. R. (2005) Introduction to robust estimation and hypothesis testing. Elsevier Academic Press
Newcombe, R. G. (1998) Twosided confidence intervals for the single proportion: comparison of seven methods, Statistics in Medicine, 17:857872 https://pubmed.ncbi.nlm.nih.gov/16206245/
Blaker, H. (2000) Confidence curves and improved exact confidence intervals for discrete distributions, Canadian Journal of Statistics 28 (4), 783798
binom.test
, binconf
, MultinomCI
, BinomDiffCI
, BinomRatioCI
BinomCI(x=37, n=43, method=eval(formals(BinomCI)$method)) # return all methods # the confidence interval computed by binom.test # corresponds to the ClopperPearson interval BinomCI(x=42, n=43, method="clopperpearson") binom.test(x=42, n=43)$conf.int # all arguments are being recycled: BinomCI(x=c(42, 35, 23, 22), n=43, method="wilson") BinomCI(x=c(42, 35, 23, 22), n=c(50, 60, 70, 80), method="jeffreys") # example Table I in Newcombe (1998) do.call(cbind, lapply(1:4, function(i){ Format(BinomCI(x = c(81, 15, 0, 1)[i], n = c(263, 148, 20, 29)[i], method = c("wald", "waldcc", "wilson","wilsoncc", "clopperpearson", "midp", "lik"))[, 1], digits=4) }))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.