Los algoritmos MCMC como el muestreo de Metropolis-Hastings y Gibbs son formas de muestreo de las distribuciones posteriores conjuntas.
Creo que entiendo y puedo implementar la aceleración de las metrópolis con bastante facilidad: simplemente elige los puntos de partida de alguna manera y "recorre el espacio de parámetros" al azar, guiado por la densidad posterior y la densidad de propuesta. El muestreo de Gibbs parece muy similar pero más eficiente, ya que actualiza solo un parámetro a la vez, mientras mantiene constantes los demás, recorriendo el espacio de manera ortogonal.
Para hacer esto, necesita el condicional completo de cada parámetro en análisis desde *. ¿Pero de dónde vienen estos condicionales completos? Para obtener el denominador necesita marginar la articulación sobre . Parece mucho trabajo analítico si hay muchos parámetros, y podría no ser manejable si la distribución conjunta no es muy "agradable". Me doy cuenta de que si usa conjugación en todo el modelo, los condicionales completos pueden ser fáciles, pero debe haber una mejor manera para situaciones más generales. x1
Todos los ejemplos de muestreo de Gibbs que he visto en línea usan ejemplos de juguetes (como el muestreo de una normal multivariada, donde los condicionales son simplemente normales), y parecen esquivar este problema.
* ¿O necesita los condicionales completos en forma analítica? ¿Cómo lo hacen programas como winBUGS?
Respuestas:
Sí, tiene razón, la distribución condicional debe encontrarse analíticamente, pero creo que hay muchos ejemplos en los que la distribución condicional completa es fácil de encontrar y tiene una forma mucho más simple que la distribución conjunta.
La intuición para esto es la siguiente, en la mayoría de las distribuciones conjuntas "realistas" , la mayoría de las X i son generalmente condicionalmente independientes de la mayoría de las otras variables aleatorias. Es decir, algunas de las variables tienen interacciones locales , por ejemplo, X i depende de X i - 1 y X i + 1 , pero no interactúa con todo, por lo tanto, las distribuciones condicionales deberían simplificarse significativamente como P r (P(X1,…,Xn) Xi Xi Xi−1 Xi+1 Pr(Xi|X1,…,Xi)=Pr(Xi|Xi−1,Xi+1)
fuente
Creo que te has perdido la principal ventaja de algoritmos como Metropolis-Hastings. Para el muestreo de Gibbs, deberá tomar muestras de los condicionales completos. Tienes razón, eso rara vez es fácil de hacer. La principal ventaja de los algoritmos de Metropolis-Hastings es que aún puede muestrear un parámetro a la vez, pero solo necesita conocer los condicionales completos hasta la proporcionalidad. Esto se debe a que los denominadores se cancelan en la función de criterios de aceptación
Los programas como WinBugs / Jags generalmente toman Metropolis-Hastings o pasos de muestreo de corte que solo requieren los condicionales hasta la proporcionalidad. Estos son fácilmente disponibles desde el DAG. Dada la conjugación, a veces también toman pasos directos de Gibbs o paradas de bloqueo elegantes.
fuente