使用 MCMC 后验作为未来推理的先验

机器算法验证 马尔可夫链蒙特卡罗 马尔可夫随机场
2022-03-15 18:39:27

您能否让我知道如何使用估计的后验分布作为另一个贝叶斯更新的先验?或者甚至以迭代方式使用它,例如在我的情况下,后验是根据空间相关的先前更新来更新的?这会非常低效而不是一次完成吗?

1个回答

严格来说,你必须从头开始重新运行你的 MCMC 算法来逼近新的后验。MCMC 算法不是顺序的,这意味着你不能用新数据更新它们的输出来更新你对后验的估计。你只需要重做它。

但是,您可以使用重要性抽样来使用新数据递归地更新您的后验近似值。这里有两种方法:

又快又脏(而且不太正确)

你已经有了输出{θ(i)}i=1M来自针对目标的 MCMC 算法p(θ|y1:t1). 然后你观察yt,你想以某种方式回收{θ(i)}i=1M近似p(θ|y1:t)无需重新做所有事情。正如我所说,为了 100% 正确地做事,您应该从头开始重新运行 MCMC。但是,如果您坚决不这样做,则可以执行以下操作。假装_{θ(i)}i=1M是 iid 从p(θ|y1:t1). 然后将它们视为重要抽样近似的提案p(θ|y1:t). 重要性权重将是

wip(θ(i)|y1:t)p(θ(i)|y1:t1)p(yt|y1:t1,θ(i)).

这里的信念飞跃是对待 MCMC 抽签就像他们是均匀加权的一样,来自源密度的 iid 抽签p(θ|y1:t1). 但是出于私人的、探索性的目的,当你已经有了 MCMC 绘图并且你想根据一两个新的观察来更新近似值时,这并不是一件疯狂的事情。

最佳实践

如果您事先知道在观察新数据时需要递归地更新后验近似值,那么最好从一开始就使用顺序蒙特卡洛 (SMC) 来近似后验。以下是一些论文:

与其他方法一样,SMC 是一种基于重要性抽样的方法,它允许您在新数据到达时迭代更新您的后验近似值。您从先前的 iid 抽取样本开始,然后递归地重新加权样本以反映新信息。在此过程中,您还使用 MCMC 将样本中的每个绘图移动到参数空间中的某个位置,以更好地反映新数据的影响。