Learn R Programming

mc2d (version 0.2.0)

dirichlet: The Dirichlet Distribution

Description

Density function and random generation from the Dirichlet distribution.

Usage

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

Value

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

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.

Author

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

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.

See Also

Examples

Run this code
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)

Run the code above in your browser using DataLab