Estoy tratando de muestrear desde un posterior que tiene muchos modos, particularmente lejos de los demás, usando MCMC. Parece que en la mayoría de los casos, solo uno de estos modos contiene el 95% de HP que estoy buscando. Traté de implementar soluciones basadas en simulación templada, pero esto no proporciona resultados satisfactorios, ya que en la práctica pasar de un "rango de captura" a otro es muy costoso.
Como consecuencia, me parece que una solución más eficiente sería ejecutar muchos MCMC simples desde diferentes puntos de partida y sumergirse en la solución dominante haciendo que los MCMC interactúen entre sí. ¿Sabes si hay alguna forma adecuada de implementar tal idea?
Nota: Encontré ese papel http://lccc.eecs.berkeley.edu/Papers/dmcmc_short.pdf (cadena distribuida de Markov Monte Carlo, Lawrence Murray) que se parece mucho a lo que estoy buscando pero realmente no entiendo el diseño de la función .
[EDITAR]: la falta de respuestas parece indicar que no hay una solución obvia para mi problema inicial (haciendo que varias muestras de MCMC de la misma distribución objetivo desde un punto de partida diferente interactúen entre sí). Es eso cierto ? ¿Por qué es tan complicado? Gracias
fuente
Respuestas:
En primer lugar, recomendaría buscar un método mejor, o al menos un método con una descripción más detallada, ya que la "cadena distribuida de Markov Monte Carlo" del documento al que se refiere no parece estar claramente establecida. Las ventajas y desventajas no están bien exploradas. Hay un método, que apareció en arxiv recientemente llamado " Wormhole Hamiltonian Monte Carlo ", recomendaría comprobarlo.
[ACTUALIZACIÓN:] La interacción entre varias cadenas y la aplicación de esta idea a la muestra de distribución posterior se puede encontrar en métodos MCMC paralelos, por ejemplo aquí . Sin embargo, ejecutar varias cadenas y obligarlas a interactuar puede no encajar en la parte posterior multimodal: por ejemplo, si hay una región muy pronunciada donde se concentra la mayor parte de la distribución posterior, la interacción de las cadenas puede incluso empeorar las cosas al apegarse a ese específico región y no explorar otras regiones / modos menos pronunciados. Por lo tanto, recomendaría buscar MCMC diseñado específicamente para problemas multimodales. Y si desea crear otro / nuevo método, luego de saber lo que está disponible en el "mercado", puede crear un método más eficiente.
fuente
Debe probar multinest: https://arxiv.org/pdf/0809.3437.pdf https://github.com/JohannesBuchner/MultiNest Es un motor de inferencia bayesiano que le dará muestras de parámetros para una distribución multimodal.
El enlace github contiene código fuente multinest que compila e instala según las instrucciones. También tiene un envoltorio de Python que es más fácil de usar. Los códigos de ejemplo tienen una sección anterior que sirve para restringir sus parámetros y una sección de probabilidad que contiene su probabilidad. el archivo de configuración contiene todas sus configuraciones y encadena la salida multinest de la carpeta después del ajuste. te dará muestras de tus parámetros
fuente
Esto parece ser un problema difícil y continuo en las estadísticas computacionales. Sin embargo, hay un par de métodos menos avanzados que deberían funcionar bien.
Digamos que ya ha encontrado varios modos distintos de la parte posterior y está contento de que estos sean los modos más importantes, y si la parte posterior alrededor de estos modos es razonablemente normal. Luego puede calcular el hessian en estos modos (por ejemplo, usando optim en R con hessian = T) y puede aproximar el posterior como una mezcla de normales (o distribuciones t). Ver p318-319 en Gelman et al. (2003) "Análisis de datos bayesianos" para más detalles. Luego, puede usar la aproximación normal / mezcla de t como la distribución de la propuesta en una muestra de independencia para obtener muestras de la parte posterior completa.
Otra idea que no he probado es el muestreo de importancia recocida (Radford Neal, 1998, enlace aquí ).
fuente
¿Qué hay de probar un nuevo método MCMC para multimodalidad, un algoritmo Metropolis atractivo y repulsivo ( http://arxiv.org/abs/1601.05633 )? Este muestreador multimodal funciona con un solo parámetro de ajuste, como un algoritmo Metropolis, y es fácil de implementar.
fuente