Algoritmo de Metropolis-Hastings

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 21 de mayo de 2017; la verificación requiere 1 edición .

El algoritmo Metropolis-Hastings  es un algoritmo de muestreo utilizado principalmente para funciones de distribución complejas . Es algo similar al algoritmo de muestreo de varianza , sin embargo, aquí la función de distribución auxiliar cambia con el tiempo. El algoritmo fue publicado por primera vez por Nicholas Metropolis en 1953 y luego generalizado por C. Hastings en 1970 . El muestreo de Gibbs es un caso especial del algoritmo Metropolis-Hastings y es más popular debido a su simplicidad y velocidad, aunque se aplica con menos frecuencia.

El algoritmo Metropolis-Hastings le permite muestrear cualquier función de distribución. Se basa en la creación de una cadena de Markov , es decir, en cada paso del algoritmo, el nuevo valor elegido depende únicamente del anterior . El algoritmo utiliza una función de distribución auxiliar en función de , para la cual es fácil generar una muestra (por ejemplo, la distribución normal ). En cada paso, se genera un valor aleatorio para esta función . Entonces con probabilidad

(o con probabilidad 1 si ), el valor seleccionado se acepta como nuevo: , en caso contrario se deja el antiguo: .

Por ejemplo, si tomamos la función de distribución normal como función auxiliar, entonces

Tal función produce un nuevo valor dependiendo del valor del paso anterior. Inicialmente, el algoritmo Metropolis requería que la función auxiliar fuera simétrica: , pero la generalización de Hastings elimina esta restricción.

Algoritmo

Supongamos que ya hemos elegido un valor aleatorio . Para seleccionar el siguiente valor, primero obtenga un valor aleatorio para la función . Luego encontramos el producto , donde

es la razón de las probabilidades entre el valor intermedio y el anterior, y

es la razón entre las probabilidades de ir de a o de volver. Si es simétrico, entonces el segundo factor es igual a 1. El valor aleatorio en el nuevo paso se elige de acuerdo con la regla:

El algoritmo parte de un valor aleatorio y primero ejecuta "inactivo" una serie de pasos para "olvidarse" del valor inicial.

El algoritmo funciona mejor cuando la forma de la función auxiliar se acerca a la forma de la función objetivo . Sin embargo, esto es a menudo imposible de lograr a priori. Para resolver este problema, la función auxiliar se sintoniza durante la etapa preparatoria del algoritmo. Por ejemplo, para una distribución normal, ajuste su parámetro para que la proporción de valores aleatorios "aceptados" (es decir, aquellos para los que ) sea cercana al 60%. Si es demasiado pequeño, los valores serán demasiado cercanos y la tasa de aceptación será alta. Si es demasiado grande, entonces, con una alta probabilidad, los nuevos valores saltarán a las zonas de baja probabilidad , por lo que la proporción de valores aceptados será baja.