Binomial: Create a Binomial distribution

View source: R/Binomial.R

BinomialR Documentation

Create a Binomial distribution


Binomial distributions are used to represent situations can that can be thought as the result of n Bernoulli experiments (here the n is defined as the size of the experiment). The classical example is n independent coin flips, where each coin flip has probability p of success. In this case, the individual probability of flipping heads or tails is given by the Bernoulli(p) distribution, and the probability of having x equal results (x heads, for example), in n trials is given by the Binomial(n, p) distribution. The equation of the Binomial distribution is directly derived from the equation of the Bernoulli distribution.


Binomial(size, p = 0.5)



The number of trials. Must be an integer greater than or equal to one. When size = 1L, the Binomial distribution reduces to the bernoulli distribution. Often called n in textbooks.


The success probability for a given trial. p can be any value in [0, 1], and defaults to 0.5.


The Binomial distribution comes up when you are interested in the portion of people who do a thing. The Binomial distribution also comes up in the sign test, sometimes called the Binomial test (see stats::binom.test()), where you may need the Binomial C.D.F. to compute p-values.

We recommend reading this documentation on, where the math will render with additional detail.

In the following, let X be a Binomial random variable with parameter size = n and p = p. Some textbooks define q = 1 - p, or called π instead of p.

Support: {0, 1, 2, ..., n}

Mean: np

Variance: np (1 - p)

Probability mass function (p.m.f):

P(X = k) = choose(n, k) p^k (1 - p)^(n - k)

Cumulative distribution function (c.d.f):

P(X ≤ k) = ∑_{i=0}^k choose(n, i) p^i (1 - p)^(n-i)

Moment generating function (m.g.f):

E(e^(tX)) = (1 - p + p e^t)^n


A Binomial object.

See Also

Other discrete distributions: Bernoulli(), Categorical(), Geometric(), HurdleNegativeBinomial(), HurdlePoisson(), HyperGeometric(), Multinomial(), NegativeBinomial(), Poisson(), ZINegativeBinomial(), ZIPoisson(), ZTNegativeBinomial(), ZTPoisson()



X <- Binomial(10, 0.2)


random(X, 10)

pdf(X, 2L)
log_pdf(X, 2L)

cdf(X, 4L)
quantile(X, 0.7)

cdf(X, quantile(X, 0.7))
quantile(X, cdf(X, 7))

distributions3 documentation built on Sept. 7, 2022, 5:07 p.m.