Algorytmy MCMC, takie jak próbkowanie Metropolis-Hastings i Gibbs, są sposobami próbkowania ze wspólnych rozkładów tylnych.
Wydaje mi się, że rozumiem i potrafię dość łatwo wdrożyć pospieszanie metropolii - po prostu wybierasz punkty początkowe i „chodzisz po przestrzeni parametrów” losowo, kierując się gęstością a posteriori i gęstością propozycji. Próbkowanie Gibbsa wydaje się bardzo podobne, ale bardziej wydajne, ponieważ aktualizuje tylko jeden parametr na raz, utrzymując pozostałe na stałym poziomie, skutecznie chodząc po przestrzeni w ortogonalny sposób.
Aby to zrobić, potrzebujesz pełnego warunku każdego parametru w trybie analitycznym od *. Ale skąd pochodzą te pełne warunki warunkowe? Aby uzyskać mianownik, należy zmarginalizować połączenie ponad . Wydaje się, że jest dużo pracy do wykonania analitycznego, jeśli istnieje wiele parametrów, i może nie być wykonalny, jeśli wspólny rozkład nie jest zbyt „miły”. Zdaję sobie sprawę, że jeśli używasz koniugacji w całym modelu, pełne warunki warunkowe mogą być łatwe, ale musi być lepszy sposób na bardziej ogólne sytuacje. x1
Wszystkie przykłady próbkowania Gibbsa, które widziałem online, wykorzystują przykłady zabawek (takie jak próbkowanie z wielowymiarowej normalnej, gdzie warunki warunkowe same w sobie są normalne) i wydają się unikać tego problemu.
* Czy w ogóle potrzebujesz pełnych warunków warunkowych w formie analitycznej? Jak to robią programy takie jak winBUGS?
Odpowiedzi:
Tak, masz rację, rozkład warunkowy należy znaleźć analitycznie, ale myślę, że istnieje wiele przykładów, w których pełny rozkład warunkowy jest łatwy do znalezienia i ma znacznie prostszą formę niż rozkład łączony.
Intuicji tego jest jak następuje, w większości „rzeczywiste” wspólnego rozkładów , większość z X ı „S są zazwyczaj warunkowo niezależnie od większości innych zmiennych losowych. Oznacza to, że niektóre zmienne lokalne interakcje, powiedzmy X i zależy X í - 1 i X i + 1 , ale nie oddziałuje ze wszystkim, stąd rozkłady warunkowe powinno znacznie uprościć jako P R (P.( X1, ... ,Xn) Xja Xja Xi - 1 Xi + 1 P.r ( Xja| X1, … , Xja) = Pr ( Xja| Xi - 1, Xi + 1)
źródło
Myślę, że przegapiłeś główną zaletę algorytmów takich jak Metropolis-Hastings. W przypadku próbkowania Gibbs konieczne będzie pobranie próbek z pełnych warunków warunkowych. Masz rację, co rzadko jest łatwe do zrobienia. Główną zaletą algorytmów Metropolis-Hastings jest to, że nadal można próbkować jeden parametr na raz, ale trzeba znać tylko pełne warunki warunkowe, aż do proporcjonalności. Wynika to z faktu, że mianowniki anulują się w funkcji kryteriów akceptacji
Nienormalizowane pełne warunki warunkowe są często dostępne. Na przykład, w przykładzie , który masz. Nie musisz wykonywać żadnych całek analitycznie. W większości aplikacji wiele więcej prawdopodobnie również anuluje.P.( x1| x2), . . ., xn) ∝ P(x1, . . . ,xn)
Programy takie jak WinBugs / Jags zazwyczaj wykonują Metropolis-Hastings lub etapy próbkowania w plasterkach, które wymagają tylko warunkowych operacji do proporcjonalności. Są one łatwo dostępne w DAG. Biorąc pod uwagę koniugację, czasami wykonują proste kroki Gibbsa lub fantazyjne przystanki blokowe.
źródło