Comprensión de MCMC: ¿cuál sería la alternativa?

13

Aprendizaje de estadísticas bayesianas por primera vez; Como un ángulo para comprender MCMC, me preguntaba: ¿está haciendo algo que fundamentalmente no se puede hacer de otra manera, o simplemente está haciendo algo mucho más eficiente que las alternativas?

A modo de ilustración, supongamos que estamos tratando de calcular la probabilidad de nuestros parámetros dados los datos dado un modelo que calcula lo contrario, . Para calcular esto directamente con el teorema de Bayes, necesitamos el denominador como se señala aquí . Pero podríamos calcular eso por integración, digamos lo siguiente:P ( D | x , y , z ) P ( D )P(x,y,z|D)P(D|x,y,z)P(D)

p_d = 0.
for x in range(xmin,xmax,dx):
    for y in range(ymin,ymax,dy):
        for z in range(zmin,zmax,dz):
            p_d_given_x_y_z = cdf(model(x,y,z),d)
            p_d += p_d_given_x_y_z * dx * dy * dz

¿Funcionaría (aunque de manera muy ineficiente con un mayor número de variables) o hay algo más que podría hacer que este enfoque falle?

Bob acto secundario
fuente
44
La integración funcionaría en muchos casos, pero tomaría demasiado tiempo (es decir, es ineficiente). MCMC es una forma de estimar la parte posterior de manera eficiente.
Mark White el
3
No es relevante para la pregunta, pero creo que le falta el anterior sobre x, y, z en su integral (aparece en el numerador de la fórmula de Bayes)
alberto

Respuestas:

17

Está describiendo una aproximación de cuadrícula a la posterior, y ese es un enfoque válido, aunque no es el más popular. Hay bastantes casos en los que la distribución posterior puede calcularse analíticamente. Las cadenas Monte Carlo Markov u otros métodos aproximados son métodos para obtener muestras de la distribución posterior, que a veces funcionan cuando no se puede encontrar la solución analítica.

Las soluciones analíticas que se pueden encontrar son típicamente casos de familias "conjugadas", y usted puede encontrar más sobre eso buscando en Google, vea por ejemplo https://en.wikipedia.org/wiki/Conjugate_prior .

Como primer ejemplo, si su anterior pes uniforme [0, 1], donde pes un parámetro de éxito en un experimento binomial simple, el posterior es igual a una distribución Beta. La integración, o suma, se puede hacer explícitamente en este caso.

Si tiene muchas opciones de parámetros, o usa una aproximación de cuadrícula como en su ejemplo, una suma simple puede ser todo lo que necesita. Sin embargo, la cantidad de cálculos puede explotar rápidamente si tiene un par de variables y desea utilizar una grilla densa.

Existen varios algoritmos para el muestreo desde la parte posterior. El hamiltoniano Monte Carlo, específicamente la muestra NUTS, ahora es popular y se usa en , stany PyMC3Metropolis Hastings es el clásico. La inferencia variacional es un recién llegado relativo, no un método de muestreo en realidad, sino una forma diferente de obtener una aproximación. Por el momento, ninguno de los métodos, incluidas las soluciones analíticas, son los mejores, todos funcionan bien en casos específicos.

Gijs
fuente
Buena respuesta, pero su último párrafo parece implicar que la inferencia variacional es un método de muestreo, que no lo es. Podría considerar corregir eso.
Ruben van Bergen el
7

θ

π(θ|x)exp{||θx||2||θ+x||4||θ2x||6},x,θd,
Xi'an
fuente
6

Los métodos de Monte Carlo son técnicas que hacen uso de números aleatorios. El objetivo es encontrar muestras que se distribuyan de acuerdo con y se supone que es complejo. Esto significa que no podemos evaluarlo directamente. Si este no es el caso, puede calcularlo analíticamente. Como en su ejemplo, esto sería .xP(x)P(x)P(D)

Lo que propone es esencialmente una búsqueda de cuadrícula a través del espacio de e . Esto puede ser muy exhaustiva si y son de alta dimensional y no factible si son continuas. Otro problema es que tienes que calcular el cdf en cada paso.xyxy

Los métodos MCMC intentan resolver esto proponiendo muestras candidatas y luego aceptándolas o rechazándolas dependiendo de alguna medida. En teoría, esto puede ser más rápido que pasar por todas las combinaciones posibles. así que básicamente encuentras muestras extraídas de la . Un problema teórico aquí es que este es solo el caso en el número límite de muestras extraídas, es decir, después de samples. Entonces no sabes cuándo detener la cadena de Markov.ciP(D)

hh32
fuente