Algoritmo de Metropolis-Hastings

El algoritmo lleva el nombre de Nicholas Metropolis, autor del artículo 1953 Equation of State Calculations by Fast Computing Machines junto con Arianna W. Rosenbluth, Marshall Rosenbluth, Augusta H. Teller y Edward Teller.Este artículo propuso el algoritmo para el caso de distribuciones de propuestas simétricas, y W. K. Hastings lo extendió al caso más general en 1970.Existe cierta controversia con respecto al crédito para el desarrollo del algoritmo.Metropolis había acuñado el término "Montecarlo" en un artículo anterior con Stanislav Ulam, estaba familiarizado con los aspectos computacionales del método y dirigió el grupo en la División Teórica que diseñó y construyó la computadora MANIAC I utilizada en los experimentos en 1952.En esta conferencia, Rosenbluth describió el algoritmo y su desarrollo en una presentación titulada "Génesis del algoritmo de Monte Carlo para la mecánica estadística".Rosenbluth deja en claro que él y su esposa Arianna hicieron el trabajo, y que Metropolis no desempeñó ningún papel en el desarrollo que no sea proporcionar tiempo de computadora.Esto contradice una versión de Edward Teller, quien afirma en sus memorias que los cinco autores del artículo de 1953 trabajaron juntos durante "días (y noches)".Esto, dice Rosenbluth, lo hizo pensar en el enfoque generalizado de Monte Carlo, un tema que, según él, había discutido a menudo con Von Neumann.Arianna contó (a Gubernatis en 2003) que Augusta Teller comenzó el trabajo de la computadora, pero que la propia Arianna se hizo cargo y escribió el código desde cero.Tenía una capacidad asombrosa para ver a través de una situación física complicada y llegar a la respuesta correcta mediante argumentos físicos.Luego, con cierta probabilidad, el candidato es aceptado (en cuyo caso el valor candidato se usa en la próxima iteración) o rechazado (en cuyo caso el valor candidato se descarta y el valor actual se reutiliza en la próxima iteración): la probabilidad de aceptación se determina comparando los valores de la funciónPara fines de ilustración, a continuación se describe el algoritmo Metropolis, un caso especial del algoritmo Metropolis-Hastings donde la función de la propuesta es simétrica.ser una función que sea proporcional a la distribución de probabilidad deseadaEste algoritmo continúa intentando moverse aleatoriamente por el espacio muestral, a veces aceptando los movimientos y otras permaneciendo en su lugar.Sin embargo, si intentamos movernos a un punto menos probable, a veces rechazaremos el movimiento, y cuanto mayor sea la caída relativa de la probabilidad, más probable es que rechacemos el nuevo punto.Intuitivamente, esta es la razón por la cual este algoritmo funciona y devuelve muestras que siguen la distribución deseadaEn distribuciones multivariadas, el algoritmo clásico de Metropolis-Hastings como se describió anteriormente implica elegir un nuevo punto de muestra multidimensional.Un enfoque alternativo que a menudo funciona mejor en tales situaciones, conocido como muestreo de Gibbs, implica elegir una nueva muestra para cada dimensión por separado de las demás, en lugar de elegir una muestra para todas las dimensiones a la vez.
El resultado de tres cadenas de Markov que se ejecutan en la función 3D Rosenbrock utilizando el algoritmo Metropolis-Hastings. El algoritmo toma muestras de regiones donde la probabilidad posterior es alta, y las cadenas comienzan a mezclarse en estas regiones. La posición aproximada del máximo ha sido iluminada. Tenga en cuenta que los puntos rojos son los que quedan después del proceso de quemado. Los primeros han sido descartados.