Wie bestimmen Programme wie BUGS / JAGS automatisch bedingte Verteilungen für Gibbs-Sampling?

11

Es scheint, dass es oft schwierig ist, vollständige Bedingungen abzuleiten, aber Programme wie JAGS und BUGS leiten sie automatisch ab. Kann jemand erklären, wie er algorithmisch vollständige Bedingungen für eine beliebige Modellspezifikation generiert?

user4733
quelle
Ich erinnere mich nicht genau, aber ich weiß, dass sie oft viele sehr starke Annahmen treffen, die oft nicht wahr sind.
3
Über welche Art von Annahmen sprechen Sie über Ihren Kommentar?
Stéphane Laurent

Antworten:

3

Wenn ich die Kommentare zu den anderen Antworten durchlese, glaube ich, dass die richtige Antwort auf die Frage, die gestellt werden sollte, im Allgemeinen "sie tun es nicht" lautet. Wie bereits erwähnt, konstruieren sie eine DAG und schauen sich die Markov-Decke an und machen dann (ungefähr) Folgendes.

  1. Wenn die Markov-Decke um einen Knoten einer vollständigen Bedingung entspricht, die sich in einer Nachschlagetabelle befindet (z. B. weil sie konjugiert ist), wird die Technik in der Nachschlagetabelle verwendet.
  2. Andernfalls wird geprüft, ob die nicht normalisierte volle bedingte Dichte - die zu berechnen ist - logarithmisch konkav ist. Wenn dies der Fall ist, verwenden Sie die adaptive Ablehnungsabtastung.
  3. Andernfalls probieren Sie mit Metropolis-in-Gibbs, um ungefähr aus der Verteilung zu probieren. Obwohl dies keine exakte Stichprobe ist, kann gezeigt werden, dass dieser Algorithmus die hintere Invariante immer noch verlässt.

Dies ist nicht genau das, was getan wird; JAGS verwendet beispielsweise einige andere Tricks, um Blockaktualisierungen zu erstellen. Dies sollte jedoch eine Vorstellung davon geben, was sie tun.

Kerl
quelle
Ich kenne die BUGS- und JAGS-Dokumentation nicht so gut. Wo wird das gemeldet, übrigens?
Altroware
@altroware Ich kenne die Dokumentation auch nicht gut, sorry. Ich weiß, dass rjagses eine Funktion gibt, die die verwendeten Beispiele auflistet, so etwas wie, list_samplersaber Sie können die übliche Dokumentation überprüfen R, um dies zu finden.
Kerl
0

π()θichθ- -ichθ- -ichθich

θi

Cyan
quelle
Sicher, es ist konzeptionell einfach, aber in der Praxis ist es mir nicht klar, dass es trivial wäre, Ausdrücke in geschlossener Form für die vollständigen Bedingungen auf algorithmische Weise abzuleiten. Auf jeder Ebene in der DAG können Sie alle Arten von Transformationen durchführen - multiplikative Interaktionen, Absolutwert-, Log-, Quadratwurzel-Transformationen usw. Es gibt auch nicht konjugierte Beziehungen.
user4733
Mir ist nicht klar, wie man Ausdrücke für die vollständigen bedingten Verteilungen automatisch algorithmisch integrieren kann. Vielleicht vermeiden diese Programme, geschlossene Ausdrücke für die vollständigen Bedingungen zu erhalten, aber ich versuche, ein besseres Verständnis dafür zu bekommen, wie dies in der Praxis implementiert wird.
user4733
Die Normalisierungskonstante spielt keine Rolle, daher hat man immer Ausdrücke in geschlossener Form, weil wir nur Ausdrücke in geschlossener Form multiplizieren. Nein ? (Ich bin müde)
Stéphane Laurent
Es scheint mir auch für BUGS ziemlich schwierig zu sein, die bedingte Verteilung zu bestimmen. Vielleicht hilft es, ein (nicht triviales) Beispiel für den DAG-Prozess bereitzustellen ...
Glen
@Glen Wenn Sie ein Beispiel angeben, das Ihnen Schwierigkeiten bereitet, werde ich die Inspektion durchführen.
Cyan