Necesito calcular el Dirichlet CDF, pero sólo puedo encontrar las implementaciones de los PDF.
¿Ustedes saben de alguna biblioteca (preferiblemente en R
) de la aplicación?
Necesito calcular el Dirichlet CDF, pero sólo puedo encontrar las implementaciones de los PDF.
¿Ustedes saben de alguna biblioteca (preferiblemente en R
) de la aplicación?
Recuerde que, si Yi son independientes Gamma(ai,b)i=1,…,k, luego (X1,…,Xk)=(Y1∑kj=1Yj,…,Yk∑kj=1Yj)∼Dirichlet(a1,…,ak).
La prueba se puede encontrar en la página 594 de Luc Devroye del libro.
Por lo tanto, una posibilidad es calcular una aproximación de Monte Carlo
FX1,…,Xk(t1,…,tk)=P{X1≤t1,…,Xk≤tk},
comenzando con gammas. En R
, intente esto:
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
}
Yo no comprobar el código. Utilizar con precaución. Si usted encuentra cualquier error, por favor avísenos.
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.