Binomial
The Binomial Distribution
Description
Density, distribution function, quantile function and random generation for the binomial distribution with parameters size
and prob
.
This is conventionally interpreted as the number of ‘successes’ in size
trials.
Usage
dbinom(x, size, prob, log = FALSE) pbinom(q, size, prob, lower.tail = TRUE, log.p = FALSE) qbinom(p, size, prob, lower.tail = TRUE, log.p = FALSE) rbinom(n, size, prob)
Arguments
x, q | vector of quantiles. |
p | vector of probabilities. |
n | number of observations. If |
size | number of trials (zero or more). |
prob | probability of success on each trial. |
log, log.p | logical; if TRUE, probabilities p are given as log(p). |
lower.tail | logical; if TRUE (default), probabilities are P[X ≤ x], otherwise, P[X > x]. |
Details
The binomial distribution with size
= n and prob
= p has density
p(x) = choose(n, x) p^x (1-p)^(n-x)
for x = 0, …, n. Note that binomial coefficients can be computed by choose
in R.
If an element of x
is not integer, the result of dbinom
is zero, with a warning.
p(x) is computed using Loader's algorithm, see the reference below.
The quantile is defined as the smallest value x such that F(x) ≥ p, where F is the distribution function.
Value
dbinom
gives the density, pbinom
gives the distribution function, qbinom
gives the quantile function and rbinom
generates random deviates.
If size
is not an integer, NaN
is returned.
The length of the result is determined by n
for rbinom
, and is the maximum of the lengths of the numerical arguments for the other functions.
The numerical arguments other than n
are recycled to the length of the result. Only the first elements of the logical arguments are used.
Source
For dbinom
a saddle-point expansion is used: see
Catherine Loader (2000). Fast and Accurate Computation of Binomial Probabilities; available as https://www.r-project.org/doc/reports/CLoader-dbinom-2002.pdf
pbinom
uses pbeta
.
qbinom
uses the Cornish–Fisher Expansion to include a skewness correction to a normal approximation, followed by a search.
rbinom
(for size < .Machine$integer.max
) is based on
Kachitvichyanukul, V. and Schmeiser, B. W. (1988) Binomial random variate generation. Communications of the ACM, 31, 216–222.
For larger values it uses inversion.
See Also
Distributions for other standard distributions, including dnbinom
for the negative binomial, and dpois
for the Poisson distribution.
Examples
require(graphics) # Compute P(45 < X < 55) for X Binomial(100,0.5) sum(dbinom(46:54, 100, 0.5)) ## Using "log = TRUE" for an extended range : n <- 2000 k <- seq(0, n, by = 20) plot (k, dbinom(k, n, pi/10, log = TRUE), type = "l", ylab = "log density", main = "dbinom(*, log=TRUE) is better than log(dbinom(*))") lines(k, log(dbinom(k, n, pi/10)), col = "red", lwd = 2) ## extreme points are omitted since dbinom gives 0. mtext("dbinom(k, log=TRUE)", adj = 0) mtext("extended range", adj = 0, line = -1, font = 4) mtext("log(dbinom(k))", col = "red", adj = 1)
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.