Multinomial: Create a Multinomial distribution

View source: R/Multinomial.R

MultinomialR Documentation

Create a Multinomial distribution


The multinomial distribution is a generalization of the binomial distribution to multiple categories. It is perhaps easiest to think that we first extend a Bernoulli() distribution to include more than two categories, resulting in a Categorical() distribution. We then extend repeat the Categorical experiment several (n) times.


Multinomial(size, p)



The number of trials. Must be an integer greater than or equal to one. When size = 1L, the Multinomial distribution reduces to the categorical distribution (also called the discrete uniform). Often called n in textbooks.


A vector of success probabilities for each trial. p can take on any positive value, and the vector is normalized internally.


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

In the following, let X = (X_1, ..., X_k) be a Multinomial random variable with success probability p = p. Note that p is vector with k elements that sum to one. Assume that we repeat the Categorical experiment size = n times.

Support: Each X_i is in {0, 1, 2, ..., n}.

Mean: The mean of X_i is n p_i.

Variance: The variance of X_i is n p_i (1 - p_i). For i \neq j, the covariance of X_i and X_j is -n p_i p_j.

Probability mass function (p.m.f):

P(X_1 = x_1, ..., X_k = x_k) = n! / (x_1! x_2! ... x_k!) p_1^x_1 p_2^x_2 ... p_k^x_k

Cumulative distribution function (c.d.f):

Omitted for multivariate random variables for the time being.

Moment generating function (m.g.f):

E(e^(tX)) = (p_1 e^t_1 + p_2 e^t_2 + ... + p_k e^t_k)^n


A Multinomial object.

See Also

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



X <- Multinomial(size = 5, p = c(0.3, 0.4, 0.2, 0.1))

random(X, 10)

# pdf(X, 2)
# log_pdf(X, 2)

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