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

 Dirichlet R Documentation

## Dirichlet Distribution Class

### Description

Mathematical and statistical functions for the Dirichlet distribution, which is commonly used as a prior in Bayesian modelling and is multivariate generalisation of the Beta distribution.

### Details

The Dirichlet distribution parameterised with concentration parameters, α_1,...,α_k, is defined by the pdf,

f(x_1,...,x_k) = (∏ Γ(α_i))/(Γ(∑ α_i))∏(x_i^{α_i - 1})

for α = α_1,...,α_k; α > 0, where Γ is the gamma function.

Sampling is performed via sampling independent Gamma distributions and normalising the samples (Devroye, 1986).

### Value

Returns an R6 object inheriting from class SDistribution.

### Distribution support

The distribution is supported on x_i ε (0,1), ∑ x_i = 1.

### Default Parameterisation

Diri(params = c(1, 1))

### Omitted Methods

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

N/A

### Super classes

`distr6::Distribution` -> `distr6::SDistribution` -> `Dirichlet`

### 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.

### Active bindings

`properties`

Returns distribution properties, including skewness type and symmetry.

### Methods

#### Public methods

Inherited methods

#### Method `new()`

Creates a new instance of this R6 class.

##### Usage
`Dirichlet\$new(params = NULL, decorators = NULL)`
##### Arguments
`params`

`numeric()`
Vector of concentration parameters of the distribution defined on the positive Reals.

`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
`Dirichlet\$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
`Dirichlet\$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
`Dirichlet\$variance(...)`
`...`

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
`Dirichlet\$entropy(base = 2, ...)`
##### Arguments
`base`

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

`...`

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
`Dirichlet\$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
```Dirichlet\$setParameterValue(
...,
lst = list(...),
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
`Dirichlet\$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.

Devroye, Luc (1986). Non-Uniform Random Variate Generation. Springer-Verlag. ISBN 0-387-96305-7.

Other continuous distributions: `Arcsine`, `BetaNoncentral`, `Beta`, `Cauchy`, `ChiSquaredNoncentral`, `ChiSquared`, `Erlang`, `Exponential`, `FDistributionNoncentral`, `FDistribution`, `Frechet`, `Gamma`, `Gompertz`, `Gumbel`, `InverseGamma`, `Laplace`, `Logistic`, `Loglogistic`, `Lognormal`, `MultivariateNormal`, `Normal`, `Pareto`, `Poisson`, `Rayleigh`, `ShiftedLoglogistic`, `StudentTNoncentral`, `StudentT`, `Triangular`, `Uniform`, `Wald`, `Weibull`

Other multivariate distributions: `EmpiricalMV`, `Multinomial`, `MultivariateNormal`

### Examples

```d <- Dirichlet\$new(params = c(2, 5, 6))
d\$pdf(0.1, 0.4, 0.5)
d\$pdf(c(0.3, 0.2), c(0.6, 0.9), c(0.9, 0.1))
```

distr6 documentation built on March 28, 2022, 1:05 a.m.