Skip to Content

# Binomial {stats}

The Binomial Distribution
Package:
stats
Version:
R 3.0.2

### Description

Density, distribution function, quantile function and random generation for the binomial distribution with parameters `size` and `prob`.

### 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 ≤ x], otherwise, P[X > x].

### Details

The binomial distribution with `size` = n and `prob` = p has density 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.

### Values

`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 parameters for the other functions. The numerical parameters other than `n` are recycled to the length of the result. Only the first elements of the logical parameters are used.

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

Documentation reproduced from R 3.0.2. License: GPL-2.