Algoritmo de Metropolis-Hastings
En estadística y física estadística, el algoritmo Metropolis-Hastings es un método de cadena de Markov Monte Carlo (MCMC) para obtener una secuencia de muestras aleatorias a partir de una distribución de probabilidad a partir de la cual el muestreo directo es difícil. Esta secuencia se puede utilizar para aproximar la distribución (por ejemplo, para generar un histograma) o para calcular una integral (por ejemplo, un valor esperado). Metropolis-Hastings y otros algoritmos MCMC se utilizan generalmente para el muestreo de distribuciones multidimensionales, especialmente cuando el número de dimensiones es alto. Para distribuciones unidimensionales, por lo general existen otros métodos (por ejemplo, muestreo de rechazo adaptativo) que pueden devolver directamente muestras independientes de la distribución, y no tienen el problema de las muestras autocorrelacionadas que es inherente a los métodos MCMC.
Historia
El algoritmo lleva el nombre de Nicholas Metropolis y W.K. Hastings. Metropolis fue el primer autor en aparecer en la lista de autores del artículo de 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 durante muchos años se conoció como el "algoritmo Metropolis". En 1970, Hastings lo extendió al caso más general. El método generalizado finalmente recibió ambos nombres, aunque el primer uso del término "algoritmo Metropolis-Hastings" no esta claro; puede haber aparecido por primera vez en una revisión de 1995 de Chib y Greenberg.
Existe cierta controversia con respecto al crédito por el desarrollo del algoritmo Metropolis. Metropolis, que estaba familiarizado con los aspectos computacionales del método, había acuñado el término "Monte Carlo" en un artículo anterior con Stanisław Ulam, y dirigió el grupo en la División Teórica que diseñó y construyó la computadora MANIAC I utilizada en los experimentos en 1952. Sin embargo, antes de 2003 no había una descripción detallada del desarrollo del algoritmo. Poco antes de su muerte, Marshall Rosenbluth asistió a una conferencia de 2003 en LANL con motivo del 50 aniversario de la publicación de 1953. En esta conferencia, Rosenbluth describió el algoritmo y su desarrollo en una presentación titulada "Génesis del algoritmo de Monte Carlo para mecánica estadística". Gubernatis hace más aclaraciones históricas en un artículo de revista de 2005 que relata la conferencia del 50 aniversario. Rosenbluth deja en claro que él y su esposa Arianna hicieron el trabajo y que Metropolis no desempeñó ningún papel en el desarrollo más que proporcionar tiempo de computadora.
Esto contradice un relato de Edward Teller, quien afirma en sus memorias que los cinco autores del artículo de 1953 trabajaron juntos durante 'días (y noches)'. Por el contrario, el relato detallado de Rosenbluth le da crédito a Teller con una sugerencia crucial pero temprana de "aprovechar la mecánica estadística y tomar promedios de conjunto en lugar de seguir una cinemática detallada". Esto, dice Rosenbluth, lo hizo pensar en el enfoque generalizado de Monte Carlo, un tema que dice que había discutido a menudo con John Von Neumann. Arianna Rosenbluth contó (a Gubernatis en 2003) que Augusta Teller inició el trabajo informático, pero que Arianna misma se hizo cargo y escribió el código desde cero. En una historia oral registrada poco antes de su muerte, Rosenbluth nuevamente le da crédito a Teller por plantear el problema original, a él mismo por resolverlo y a Arianna por programar la computadora.
Intuición
El algoritmo de Metropolis-Hastings puede extraer muestras de cualquier distribución de probabilidad con densidad de probabilidad , siempre que conozcamos una función proporcional a la densidad y los valores de se puede calcular. El requisito de que debe ser sólo proporcional a la densidad, en lugar de exactamente igual a ella, hace que el algoritmo de Metropolis-Hastings sea particularmente útil, porque calcular el factor de normalización necesario es a menudo extremadamente difícil en la práctica.
El algoritmo de Metropolis-Hastings funciona generando una secuencia de valores de muestra de tal manera que, a medida que se producen más y más valores de muestra, la distribución de valores se aproxima más de cerca a la distribución deseada. Estos valores de muestra se producen iterativamente, ya que la distribución de la siguiente muestra depende únicamente del valor de muestra actual (por lo que la secuencia de muestras se convierte en una cadena Markov). Específicamente, en cada iteración, el algoritmo elige un candidato para el siguiente valor de muestra basado en el valor de muestra actual. Entonces, con cierta probabilidad, el candidato es aceptado (en cuyo caso el valor candidato se utiliza en la próxima iteración) o rechazado (en cuyo caso se descarta el valor candidato, 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ón de los valores de muestra actuales y candidatos con respecto a la distribución deseada.
Con fines ilustrativos, a continuación se describe el algoritmo Metropolis, un caso especial del algoritmo Metropolis-Hastings donde la función propuesta es simétrica.
Algoritmo Metropolis (distribución de propuesta simétrica)
Vamos ser una función proporcional a la función de densidad de probabilidad deseada (a.k.a. a target distribution).
- Iniciación: Elija un punto arbitrario ser la primera observación en la muestra y elegir una densidad de probabilidad arbitraria (a veces escritos ) que sugiere un candidato para el siguiente valor de muestra , dado el valor de muestra anterior . En esta sección, se supone que es simétrico; en otras palabras, debe satisfacer . Una opción habitual es dejar ser una distribución Gausiana centrada en , por lo que apunta más cerca es más probable que se visite a continuación, haciendo la secuencia de muestras en un paseo aleatorio. La función se conoce como el propuesta densidad o distribución de saltos.
- Para cada iteración t:
- Generar un candidato para la siguiente muestra seleccionando de la distribución .
- Cálculo el ratio de aceptación , que se utilizará para decidir si aceptar o rechazar al candidato. Porque... f es proporcional a la densidad de P, tenemos eso .
- Aceptar o rechazar:
- Generar un número aleatorio uniforme .
- Si , entonces aceptar el candidato estableciendo ,
- Si , entonces Rechazo el candidato y establecer en su lugar.
Este algoritmo procede al intentar moverse aleatoriamente sobre el espacio de la muestra, a veces aceptando los movimientos y a veces permaneciendo en su lugar. Note that the acceptance ratio indica cuán probable es la nueva muestra propuesta con respecto a la muestra actual, según la distribución cuya densidad es . Si intentamos pasar a un punto más probable que el punto existente (es decir, un punto en una región de densidad superior) correspondiente a un Siempre aceptaremos el movimiento. Sin embargo, si intentamos pasar a un punto menos probable, a veces rechazaremos el movimiento, y cuanto más grande sea la caída relativa en probabilidad, más probable es que rechacemos el nuevo punto. Así, tendremos a permanecer en (y devolver un gran número de muestras de) regiones de alta densidad de , mientras que sólo ocasionalmente visitan regiones de baja densidad. Intuitivamente, por eso este algoritmo funciona y devuelve muestras que siguen la distribución deseada con densidad .
En comparación con un algoritmo como el muestreo de rechazo adaptativo que genera directamente muestras independientes a partir de una distribución, Metropolis-Hastings y otros algoritmos de MCMC tienen una serie de desventajas:
- Las muestras están correlacionadas. Aunque a largo plazo sí siguen correctamente , un conjunto de muestras cercanas se correlacionarán entre sí y no reflejarán correctamente la distribución. Esto significa que los tamaños de muestras eficaces pueden ser significativamente menores que el número de muestras realmente tomadas, lo que conduce a errores grandes.
- Aunque la cadena Markov finalmente converge a la distribución deseada, las muestras iniciales pueden seguir una distribución muy diferente, especialmente si el punto de partida está en una región de baja densidad. As a result, a quemador el período suele ser necesario, donde se arroja un número inicial de muestras.
Por otro lado, la mayoría de los métodos de muestreo de rechazo simples sufren la "maldición de la dimensionalidad", donde la probabilidad de rechazo aumenta exponencialmente en función del número de dimensiones. Metropolis-Hastings, junto con otros métodos MCMC, no tienen este problema hasta tal punto y, por lo tanto, a menudo son las únicas soluciones disponibles cuando el número de dimensiones de la distribución que se va a muestrear es alto. Como resultado, los métodos MCMC son a menudo los métodos elegidos para producir muestras a partir de modelos bayesianos jerárquicos y otros modelos estadísticos de alta dimensión que se utilizan hoy en día en muchas disciplinas.
En las distribuciones multivariadas, el algoritmo clásico de Metropolis-Hastings, como se describió anteriormente, implica elegir un nuevo punto de muestra multidimensional. Cuando el número de dimensiones es elevado, puede resultar difícil encontrar la distribución de saltos adecuada, ya que las diferentes dimensiones individuales se comportan de formas muy diferentes y el ancho de salto (ver arriba) debe ser "justo" para todas las dimensiones a la vez para evitar una mezcla excesivamente lenta. 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. De esa manera, el problema de muestrear de un espacio potencialmente de alta dimensión se reducirá a una colección de problemas para muestrear de pequeña dimensionalidad. Esto es especialmente aplicable cuando la distribución multivariante se compone de un conjunto de variables aleatorias individuales en las que cada variable está condicionada solo por un pequeño número de otras variables, como es el caso en la mayoría de los modelos jerárquicos típicos. Las variables individuales luego se muestrean una a la vez, con cada variable condicionada a los valores más recientes de todas las demás. Se pueden usar varios algoritmos para elegir estas muestras individuales, dependiendo de la forma exacta de la distribución multivariante: algunas posibilidades son los métodos de muestreo de rechazo adaptativo, el algoritmo de muestreo de Metropolis de rechazo adaptativo, un paso Metropolis-Hastings unidimensional simple o muestreo por sectores..
Derivación formal
El propósito del algoritmo de Metropolis-Hastings es generar una colección de estados según una distribución deseada . Para lograr esto, el algoritmo utiliza un proceso de Markov, que asintomáticamente alcanza una distribución estacionaria única tales que .
Un proceso de Markov está definido por sus probabilidades de transición , la probabilidad de transición de cualquier estado dado a cualquier otro estado dado . Tiene una distribución estacionaria única cuando se cumplen las dos condiciones siguientes:
- Existencia de distribución estacionaria: debe existir una distribución estacionaria . Una condición suficiente pero no necesaria es un equilibrio detallado, que requiere que cada transición es reversible: para cada par de estados , la probabilidad de estar en estado y transición al Estado debe ser igual a la probabilidad de estar en estado y transición al Estado , .
- Unicidad de la distribución estacionaria: la distribución estacionaria debe ser único. Esto está garantizado por la ergodicidad del proceso de Markov, que requiere que cada estado debe (1) ser aperiódico – el sistema no regresa al mismo estado a intervalos fijos; y (2) ser recidivante positivo – el número esperado de pasos para regresar al mismo estado es finito.
El algoritmo de Metropolis-Hastings implica diseñar un proceso de Markov (construyendo probabilidades de transición) que cumpla las dos condiciones anteriores, de tal manera que su distribución estacionaria es elegido para ser . La derivación del algoritmo comienza con la condición de balance detallado:
que se reescribe como
El enfoque es separar la transición en dos sub-pasos; la propuesta y el rechazo de la aceptación. Distribución de la propuesta es la probabilidad condicional de proponer un estado dado , y la distribución de aceptación es la probabilidad de aceptar el estado propuesto . La probabilidad de transición se puede escribir como producto de ellos:
Insertando esta relación en la ecuación anterior, tenemos
El siguiente paso en la derivación es elegir un índice de aceptación que cumpla la condición anterior. Una elección común es la elección de Metropolis:
Para esta relación de aceptación de Metropolis , o o y, de cualquier manera, la condición está satisfecha.
El algoritmo Metropolis-Hastings se puede escribir de la siguiente manera:
- Inicial
- Escoge un estado inicial .
- Set .
- Iterate
- Generar un estado candidato aleatorio según .
- Cálculo la probabilidad de aceptación .
- Aceptar o rechazar:
- generar un número aleatorio uniforme ;
- si , entonces aceptar el nuevo estado y establecer ;
- si , entonces Rechazo el nuevo estado, y copia el viejo estado adelante .
- Incremento: set .
Siempre que se cumplan las condiciones específicas, la distribución empírica de estados salvados enfoque . El número de iteraciones () requerido para calcular eficazmente depende del número de factores, incluyendo la relación entre y la distribución de propuestas y la exactitud deseada de la estimación. Para distribución en espacios estatales discretos, tiene que ser del orden del tiempo de autocorrelación del proceso de Markov.
Es importante notar que no está claro, en un problema general, qué distribución uno debe utilizar o el número de iteraciones necesarias para una estimación adecuada; ambos son parámetros libres del método, que debe ajustarse al problema particular en la mano.
Uso en integración numérica
Un uso común del algoritmo de Metropolis-Hastings es calcular una integral. Específicamente, considere un espacio y una distribución de probabilidad sobre , . Metropolis–Hastings puede estimar una parte integral de la forma de
Donde es una función de interés (mesurable).
Por ejemplo, considere una estadística y su distribución de probabilidad , que es una distribución marginal. Supongamos que el objetivo es estimar para en la cola . Formalmente, puede ser escrito como
y, por consiguiente, estimación se puede lograr estimando el valor esperado de la función indicadora , que es 1 cuando y cero de lo contrario. Porque... está en la cola , la probabilidad de dibujar un estado con en la cola es proporcional a , que es pequeña por definición. El algoritmo de Metrópolis-Hastings se puede utilizar aquí para mostrar (rare) estados más probables y así aumentar el número de muestras utilizadas para estimar en la cola. Esto se puede hacer por ejemplo utilizando una distribución de muestreo para favorecer a esos estados (por ejemplo, con ).
Instrucciones paso a paso
Supongamos que el valor más reciente muestra . Para seguir el algoritmo de Metropolis-Hastings, a continuación dibujamos un nuevo estado de propuesta con densidad de probabilidad y calcula un valor
dónde
es la relación de probabilidad (por ejemplo, Bayesian posterior) entre la muestra propuesta y la muestra anterior , y
es la proporción de la densidad de la propuesta en dos direcciones (desde a y a la inversa). Esto es igual a 1 si la densidad de la propuesta es simétrica. Entonces el nuevo estado es elegido según las reglas siguientes.
- Si
- más:
La cadena Markov se inicia desde un valor inicial arbitrario , y el algoritmo se ejecuta para muchas iteraciones hasta que este estado inicial es "olvidado". Estas muestras, que se descartan, se conocen como quemador. El conjunto restante de valores aceptados representa una muestra de la distribución .
El algoritmo funciona mejor si la densidad de la propuesta coincide con la forma de la distribución del objetivo , desde el cual el muestreo directo es difícil, es decir . Si una densidad de propuesta Gausiana se utiliza, el parámetro de variación tiene que ser sintonizado durante el período de encendido. Esto se hace generalmente calculando Tasa de aceptación, que es la fracción de muestras propuestas que se acepta en una ventana de la última muestras. La tasa de aceptación deseada depende de la distribución de destino, sin embargo se ha demostrado teóricamente que la tasa de aceptación ideal para una distribución gaussiiana unidimensional es de alrededor del 50%, disminuyendo a alrededor del 23% para un - distribución de objetivos gaussianos. Estas pautas pueden funcionar bien cuando se muestren de los posteriores Bayesianos suficientemente regulares, ya que a menudo siguen una distribución normal multivariable como se puede establecer utilizando el teorema Bernstein-von Mises.
Si es demasiado pequeña, la cadena será mezcla lentamente (es decir, la tasa de aceptación será alta, pero muestras sucesivas se moverán alrededor del espacio lentamente, y la cadena convergerá sólo lentamente a ). Por otro lado, si es demasiado grande, la tasa de aceptación será muy baja porque las propuestas probablemente aterrizarán en regiones de densidad de probabilidad mucho menor, por lo que será muy pequeño, y de nuevo la cadena convergerá muy lentamente. Una típicamente sintoniza la distribución de la propuesta para que los algoritmos acepten en el orden del 30% de todas las muestras – de acuerdo con las estimaciones teóricas mencionadas en el párrafo anterior.
Contenido relacionado
Jean-Baptiste Biot
Espacio separable
Lista de concursos de matemáticas