Learn R Programming

distr6 (version 1.3.6)

Multinomial: Multinomial Distribution Class

Description

Mathematical and statistical functions for the Multinomial distribution, which is commonly used to extend the binomial distribution to multiple variables, for example to model the rolls of multiple dice multiple times.

Value

Returns an R6 object inheriting from class SDistribution.

Constructor

Multinomial$new(size = 10, probs = c(0.5, 0.5), decorators = NULL, verbose = FALSE)

Constructor Arguments

Argument Type Details
size numeric number of trials. See details.
probs numeric vector of probabilities. See details.

decorators Decorator decorators to add functionality. See details.

Constructor Details

The Multinomial distribution is parameterised with size as a positive whole number and probs as a vector of numerics between 0 and 1. The length of the probability vector, \(K\), tells the constructor how many arguments to expect to be passed to the maths/stats methods. The probability vector is automatically normalised with $$probs = probs/sum(probs)$$.

Public Variables

Variable Return
name Name of distribution.
short_name Id of distribution.
description Brief description of distribution.

Public Methods

Accessor Methods Link
decorators decorators
traits traits
valueSupport valueSupport
variateForm variateForm
type type
properties properties
support support
symmetry symmetry
sup sup
inf inf
dmax dmax
dmin dmin
skewnessType skewnessType
kurtosisType kurtosisType

Statistical Methods Link pdf(x1, ..., log = FALSE, simplify = TRUE) pdf cdf(x1, ..., lower.tail = TRUE, log.p = FALSE, simplify = TRUE) cdf quantile(p, ..., lower.tail = TRUE, log.p = FALSE, simplify = TRUE) quantile.Distribution rand(n, simplify = TRUE) rand mean() mean.Distribution variance() variance stdev() stdev prec() prec cor() cor skewness() skewness kurtosis(excess = TRUE) kurtosis entropy(base = 2) entropy mgf(t) mgf cf(t) cf pgf(z) pgf median() median.Distribution iqr() iqr mode(which = "all") mode

Parameter Methods Link parameters(id) parameters getParameterValue(id, error = "warn") getParameterValue setParameterValue(..., lst = NULL, error = "warn") setParameterValue

Validation Methods Link liesInSupport(x, all = TRUE, bound = FALSE) liesInSupport liesInType(x, all = TRUE, bound = FALSE) liesInType

Representation Methods Link strprint(n = 2) strprint print(n = 2) print summary(full = T) summary.Distribution

Details

The Multinomial distribution parameterised with number of trials, \(n\), and probabilities of success, \(p_1,...,p_k\), is defined by the pmf, $$f(x_1,x_2,\ldots,x_k) = n!/(x_1! * x_2! * \ldots * x_k!) * p_1^{x_1} * p_2^{x_2} * \ldots * p_k^{x_k}$$ for \(p_i, i = {1,\ldots,k}; \sum p_i = 1\) and \(n = {1,2,\ldots}\).

The distribution is supported on \(\sum x_i = N\).

cdf and quantile are omitted as no closed form analytic expression could be found, decorate with FunctionImputation for a numerical imputation.

References

McLaughlin, M. P. (2001). A compendium of common probability distributions (pp. 2014-01). Michael P. McLaughlin.

See Also

listDistributions for all available distributions. Binomial for a special case of the Multinomial distribution. FunctionImputation to numerically impute d/p/q/r.

Examples

Run this code
# NOT RUN {
x <- Multinomial$new(size = 5, probs = c(0.1, 0.5, 0.9)) # Automatically normalised

# Update parameters
x$setParameterValue(size = 10)
# Number of categories cannot be changed after construction
x$setParameterValue(probs = c(1,2,3))
x$parameters()

# d/p/q/r
# Note the difference from R stats
x$pdf(4, 4, 2)
# This allows vectorisation:
x$pdf(c(1,4),c(2,4),c(7,2))

x$rand(4)

# Statistics
x$mean()
x$variance()

summary(x)

# }

Run the code above in your browser using DataLab