# Binomial

##### The Binomial Distribution

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.

- Keywords
- distribution

##### 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
`length(n) > 1`

, the length is taken to be the number required. - 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 \le x]$, otherwise, $P[X > x]$.

##### Details

The binomial distribution with `size`

$= n$ and
`prob`

$= p$ has density
$$p(x) = {n \choose x} {p}^{x} {(1-p)}^{n-x}$$
for $x = 0, \ldots, 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) \ge 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 from
http://www.herine.net/stat/software/dbinom.html. `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

`library(stats)`

```
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)
```

*Documentation reproduced from package stats, version 3.2.5, License: Part of R 3.2.5*