Denken Sie daran, dass, wenn unabhängig sind , für , dann
G a m m a ( a i , b ) i = 1 , … , k ( X 1 , … , X k ) = ( Y 1YiGamma(ai,b)i=1,…,k
(X1,…,Xk)=(Y1∑kj=1Yj,…,Yk∑kj=1Yj)∼Dirichlet(a1,…,ak).
Der Beweis ist auf Seite 594 von Luc Devroyes Buch zu finden .
Daher besteht eine Möglichkeit darin, eine Monte-Carlo-Näherung von
beginnend mit Gammas. In , versuchen Sie dies:
FX1,…,Xk(t1,…,tk)=P{X1≤t1,…,Xk≤tk},
R
pdirichlet <- function(a, t) {
N <- 10000
rdirichlet <- function(a) { y <- rgamma(length(a), a, 1); y / sum(y) }
x <- replicate(N, rdirichlet(a), simplify = FALSE)
sum(sapply(x, function(x) prod(x <= t))) / N
}
Ich habe den Code nicht überprüft. Verwenden Sie es vorsichtig. Wenn Sie Fehler finden, teilen Sie uns dies bitte mit.