Skip to contents

The function ddirichlet() computes the density of a Dirichlet distribution.

The function rdirichlet() samples from a Dirichlet distribution.

The functions with suffix _cpp perform no input checks, hence are faster.

Usage

ddirichlet_cpp(x, concentration, log = FALSE)

rdirichlet_cpp(concentration)

ddirichlet(x, concentration, log = FALSE)

rdirichlet(n = 1, concentration)

Arguments

x

[numeric()]
A probability vector.

concentration

[numeric()]
A concentration vector of the same length as x.

log

[logical(1)]
Return the logarithm of the density value?

n

[integer(1)]
The number of samples.

Value

For ddirichlet(): The density value.

For rdirichlet(): If n = 1 a vector of length p, else a matrix of dimension n times p with samples as rows.

See also

Examples

x <- c(0.5, 0.3, 0.2)
concentration <- 1:3

# compute density
ddirichlet(x = x, concentration = concentration)
#> [1] 0.72
ddirichlet(x = x, concentration = concentration, log = TRUE)
#> [1] -0.3285041

# sample
rdirichlet(concentration = 1:3)
#> [1] 0.07103455 0.31416135 0.61480410
rdirichlet(n = 4, concentration = 1:2)
#>              [,1]      [,2]
#> [1,] 0.3381080647 0.6618919
#> [2,] 0.3626349149 0.6373651
#> [3,] 0.0002169418 0.9997831
#> [4,] 0.3960512649 0.6039487