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?
fuente
Respuestas:
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.
fuente