VGAM (version 1.1-6)

# rdiric: The Dirichlet distribution

## Description

Generates Dirichlet random variates.

## Usage

`rdiric(n, shape, dimension = NULL, is.matrix.shape = FALSE)`

## Arguments

n

number of observations. Note it has two meanings, see `is.matrix.shape` below.

shape

the shape parameters. These must be positive. If `dimension` is specifed, values are recycled if necessary to length `dimension`.

dimension

the dimension of the distribution. If `dimension` is not numeric then it is taken to be `length(shape)` (or `ncol(shape)` if `is.matrix.shape == TRUE`).

is.matrix.shape

Logical. If `TRUE` then `shape` must be a matrix, and then `n` is no longer the number of rows of the answer but the answer has `n * nrow(shape)` rows. If `FALSE` (the default) then `shape` is a vector and each of the `n` rows of the answer have `shape` as its shape parameters.

## Value

A `n` by `dimension` matrix of Dirichlet random variates. Each element is positive, and each row will sum to unity. If `shape` has names then these will become the column names of the answer.

## Details

This function is based on a relationship between the gamma and Dirichlet distribution. Random gamma variates are generated, and then Dirichlet random variates are formed from these.

## References

Lange, K. (2002). Mathematical and Statistical Methods for Genetic Analysis, 2nd ed. New York: Springer-Verlag.

`dirichlet` is a VGAM family function for fitting a Dirichlet distribution to data.

## Examples

Run this code
``````# NOT RUN {
ddata <- data.frame(rdiric(n = 1000, shape = c(y1 = 3, y2 = 1, y3 = 4)))
fit <- vglm(cbind(y1, y2, y3) ~ 1, dirichlet, data = ddata, trace = TRUE)
Coef(fit)
coef(fit, matrix = TRUE)
# }
``````

Run the code above in your browser using DataLab