R: Binomial confidence intervals using Bayesian inference
binom.bayes
R Documentation
Binomial confidence intervals using Bayesian inference
Description
Uses a beta prior on the probability of success for a binomial
distribution, determines a two-sided confidence interval from a beta
posterior. A plotting function is also provided to show the
probability regions defined by each confidence interval.
Vector of number of successes in the binomial experiment.
n
Vector of number of independent trials in the binomial experiment.
conf.level
The level of confidence to be used in the confidence interval.
type
The type of confidence interval (see Details).
prior.shape1
The value of the first shape parameter to be used in the prior beta.
prior.shape2
The value of the second shape parameter to be used in the prior beta.
tol
A tolerance to be used in determining the highest probability density interval.
maxit
Maximum number of iterations to be used in determining
the highest probability interval.
bayes
The output data.frame from binom.bayes.
npoints
The number of points to use to draw the density
curves. Higher numbers give smoother densities.
fill.central
The color for the central density.
fill.lower,fill.upper
The color(s) for the upper and lower
density.
alpha
The alpha value for controlling transparency.
...
Ignored.
Details
Using the conjugate beta prior on the distribution of p (the
probability of success) in a binomial experiment, constructs a
confidence interval from the beta posterior. From Bayes theorem the
posterior distribution of p given the data x is:
p|x ~ Beta(x + prior.shape1, n - x + prior.shape2)
The default prior is Jeffrey's prior which is a Beta(0.5, 0.5)
distribution. Thus the posterior mean is (x + 0.5)/(n + 1).
The default type of interval constructed is "highest" which computes
the highest probability density (hpd) interval which assures the
shortest interval possible. The hpd intervals will achieve a
probability that is within tol of the specified conf.level. Setting
type to "central" constructs intervals that have equal tail
probabilities.
If 0 or n successes are observed, a one-sided confidence interval is
returned.
Value
For binom.bayes, a data.frame containing the observed
proportions and the lower and upper bounds of the confidence interval.
For binom.bayes.densityplot, a ggplot object that can
printed to a graphics device, or have additional layers added.
Author(s)
Sundar Dorai-Raj (sdorairaj@gmail.com)
References
Gelman, A., Carlin, J. B., Stern, H. S., and Rubin, D. B. (1997)
Bayesian Data Analysis, London, U.K.: Chapman and Hall.
# Example using highest probability density.
hpd <- binom.bayes(
x = 0:10, n = 10, type = "highest", conf.level = 0.8, tol = 1e-9)
print(hpd)
binom.bayes.densityplot(hpd)
# Remove the extremes from the plot since they make things hard
# to see.
binom.bayes.densityplot(hpd[hpd$x != 0 & hpd$x != 10, ])
# Example using central probability.
central <- binom.bayes(
x = 0:10, n = 10, type = "central", conf.level = 0.8, tol = 1e-9)
print(central)
binom.bayes.densityplot(central)
# Remove the extremes from the plot since they make things hard
# to see.
binom.bayes.densityplot(central[central$x != 0 & central$x != 10, ])