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)
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
Other simulation helpers:
correlated_regressors()
,
dmvnorm_cpp()
,
dtnorm_cpp()
,
dwishart_cpp()
,
simulate_markov_chain()
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.3856869 0.3627173 0.2515958
rdirichlet(n = 4, concentration = 1:2)
#> [,1] [,2]
#> [1,] 0.5313066 0.4686934
#> [2,] 0.8225162 0.1774838
#> [3,] 0.3910001 0.6089999
#> [4,] 0.1964752 0.8035248