binom.bayes

0th

Percentile

Binomial confidence intervals using Bayesian inference

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.

Keywords
models, htest, univar
Usage
binom.bayes(x, n, conf.level = 0.95, type = c("highest", "central"), prior.shape1 = 0.5, prior.shape2 = 0.5, tol = .Machine$double.eps^0.5, maxit = 1000, ...)
binom.bayes.densityplot(bayes, npoints = 500, fill.central = "lightgray", fill.lower = "steelblue", fill.upper = fill.lower, alpha = 0.8, ...)
Arguments
x
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.

References

Gelman, A., Carlin, J. B., Stern, H. S., and Rubin, D. B. (1997) Bayesian Data Analysis, London, U.K.: Chapman and Hall.

See Also

binom.confint, binom.cloglog, binom.logit, binom.probit

Aliases
  • binom.bayes
  • binom.bayes.densityplot
Examples
# 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, ])

Documentation reproduced from package binom, version 1.1-1, License: GPL

Community examples

Looks like there are no examples yet.