# Binomial: Binomial Distribution Class In distr6: The Complete R6 Probability Distributions Interface

## Description

Mathematical and statistical functions for the Binomial distribution, which is commonly used to model the number of successes out of a number of independent trials.

## Details

The Binomial distribution parameterised with number of trials, n, and probability of success, p, is defined by the pmf,

f(x) = C(n, x)p^x(1-p)^{n-x}

for n = 0,1,2,… and probability p, where C(a,b) is the combination (or binomial coefficient) function.

## Value

Returns an R6 object inheriting from class SDistribution.

## Distribution support

The distribution is supported on {0, 1,...,n}.

## Default Parameterisation

Binom(size = 10, prob = 0.5)

N/A

N/A

## Super classes

`distr6::Distribution` -> `distr6::SDistribution` -> `Binomial`

## Public fields

`name`

Full name of distribution.

`short_name`

Short name of distribution for printing.

`description`

Brief description of the distribution.

`packages`

Packages required to be installed in order to construct the distribution.

## Methods

#### Public methods

Inherited methods

#### Method `new()`

Creates a new instance of this R6 class.

##### Usage
`Binomial\$new(size = NULL, prob = NULL, qprob = NULL, decorators = NULL)`
##### Arguments
`size`

`(integer(1))`
Number of trials, defined on the positive Naturals.

`prob`

`(numeric(1))`
Probability of success.

`qprob`

`(numeric(1))`
Probability of failure. If provided then `prob` is ignored. `qprob = 1 - prob`.

`decorators`

`(character())`
Decorators to add to the distribution during construction.

#### Method `mean()`

The arithmetic mean of a (discrete) probability distribution X is the expectation

E_X(X) = ∑ p_X(x)*x

with an integration analogue for continuous distributions.

##### Usage
`Binomial\$mean(...)`
`...`

Unused.

#### Method `mode()`

The mode of a probability distribution is the point at which the pdf is a local maximum, a distribution can be unimodal (one maximum) or multimodal (several maxima).

##### Usage
`Binomial\$mode(which = "all")`
##### Arguments
`which`

`(character(1) | numeric(1)`
Ignored if distribution is unimodal. Otherwise `"all"` returns all modes, otherwise specifies which mode to return.

#### Method `variance()`

The variance of a distribution is defined by the formula

var_X = E[X^2] - E[X]^2

where E_X is the expectation of distribution X. If the distribution is multivariate the covariance matrix is returned.

##### Usage
`Binomial\$variance(...)`
`...`

Unused.

#### Method `skewness()`

The skewness of a distribution is defined by the third standardised moment,

sk_X = E_X[((x - μ)/σ)^3]

where E_X is the expectation of distribution X, μ is the mean of the distribution and σ is the standard deviation of the distribution.

##### Usage
`Binomial\$skewness(...)`
`...`

Unused.

#### Method `kurtosis()`

The kurtosis of a distribution is defined by the fourth standardised moment,

k_X = E_X[((x - μ)/σ)^4]

where E_X is the expectation of distribution X, μ is the mean of the distribution and σ is the standard deviation of the distribution. Excess Kurtosis is Kurtosis - 3.

##### Usage
`Binomial\$kurtosis(excess = TRUE, ...)`
##### Arguments
`excess`

`(logical(1))`
If `TRUE` (default) excess kurtosis returned.

`...`

Unused.

#### Method `entropy()`

The entropy of a (discrete) distribution is defined by

- ∑ (f_X)log(f_X)

where f_X is the pdf of distribution X, with an integration analogue for continuous distributions.

##### Usage
`Binomial\$entropy(base = 2, ...)`
##### Arguments
`base`

`(integer(1))`
Base of the entropy logarithm, default = 2 (Shannon entropy)

`...`

Unused.

#### Method `mgf()`

The moment generating function is defined by

mgf_X(t) = E_X[exp(xt)]

where X is the distribution and E_X is the expectation of the distribution X.

##### Usage
`Binomial\$mgf(t, ...)`
##### Arguments
`t`

`(integer(1))`
t integer to evaluate function at.

`...`

Unused.

#### Method `cf()`

The characteristic function is defined by

cf_X(t) = E_X[exp(xti)]

where X is the distribution and E_X is the expectation of the distribution X.

##### Usage
`Binomial\$cf(t, ...)`
##### Arguments
`t`

`(integer(1))`
t integer to evaluate function at.

`...`

Unused.

#### Method `pgf()`

The probability generating function is defined by

pgf_X(z) = E_X[exp(z^x)]

where X is the distribution and E_X is the expectation of the distribution X.

##### Usage
`Binomial\$pgf(z, ...)`
##### Arguments
`z`

`(integer(1))`
z integer to evaluate probability generating function at.

`...`

Unused.

#### Method `setParameterValue()`

Sets the value(s) of the given parameter(s).

##### Usage
```Binomial\$setParameterValue(
...,
lst = NULL,
error = "warn",
resolveConflicts = FALSE
)```
##### Arguments
`...`

`ANY`
Named arguments of parameters to set values for. See examples.

`lst`

`(list(1))`
Alternative argument for passing parameters. List names should be parameter names and list values are the new values to set.

`error`

`(character(1))`
If `"warn"` then returns a warning on error, otherwise breaks if `"stop"`.

`resolveConflicts`

`(logical(1))`
If `FALSE` (default) throws error if conflicting parameterisations are provided, otherwise automatically resolves them by removing all conflicting parameters.

#### Method `clone()`

The objects of this class are cloneable with this method.

##### Usage
`Binomial\$clone(deep = FALSE)`
##### Arguments
`deep`

Whether to make a deep clone.

## References

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

Other discrete distributions: `Bernoulli`, `Categorical`, `Degenerate`, `DiscreteUniform`, `EmpiricalMV`, `Empirical`, `Geometric`, `Hypergeometric`, `Logarithmic`, `Multinomial`, `NegativeBinomial`, `WeightedDiscrete`
Other univariate distributions: `Arcsine`, `Bernoulli`, `BetaNoncentral`, `Beta`, `Categorical`, `Cauchy`, `ChiSquaredNoncentral`, `ChiSquared`, `Degenerate`, `DiscreteUniform`, `Empirical`, `Erlang`, `Exponential`, `FDistributionNoncentral`, `FDistribution`, `Frechet`, `Gamma`, `Geometric`, `Gompertz`, `Gumbel`, `Hypergeometric`, `InverseGamma`, `Laplace`, `Logarithmic`, `Logistic`, `Loglogistic`, `Lognormal`, `NegativeBinomial`, `Normal`, `Pareto`, `Poisson`, `Rayleigh`, `ShiftedLoglogistic`, `StudentTNoncentral`, `StudentT`, `Triangular`, `Uniform`, `Wald`, `Weibull`, `WeightedDiscrete`