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?


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ą.


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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.