当使用 MCMC 逼近后验时,为什么我们不保存后验概率,而是在之后使用参数值频率?

机器算法验证 贝叶斯 马尔可夫链蒙特卡罗 后部
2022-03-13 17:12:31

我目前正在估计由几个常微分方程 (ODE) 定义的模型的参数。我通过使用马尔可夫链蒙特卡罗(MCMC)在给定一些数据的情况下近似参数的后验分布来尝试使用贝叶斯方法。

MCMC 采样器生成一个参数值链,其中它使用某个参数值的(未归一化的)后验概率来(随机地)决定是将该值添加到链中还是再次添加先前的值。但是,似乎不需要保存实际的后验概率,而是生成结果参数值的 n 维直方图,并计算参数后验分布的最高密度区域 (HDR) 等汇总统计数据从这个直方图中。至少这是我认为我从Kruschkes 关于贝叶斯推理的教程书中学到的。

我的问题:将采样参数值的后验概率与这些一起保存并从这些值而不是从 MCMC 链中参数值的频率近似后验分布不是更直接吗?老化阶段的问题不会出现,因为采样器最初仍然会更频繁地对低概率区域进行采样,而不是它们“应得”的后验概率,但不再是给这些区域提供过高概率值的问题。

2个回答

这是一个有趣的问题,有不同的问题:

  1. MCMC 算法并不总是在所有提议的值处回收后验密度的计算,但一些方差减少技术(如 Rao-Blackwellisation)会这样做。例如,在1996 年与 George Casella 的 Biometrika 论文中,我们建议使用所有模拟值,通过引入权重将平均值变成一个几乎无偏的估计量。几乎是由于权重之和的归一化。)θi (i=1,,T)ωi
    i=1Tωih(θi)/i=1Tωi
  2. MCMC 常用于大(参数)维度的问题。根据在某些参数值处观察到的密度值提出整个后验的近似值是一个相当大的挑战,包括 Tim 的回答和评论中提到的归一化常数问题。可以想象一种混合了非参数核估计(例如克里金法)和回归的方法,但我与[几年前]讨论过的有关此解决方案的专家对此持怀疑态度。问题是生成的估计器仍然是非参数的,因此“享受”比蒙特卡罗收敛速度慢的非参数收敛速度,维度越大越差。
  3. 后验值可用性的另一个潜在用途是通过关联的后验对每个模拟值进行加权,如不幸的是,这会产生偏差,因为模拟值已经从后验中模拟出来了: 即使没有归一化问题,因此,这些模拟应该针对并使用与π(θ|D)
    1Tt=1Th(θt)π(θt|D)
    E[h(θt)π(θt|D)]=h(θ)h(θt)π(θt|D)2dθ
    π(θ|D)1/2π(θ|D)1/2但我不知道提倡这种目标转换的结果。正如您在评论中提到的,这与回火有关,因为在模拟回火周期内产生的所有模拟都可以通过这种方式回收用于蒙特卡罗(集成)目的。然而,一个数值问题是处理几个缺少标准化常数π(θ)1/T

正如您正确注意到的那样,我们正在处理的概率是未一化的。基本上,我们使用 MCMC 来计算贝叶斯定理中的归一化因子。我们不能使用这些概率,因为它们是未归一化的。您建议的过程:保存未归一化的概率然后将它们除以它们的总和是不正确的。

让我通过示例向您展示。想象一下,您使用 Monte Carlo 从由参数化的伯努利分布中绘制了 10 个值,它们如下:p=0.9

1 0 1 1 1 1 1 1 1 1

你也有相应的概率:

0.9 0.1 0.9 0.9 0.9 0.9 0.9 0.9 0.9 0.9

在这种情况下,概率被归一化,但是除以它们的总和(概率公理等于单位)应该不会改变任何事情。不幸的是,使用您的程序确实会将结果更改为:

> f/sum(f)
 [1] 0.10975610 0.01219512 0.10975610 0.10975610 0.10975610 0.10975610 0.10975610 0.10975610 0.10975610 0.10975610

这是为什么?答案很简单,在您的样本中,每个保存的“概率”都f以概率出现f,因此您自己对概率进行加权!