The Dirichlet Distribution

Share:

Description

Density function and random generation from the Dirichlet distribution.

Usage

1
2
ddirichlet(x, alpha)
rdirichlet(n, alpha)

Arguments

x

A vector containing a single deviate or a matrix containing one random deviate per row.

alpha

A vector of shape parameters, or a matrix of shape parameters by rows. Recycling (by row) is permitted.

n

Number of random vectors to generate. If length(n) > 1, the length is taken to be the number required.

Details

The Dirichlet distribution is the multidimensional generalization of the beta distribution. The original code was adapted to provide a kind of "vectorization" used in multivariates mcnode.

Value

ddirichlet gives the density. rdirichlet returns a matrix with n rows, each containing a single Dirichlet random deviate.

Author(s)

Code is adapted from MCMCpack. It originates from Greg's Miscellaneous Functions (gregmisc).

See Also

Beta

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
dat <- c(1, 10, 100, 1000, 1000, 100, 10, 1)
(alpha <- matrix(dat, nrow=4, byrow=TRUE))
round(x <- rdirichlet(4, alpha), 2)
ddirichlet(x, alpha)

## rdirichlet used with mcstoc
mcalpha <- mcdata(dat, type="V", nsv=4, nvariates=2)
(x <- mcstoc(rdirichlet, type="V", alpha=mcalpha, nsv=4, nvariates=2))
unclass(x)
x <- mcstoc(rdirichlet, type="VU", alpha=mcalpha, nsv=4, nsu=10, nvariates=2)
unclass(x)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.