W jaki sposób programy takie jak BŁĘDY / JAGS automatycznie określają rozkłady warunkowe dla próbkowania Gibbs?

11

Wydaje się, że pełne warunki warunkowe są często dość trudne do uzyskania, ale programy takie jak JAGS i BŁĘDY wyprowadzają je automatycznie. Czy ktoś może wyjaśnić, w jaki sposób algorytmicznie generuje pełne warunki warunkowe dla dowolnej specyfikacji modelu?

użytkownik4733
źródło
Nie pamiętam dokładnie, ale wiem, że często przyjmują wiele bardzo mocnych założeń, które często nie są prawdziwe.
3
O twoim komentarzu, o jakich założeniach mówisz?
Stéphane Laurent,

Odpowiedzi:

3

Czytając komentarze do innych odpowiedzi, uważam, że poprawną odpowiedzią na pytanie, które miało być zadane, jest ogólnie „nie”. Jak już wspomniano, konstruują DAG i patrzą na koc Markowa, a następnie (z grubsza) wykonują następujące czynności.

  1. Jeśli koc Markowa wokół węzła odpowiada pełnemu warunkowi, który znajduje się w tabeli odnośników (powiedzmy, ponieważ jest sprzężony), próbka zastosowania techniki w tabeli odnośników.
  2. W przeciwnym razie sprawdź, czy nienormalizowane pełne zagęszczenie warunkowe - które jest łatwe do obliczenia - jest wklęsłe. Jeśli tak, użyj adaptacyjnego próbkowania odrzucania.
  3. W przeciwnym razie próbkuj za pomocą Metropolis-in-Gibbs, aby pobierać próbki z rozkładu w przybliżeniu. Chociaż nie jest to dokładna próbka, można wykazać, że algorytm ten pozostawia niezmiennik tylny.

Nie do końca tak się dzieje; na przykład JAGS użyje innych sztuczek, aby skonstruować aktualizacje bloków. Ale to powinno dać wyobrażenie o tym, co robią.

chłopak
źródło
Nie znam tak dobrze dokumentacji BŁĘDÓW i JAGSÓW, gdzie to jest zgłaszane, BTW?
altroware
@altroware Nie znam też dobrze dokumentacji, przepraszam. Wiem, że rjagsma funkcję, która wyświetla listę używanych przez nią próbek, coś w rodzaju, list_samplersale możesz to sprawdzić w zwykłej dokumentacji, Raby to znaleźć.
facet
0

π()θiθiθiθi

θi

Cyjan
źródło
Pewnie, że jest to proste koncepcyjnie, ale w praktyce nie jest dla mnie oczywiste, że wyrażenia w formie zamkniętej dla pełnych warunków warunkowych byłyby trywialne w algorytmiczny sposób. Na każdej warstwie w DAG możesz mieć wszelkiego rodzaju transformacje - interakcje multiplikatywne, wartość bezwzględna, log, transformacje pierwiastkowe itp. Istnieją również relacje niesprzężone.
user4733,
Nie jest dla mnie jasne, jak można automatycznie algorytmicznie zintegrować wyrażenia dla pełnych rozkładów warunkowych. Być może programy te unikają potrzeby uzyskiwania wyrażeń w formie zamkniętej dla pełnych warunków, ale staram się lepiej zrozumieć, jak to jest wdrażane w praktyce.
user4733,
Stała normalizacyjna nie ma znaczenia, dlatego zawsze mamy wyrażenia zamknięte, ponieważ mnożymy tylko wyrażenia zamknięte. Nie? (Jestem zmęczony)
Stéphane Laurent,
Praktyka wydaje mi się również dość trudna dla BŁĘDÓW, aby określić rozkład warunkowy. Być może podanie przykładu (nietrywialnego) procesu DAG pomoże ...
Glen
@Glen Jeśli podasz przykład, który sprawia ci trudność, przeprowadzę kontrolę.
Cyan