Entendendo o MCMC: qual seria a alternativa?

13

Aprendendo estatísticas bayesianas pela primeira vez; como um ângulo para entender o MCMC, eu me perguntava: está fazendo algo que fundamentalmente não pode ser feito de outra maneira, ou está apenas fazendo algo com muito mais eficiência do que as alternativas?

A título de ilustração, suponha que estamos tentando calcular a probabilidade de nossos parâmetros, dados os dados P(x,y,z|D) dados um modelo que calcula o oposto, . Para calcular isso diretamente com o teorema de Bayes, precisamos do denominador como apontado aqui . Mas poderíamos calcular isso por integração, digamos o seguinte: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

Isso funcionaria (embora de maneira muito ineficiente com números mais altos de variáveis) ou há algo mais que causaria falha nessa abordagem?

Sideshow Bob
fonte
4
A integração funcionaria em muitos casos, mas levaria muito tempo (isto é, é ineficiente). O MCMC é uma maneira de estimar o posterior com eficiência.
Mark White
3
Não é relevante para a questão, mas acho que você está perdendo o prévio sobre x, y, z em sua integral (que aparece no numerador da fórmula de Bayes)
alberto

Respostas:

17

Você está descrevendo uma aproximação de grade à posterior, e essa é uma abordagem válida, embora não seja a mais popular. Existem alguns casos em que a distribuição posterior pode ser calculada analiticamente. As cadeias de Monte Carlo Markov, ou outros métodos aproximados, são métodos para obter amostras da distribuição posterior, que às vezes funcionam quando a solução analítica não pode ser encontrada.

As soluções analíticas que podem ser encontradas são geralmente casos de famílias "conjugadas" e você pode descobrir mais sobre isso pesquisando no Google, por exemplo, https://en.wikipedia.org/wiki/Conjugate_prior .

Como primeiro exemplo, se sua prévia pfor uniforme [0, 1], onde pé um parâmetro de sucesso em um experimento binomial simples, a posterior é igual a uma distribuição Beta. Integração, ou soma, pode ser feita explicitamente neste caso.

Se você tiver muitas opções de parâmetros finitos ou usar uma aproximação de grade como no seu exemplo, uma soma simples pode ser tudo o que você precisa. O número de cálculos pode explodir rapidamente, no entanto, se você tiver algumas variáveis ​​e quiser usar uma grade densa.

Existem vários algoritmos para amostragem a partir do posterior. Hamiltonian Monte Carlo, especificamente o amostrador NUTS, agora é popular e usado em stane PyMC3, Metropolis Hastings é o clássico. A inferência variacional é um recém-chegado relativo, não um método de amostragem, na verdade, mas uma maneira diferente de obter uma aproximação. No momento, nenhum dos métodos, incluindo soluções analíticas, é o melhor, todos funcionam bem em casos específicos.

Gijs
fonte
Boa resposta, mas seu último parágrafo parece implicar que a inferência variacional é um método de amostragem, o que não é. Você pode corrigir isso.
Ruben van Bergen
7

θ

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

xP(x)P(x)P(D)

xyxy

cEuP(D)

hh32
fonte