Bayesian
BUGS/JAGS 等程序如何自動確定吉布斯抽樣的條件分佈?
似乎完整的條件通常很難導出,但是像 JAGS 和 BUGS 這樣的程序會自動導出它們。有人可以解釋他們如何通過算法為任何模型規範生成完整的條件嗎?
通讀對其他答案的評論,我相信通常要問的問題的正確答案是“他們沒有”。如前所述,他們構建了一個 DAG 並查看馬爾可夫毯,然後(大致)執行以下操作。
- 如果節點周圍的馬爾可夫毯對應於查找表中的完整條件(例如,因為它是共軛的),則使用查找表中的技術樣本。
- 否則,檢查未歸一化的完整條件密度(計算起來很簡單)是否是對數凹的。如果是,請使用自適應拒絕採樣。
- 否則,使用 Metropolis-within-Gibbs 從分佈中近似採樣。雖然這不是一個精確的樣本,但可以證明該算法仍然保留後驗不變量。
這並不是正在做的事情。例如,JAGS 將使用其他一些技巧來構建塊更新。但這應該可以讓您了解他們在做什麼。