BUGS/JAGS 等程序如何自动确定吉布斯抽样的条件分布?

机器算法验证 贝叶斯 条件概率 锯齿 错误 吉布斯
2022-03-28 09:43:15

似乎完整的条件通常很难导出,但是像 JAGS 和 BUGS 这样的程序会自动导出它们。有人可以解释他们如何通过算法为任何模型规范生成完整的条件吗?

2个回答

通读对其他答案的评论,我相信通常要问的问题的正确答案是“他们没有”。如前所述,他们构建了一个 DAG 并查看马尔可夫毯,然后(大致)执行以下操作。

  1. 如果节点周围的马尔可夫毯对应于查找表中的完整条件(例如,因为它是共轭的),则使用查找表中的技术样本。
  2. 否则,检查未归一化的完整条件密度(计算起来很简单)是否是对数凹的。如果是,请使用自适应拒绝采样。
  3. 否则,使用 Metropolis-within-Gibbs 从分布中近似采样。虽然这不是一个精确的样本,但可以证明该算法仍然保留后验不变量。

这并不是正在做的事情。例如,JAGS 将使用其他一些技巧来构建块更新。但这应该可以让您了解他们在做什么。

我不确定为什么您认为很难推导出完整的条件。给定参数和数据的完整联合先验概率密度,假设给定和数据的完整条件很容易推导出:它只是与联合先验参数和数据。通过检查可以很容易地判断的哪些元素可以从的完整条件中删除。π()θiθiθiθi

自动 Gibbs 采样器通过将模型规范解析为概率有向无环图模型来执行这种“检查” 。马尔可夫毯的完整联合密度成比例的完整条件θi