Este es un intento que no realicé por completo, pero fue demasiado largo para la sección de comentarios. Puede ser útil ponerlo aquí como otra alternativa básica para muy bajok. No requiere diferenciación explícita + MCMC (pero sí realiza diferenciación numérica, sin MCMC).
Algoritmo
Para pequeños ε>0:
- Dibujar tu1∼C1≡ C(U1=tu1,U2= 1 , ... ,Uk= 1 ). Esto se puede hacer fácilmente dibujandoη∼ Uniforme [ 0 , 1 ] y computación C- 11( η)(que, en todo caso, se puede hacer fácilmente numéricamente). Este es un sorteo del pdf marginaltu1∼ κ (tu1).
- por j = 2 ... k
- Definir
D(ε)j(uj|u1,…,uj−1)≡Pr(u1−ε2≤U1≤u1+ε2∧⋯∧uj−1−ε2≤Uj−1≤uj−1+ε2∧Uj≤uj∧Uj+1≤1⋯∧Uk≤1),
que se puede calcular como una diferencia de C evaluado en varios puntos (que de manera ingenua necesita O (2j - 1) evaluaciones de C por cada evaluación de re( ε )j) re( ε )j es el ε-condicional marginal aproximado de tuj dado tu1, ... ,tuj - 1.
- Dibujar tuj∼re( ε )j(tujEl |tu1, ... ,tuj - 1) según el punto 1, que nuevamente debería ser fácil de hacer con la inversión numérica.
Discusión
Este algoritmo debería generar muestras iid de un ε-aproximación de C(tu1, ... ,tuk), dónde εsimplemente depende de la precisión numérica. Existen tecnicismos prácticos para refinar la aproximación y hacerla numéricamente estable.
El problema obvio es que la complejidad computacional se escala como O (2k)Entonces, para decirlo generosamente, esto no es muy general en términos de k (pero el ejemplo que vinculó tenía k = 3, entonces tal vez este método no sea completamente inútil: no estoy familiarizado con el escenario típico en el que tendrías acceso al cdf). Por otro lado, para distribuciones de muy baja dimensión, podría funcionar, y el costo se compensa por el hecho de que, a diferencia de la otra solución genérica de "diferenciación + MCMC", no hay necesidad de calcular derivados, las muestras son iid y allí no hay ajuste (aparte de la elección deε, que debería ser algo ligeramente superior a la precisión de la máquina). Y tal vez hay maneras de hacer esto mejor que el enfoque ingenuo.
Como mencioné, esto está fuera de mi alcance, por lo que podría haber otros problemas.