像BUGS / JAGS这样的程序如何自动确定Gibbs采样的条件分布?


11

看起来像完全条件的条件通常很难派生,但是JAGS和BUGS之类的程序会自动派生它们。有人可以解释他们如何通过算法为任意模型规范生成完整条件吗?


我记不清了,但是我知道他们经常做出很多非常不正确的假设。

3
关于您的评论,您在谈论什么样的假设?
斯蒂芬·洛朗

Answers:


3

通过阅读关于其他答案的评论,我相信通常要回答的问题的正确答案是“他们不”。如前所述,他们构建了一个DAG并查看了Markov毯子,然后(大致)执行以下操作。

  1. 如果节点周围的马尔可夫覆盖区对应于查找表中的完整条件(例如,因为它是共轭的),则使用该查找表中的技术进行采样。
  2. 否则,检查未标准化的全条件密度(对计算而言微不足道)是否为对数凹形。如果是这样,请使用自适应拒绝采样。
  3. 否则,使用Gibbs中的Metropolis样本从分布中近似采样。虽然这不是一个精确的样本,但可以证明该算法仍保留后验不变性。

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


我不太了解BUGS和JAGS文档,BTW报道在哪里?
altroware

@altroware我也不太了解文档,对不起。我知道rjags有一个列出正在使用的样本的函数,类似,list_samplers但是您可以在其中查看常规文档R
家伙

0

我不确定为什么您认为很难推导出全条件。给出了完整的联合先验概率密度的参数和数据都,充分条件,也就是说,θ 给出θ - 与数据不难推导:它只是成正比联合之前的参数和数据。这很容易通过这些元素的检查,告诉θ - 可以从完全有条件为被丢弃θ πθ一世θ-一世θ-一世θ一世

自动Gibbs采样器通过将模型规范解析为概率有向无环图模型来执行此“检查” 。然后,他们计算出完整的条件语句作为成正比的全联合密度马尔科夫毯θ一世


当然,这在概念上很简单,但是在实践中,对于我来说,对于完整条件的闭式表达式而言,以算法的方式进行推导并不容易,这对我而言并不明显。在DAG的每一层,您可以进行各种转换-乘法交互,绝对值,对数,平方根转换等。还存在非共轭关系。
user4733

对我来说,目前尚不清楚如何自动地将所有条件分布的表达式通过算法进行积分。也许这些程序不需要为完整的条件获取封闭形式的表达式,但是我试图更好地理解如何在实践中实现它。
user4733

归一化常数无关紧要,因此一个总是具有封闭形式的表达式,因为我们只乘以封闭形式的表达式。不是吗 (我很累)
斯蒂芬·洛朗

对于我来说,BUGS确定条件分布对我来说似乎也很困难。也许提供DAG流程的一个例子(非常重要)将有助于……
Glen

@Glen如果您提供给您带来困难的示例,我将进行检查。
青色
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.