Zrozumienie MCMC: jaka byłaby alternatywa?

13

Nauka statystyk bayesowskich po raz pierwszy; zastanawiając się nad kątem MCMC, zastanawiałem się: czy robi coś, czego zasadniczo nie da się zrobić inaczej, czy też robi coś znacznie wydajniejszego niż alternatywy?

Dla ilustracji załóżmy, że próbujemy obliczyć prawdopodobieństwo naszych parametrów, biorąc pod uwagę dane biorąc pod uwagę model, który oblicza coś przeciwnego, . Aby obliczyć to bezpośrednio za pomocą twierdzenia Bayesa, potrzebujemy mianownika jak wskazano tutaj . Ale czy możemy to obliczyć przez integrację, powiedzmy w następujący sposób: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

Czy to zadziałałoby (choć bardzo nieefektywnie przy większej liczbie zmiennych), czy może jest coś innego, co spowodowałoby niepowodzenie tego podejścia?

Sideshow Bob
źródło
4
Integracja działałaby w wielu przypadkach, ale trwałaby zbyt długo (tzn. Jest nieefektywna). MCMC to sposób na efektywne oszacowanie tylnej części ciała.
Mark White,
3
Nie dotyczy pytania, ale myślę, że brakuje ci wcześniejszego niż x, y, z w całce (pojawia się w liczniku formuły Bayesa)
alberto,

Odpowiedzi:

17

Opisujesz przybliżenie siatki do tylnej części ciała i jest to prawidłowe podejście, choć nie najpopularniejsze. Istnieje kilka przypadków, w których rozkład tylny można obliczyć analitycznie. Łańcuchy Monte Carlo Markowa lub inne przybliżone metody to metody uzyskiwania próbek rozkładu tylnego, które czasem działają, gdy nie można znaleźć rozwiązania analitycznego.

Rozwiązania analityczne, które można znaleźć, to zazwyczaj przypadki rodzin „sprzężonych”, a więcej informacji na ten temat można znaleźć w Google, patrz na przykład https://en.wikipedia.org/wiki/Conjugate_prior .

Jako pierwszy przykład, jeśli twój poprzedni pjest jednolity [0, 1], gdzie pparametr sukcesu w prostym eksperymencie dwumianowym, tył jest równy rozkładowi Beta. W takim przypadku integrację lub sumowanie można wykonać jawnie.

Jeśli masz do wyboru wiele parametrów lub korzystasz z przybliżenia siatki, tak jak w twoim przykładzie, proste podsumowanie może być wszystkim, czego potrzebujesz. Liczba obliczeń może jednak gwałtownie wzrosnąć, jeśli masz kilka zmiennych i chcesz użyć gęstej siatki.

Istnieje kilka algorytmów próbkowania z tyłu. Hamiltonian Monte Carlo, a zwłaszcza sampler NUTS, jest teraz popularny i stosowany w, stana PyMC3Metropolis Hastings to klasyk. Wnioskowanie wariacyjne jest względnym nowicjuszem, właściwie nie metodą próbkowania, ale innym sposobem uzyskania aproksymacji. W tej chwili żadna z metod, w tym rozwiązania analityczne, nie jest najlepsza, wszystkie działają dobrze w określonych przypadkach.

Gijs
źródło
Dobra odpowiedź, ale ostatni akapit wydaje się sugerować, że wnioskowanie wariacyjne jest metodą próbkowania, a nie jest. Możesz rozważyć poprawienie tego.
Ruben van Bergen
7

θ

π(θ|x)exp{||θx||2||θ+x||4||θ2x||6},x,θd,
Xi'an
źródło
6

Metody Monte Carlo to techniki wykorzystujące liczby losowe. Celem jest znalezienie próbek które są rozmieszczone zgodnie z i zakłada się, że jest złożone. Oznacza to, że nie możemy ocenić go bezpośrednio. Jeśli tak nie jest, możesz to po prostu obliczyć analitycznie. Jak w twoim przykładzie byłoby to .P ( x ) P ( x ) P ( D )xP(x)P(x)P(D)

Co proponujecie jest zasadniczo wyszukiwania siatki poprzez przestrzeni i . Może to być bardzo wyczerpująca jeśli i są wysokie wymiarów i niemożliwe, jeśli są one w sposób ciągły. Innym problemem jest to, że musisz obliczyć plik cdf na każdym kroku.y x yxyxy

Metody MCMC próbują rozwiązać ten problem, proponując próbki kandydujące a następnie przyjmując lub odrzucając je w zależności od niektórych miar. Teoretycznie może to być szybsze niż przejście przez wszystkie możliwe kombinacje. więc w zasadzie znajdziesz próbki, które są pobierane z wcześniejszego . Problem teoretyczny polega na tym, że dzieje się tak tylko w przypadku ograniczonej liczby pobranych próbek, tj . Próbek . Więc nie wiesz, kiedy zatrzymać Łańcuch Markowa. P ( D ) ciP(D)

hh32
źródło