10 votos

(interactuando) MCMC para la posterior multimodal

Estoy tratando de hacer un muestreo a partir de una posterior que tiene muchos modos particularmente alejados unos de otros usando MCMC. Parece que en la mayoría de los casos, sólo uno de estos modos contiene el 95% de hpd que estoy buscando. He intentado implementar soluciones basadas en la simulación atemperada, pero esto no proporciona resultados satisfactorios, ya que en la práctica pasar de un "rango de captura" a otro es demasiado costoso.

En consecuencia, me parece que una solución más eficiente sería ejecutar muchos MCMCs simples desde diferentes puntos de partida y bucear en la solución dominante haciendo que los MCMCs interactúen entre sí. ¿Sabe usted si hay alguna forma adecuada de poner en práctica esta idea?

Nota: Encontré ese papel http://lccc.eecs.berkeley.edu/Papers/dmcmc_short.pdf (Distributed Markov chain Monte Carlo, Lawrence Murray) que se parece a lo que estoy buscando pero realmente no entiendo el diseño de la función $R_i$ .

[EDITAR]: la falta de respuestas parece indicar que no hay una solución obvia a mi problema inicial (hacer que varios MCMCs que muestrean la misma distribución objetivo desde diferentes puntos de partida interactúen entre sí). ¿Es eso cierto? ¿Por qué es tan complicado? Gracias

0 votos

Suena como lo que he utilizado anteriormente "Población MCMC" para. Véase "Estimating Bayes factors via thermodynamic integration and population MCMC" de Calderhead y Girolami. ¡Lo siento si esto llega un poco tarde, pero tal vez otras personas apreciarán la referencia!

0 votos

Posiblemente lo mismo que MCMC poblacional es Monte Carlo secuencial.

2voto

alex Puntos 6

Deberías probar el multinest: https://arxiv.org/pdf/0809.3437.pdf https://github.com/JohannesBuchner/MultiNest Es un motor de inferencia bayesiana que le dará muestras de parámetros para una distribución multimodal.

El enlace de github contiene el código fuente de multinest que se compila e instala según las instrucciones. también tiene un wrapper de python que es más fácil de usar. Los códigos de ejemplo tienen una sección a priori que sirve para restringir sus parámetros, y una sección de probabilidad que contiene su probabilidad. el archivo de configuración contiene todos sus ajustes, y las cadenas de la carpeta de salida de multinest después del ajuste. le dará muestras de sus parámetros

0 votos

Bienvenido a CV y gracias por tu gran respuesta. Tal vez puedas mejorar tu respuesta resumiendo el Githublink.

1 votos

El enlace github contiene multinest código fuente que compilar e instalar según las instrucciones. también tiene una envoltura de python que es más fácil de usar. Los códigos de ejemplo tienen una sección previa que sirve para restringir sus parámetros, y una sección de verosimilitud que contiene su verosimilitud. el archivo de configuración contiene todos los ajustes, y las cadenas de salida multinest carpeta después de ajustar. que le dará muestras de sus parámetros.

0 votos

Wow. Es impresionante. He votado tu respuesta. En el futuro puedes incluir esta descripción cada vez que compartas un enlace.

1voto

Sam Puntos 21

Ante todo, recomendaría buscar un método mejor, o al menos un método con una descripción más profunda, ya que el "Distributed Markov chain Monte Carlo" del documento al que te refieres no parece estar claramente expuesto. Las ventajas y desventajas no están bien exploradas. Hay un método, que apareció en arxiv hace bastante tiempo llamado " Wormhole Hamiltonian Monte Carlo ", le recomiendo que lo compruebe.

Volviendo al documento al que has dado referencia, la propuesta a distancia $R_{i}(\theta_{i})$ se describe muy vagamente. En la parte de la aplicación se describe como "máxima probabilidad gaussiana sobre las muestras t/2 anteriores". Tal vez esto signifique que se promedian los últimos t/2 valores de la $i^{th}$ ¿Cadena? Un poco difícil de adivinar con la pobre descripción que se da en la referencia.

[La interacción entre varias cadenas y la aplicación de esta idea al muestreo de la distribución posterior puede encontrarse en los métodos MCMC paralelos, por ejemplo aquí . Sin embargo, ejecutar varias cadenas y forzarlas a interactuar puede no ser adecuado para la posterioridad 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 ceñirse a esa región específica y no explorar otras regiones/modos menos pronunciados. Por lo tanto, le recomiendo encarecidamente que busque un MCMC diseñado específicamente para problemas multimodales. Y si quieres crear otro/nuevo método, después de conocer lo que hay en el "mercado", puedes crear un método más eficiente.

0 votos

Gracias por su ayuda. Esto no es totalmente lo que esperaba, pero tal vez estoy buscando cosas inalcanzables. Actualmente estoy investigando (no estoy seguro de poder derivar todo lo que necesita un MCMC Hamiltoniano), el llamado MC darting que encontré a través de tus referencias. Te doy la recompensa, gracias de nuevo por tus consejos.

0 votos

@peuhp, Esto está estrechamente relacionado con los métodos Hamiltonianos mencionados anteriormente, pero el Muestrario Equi-Energy es un método MCMC que se presenta específicamente como un método para distribuciones posteriores multimodales. Sé que funciona mediante el inicio de varias cadenas paralelas y permitiendo saltos entre cadenas, pero no tengo suficiente conocimiento de / experiencia con el método para publicar una respuesta. Echa un vistazo al enlace. Espero que esto ayude.

0voto

FeRD Puntos 111

Este parece ser un problema difícil y continuo en la estadística computacional. 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 posterior y está contento de que estos sean los modos más importantes, y si la posterior alrededor de estos modos es razonablemente normal. Entonces puede calcular la hessian en estos modos (digamos, usando optim en R con hessian=T) y puede aproximar la posterior como una mezcla de normales (o distribuciones t). Véase p318-319 en Gelman et al. (2003) "Bayesian Data Analysis" para más detalles. Entonces puede utilizar la aproximación de la mezcla normal/t como la distribución de la propuesta en un muestreador de independencia para obtener muestras de la posterior completa.

Otra idea, que no he probado, es el muestreo de importancia anulado (Radford Neal, 1998, enlace aquí ).

0 votos

Otra posibilidad, si ya tiene un conjunto de cadenas que parecen haber "convergido" localmente, sería realizar algún tipo de muestreo de importancia a partir de la combinación de todas sus cadenas. Sin embargo, no estoy seguro de ello.

0 votos

Bienvenido al foro Mat. No dudes en editar tu respuesta para añadir tus nuevas ideas en lugar de comentar tu propia respuesta. No hay nada malo en ello :)

0voto

Jordan Puntos 38

¿Qué le parece probar un nuevo método MCMC para la multimodalidad, un algoritmo de Metrópolis repulsivo-atractivo ( http://arxiv.org/abs/1601.05633 )? Este muestreador multimodal funciona con un único parámetro de ajuste como un algoritmo de Metrópolis y es sencillo de implementar.

i-Ciencias.com

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.

Powered by:

X