In che modo programmi come BUGS / JAGS determinano automaticamente le distribuzioni condizionali per il campionamento di Gibbs?


11

Sembra che i condizionali completi siano spesso piuttosto difficili da ricavare, ma programmi come JAGS e BUGS li derivano automaticamente. Qualcuno può spiegare come generano algoritmicamente i condizionali completi per qualsiasi specifica di modello arbitraria?


Non ricordo esattamente, ma so che spesso fanno molte ipotesi molto forti che spesso non sono vere.

3
A proposito del tuo commento, di che tipo di ipotesi stai parlando?
Stéphane Laurent,

Risposte:


3

Leggendo i commenti sulle altre risposte, credo che la risposta corretta alla domanda che si voleva porre sia "loro no", in generale. Come è stato menzionato, costruiscono un DAG e guardano la coperta di Markov e quindi (approssimativamente) fanno quanto segue.

  1. Se la coperta di Markov attorno a un nodo corrisponde a un condizionale completo che si trova in una tabella di ricerca (diciamo, perché è coniugato), campione dall'uso della tecnica nella tabella di ricerca.
  2. Altrimenti, controlla se la densità condizionale completa non normalizzata - che è banale da calcolare - è log-concava. In tal caso, utilizzare il campionamento di rifiuto adattivo.
  3. Altrimenti, campiona usando Metropolis-Within-Gibbs per campionare dalla distribuzione approssimativamente. Sebbene questo non sia un campione esatto, si può dimostrare che questo algoritmo lascia ancora l'invariante posteriore.

Questo non è esattamente ciò che viene fatto; ad esempio, JAGS utilizzerà alcuni altri trucchi per costruire gli aggiornamenti dei blocchi. Ma questo dovrebbe dare un'idea di quello che stanno facendo.


Non conosco la documentazione di BUGS e JAGS così bene, dove è riportato, BTW?
altroware,

@altroware Non conosco bene nemmeno la documentazione, scusa. So che rjagsha una funzione che elenca i campioni che sta usando, qualcosa del genere, list_samplersma puoi controllare la solita documentazione Rper trovarlo.
ragazzo,

0

π()θiθiθiθi

θi


Certo è concettualmente semplice, ma in pratica non è ovvio per me che espressioni in forma chiusa per i condizionali completi sarebbero banali da derivare in modo algoritmico. Ad ogni livello nel DAG, puoi avere tutti i tipi di trasformazioni: interazioni moltiplicative, valore assoluto, log, trasformazioni di radice quadrata ecc. Esistono anche relazioni non coniugate.
user4733,

Non mi è chiaro come si possa automaticamente integrare algoritmicamente le espressioni per le distribuzioni condizionali complete. Forse questi programmi evitano la necessità di ottenere espressioni in forma chiusa per i condizionali completi, ma sto cercando di capire meglio come questo viene implementato nella pratica.
user4733

La costante di normalizzazione non ha importanza, quindi si hanno sempre espressioni in forma chiusa perché moltiplichiamo solo espressioni in forma chiusa. No ? (Sono stanco)
Stéphane Laurent,

Pratica sembra abbastanza difficile anche per me per BUGS determinare la distribuzione condizionale. Forse fornire un esempio (non banale) del processo DAG aiuterà ...
Glen,

@Glen Se fornisci un esempio che ti ha dato difficoltà, farò l'ispezione.
Ciano,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.