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 $Y_i$ son independientes $\mathrm{Gamma}(a_i,b)$$i=1,\dots,k$, luego $$ (X_1,\dots,X_k) = \left(\frac{Y_1}{\sum_{j=1}^k Y_j}, \dots, \frac{Y_k}{\sum_{j=1}^k Y_j} \right) \sim \mathrm{Dirichlet}(a_1,\dots,a_k) \, .$$
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
$$
F_{X_1,\dots,X_k}(t_1,\dots,t_k)=P\left\{X_1\leq t_1,\dots, X_k\leq t_k\right\} \, ,
$$
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.