¿Cuáles son algunas mejoras bien conocidas sobre los algoritmos MCMC de libros de texto que las personas usan para la inferencia bayesiana?

21

Cuando estoy codificando una simulación de Monte Carlo para algún problema, y ​​el modelo es lo suficientemente simple, uso un libro de texto muy básico de muestreo de Gibbs. Cuando no es posible usar el muestreo de Gibbs, codifico el libro de texto Metropolis-Hastings que aprendí hace años. El único pensamiento que le doy es elegir la distribución de saltos o sus parámetros.

Sé que hay cientos y cientos de métodos especializados que mejoran esas opciones de libros de texto, pero por lo general nunca pienso en usarlos / aprenderlos. Por lo general, parece que es demasiado esfuerzo mejorar un poco lo que ya está funcionando muy bien.

Pero recientemente he estado pensando si tal vez no hay nuevos métodos generales que puedan mejorar lo que he estado haciendo. Han pasado muchas décadas desde que se descubrieron esos métodos. ¡Quizás estoy realmente desactualizado!

¿Existen alternativas bien conocidas a Metropolis-Hastings que sean:

  • razonablemente fácil de implementar,
  • tan universalmente aplicable como MH,
  • y siempre mejora los resultados de MH en algún sentido (rendimiento computacional, precisión, etc.)

Conozco algunas mejoras muy especializadas para modelos muy especializados, pero ¿hay algunas cosas generales que todo el mundo usa y que yo no conozco?

Rafael S. Calsaverini
fuente
1
¿Te refieres a la cadena de Markov Monte Carlo? Las mejoras en los libros de texto a las simulaciones de Monte Carlo que se me ocurren incluyen muestreo antitético y / o estratificado, así como cuasi-Monte Carlo. Sin embargo, su mención de solo Gibbs y Metropolis-Hastings es indicativo de la computación bayesiana.
StasK
@StasK, sí, estoy interesado principalmente en modelos bayesianos y modelos de física estadística (que es solo inferencia bayesiana en distribuciones similares a gibbs p (x) = 1 / Z exp (-E (x) / T)). Perdón por no mencionar eso.
Rafael S. Calsaverini
3
(+1) OK, un buen algoritmo adaptativo de propósito general "recientemente" publicado y ya implementado en R, Python y Matlab es el twalk . Funciona bien, pero siempre es una buena práctica verificar dos veces con otro método. Por cierto, MH se implementa en el paquete R mcmc . Por supuesto, hay muchos otros, pero la mayoría de ellos no se implementan en este nivel de generalidad y / o son difíciles de implementar. Otra área popular hoy en día es el Monte Carlo secuencial. Espero que esto ayude.
2
Es posible que ya lo sepas, pero el muestreo por cortes es bastante fácil de implementar y evita algunas trampas de un algoritmo de Metrópolis de "paseo aleatorio" típico. Un problema con los algoritmos tradicionales de Metropolis es el comportamiento de tipo de paseo aleatorio; en lugar de moverse a propósito hacia buenos estados, tropiezan, moviéndose lentamente hacia las áreas buenas. Esta es la motivación detrás de los métodos que hacen uso de la información en el gradiente, como HMC, pero el muestreo de cortes también se incluye en este campo y es más automático.
chico
1
No sé casi nada sobre ABC, pero me alegraría si alguien pudiera explicar un poco sobre las diferencias entre los métodos ABC y MCMC ...
Manoel Galdino

Respuestas:

20

No soy un experto en ninguno de estos, pero pensé en ponerlos allí de todos modos para ver qué pensaba la comunidad. Las correcciones son bienvenidas.

Un método cada vez más popular, que no es terriblemente sencillo de implementar, se llama Hamiltonian Monte Carlo (o a veces Hybrid Monte Carlo). Utiliza un modelo físico con energía potencial y cinética para simular una bola rodando alrededor del espacio de parámetros, como se describe en este artículo de Radford Neal. El modelo físico requiere una gran cantidad de recursos computacionales, por lo que tiende a obtener muchas menos actualizaciones, pero las actualizaciones tienden a estar menos correlacionadas. HMC es el motor detrás del nuevo software STAN que se está desarrollando como una alternativa más eficiente y flexible a BUGS o JAGS para el modelado estadístico.

También hay un grupo completo de métodos que implican "calentar" la cadena de Markov, que puede considerarse como la introducción de ruido térmico en el modelo y el aumento de las posibilidades de muestreo de estados de baja probabilidad. A primera vista, parece una mala idea, ya que desea que el modelo muestree en proporción a la probabilidad posterior. Pero en realidad solo terminas usando los estados "calientes" para ayudar a que la cadena se mezcle mejor. Las muestras reales solo se recolectan cuando la cadena está a su temperatura "normal". Si lo hace correctamente, puede usar las cadenas calentadas para encontrar modos a los que una cadena ordinaria no podría acceder debido a los grandes valles de baja probabilidad que bloquean la transición de un modo a otro. Algunos ejemplos de estos métodos incluyen MCMC acoplado a Metrópolis ,, Revenido paralelo , y muestreo de importancia recocido .

Finalmente, puedes usar Monte Carlo secuencial o filtrado de partículas cuando la tasa de rechazo sería tan alta que estos otros métodos fallarían. Sé lo menos sobre esta familia de métodos, por lo que mi descripción puede ser incorrecta aquí , pero entiendo que funciona así. Empiezas ejecutando tu muestra favorita, aunque las posibilidades de rechazo son esencialmente una. En lugar de rechazar todas sus muestras, elige las menos objetables e inicializa nuevos muestreadores desde allí, repitiendo el proceso hasta que encuentre algunas muestras que realmente pueda aceptar. Luego regresa y corrige el hecho de que sus muestras no fueron aleatorias, porque no inicializó sus muestreadores desde ubicaciones aleatorias.

Espero que esto ayude.

David J. Harris
fuente