从 MCMC 采样进行后验推断的有效样本大小

机器算法验证 贝叶斯 样本量 马尔可夫链蒙特卡罗 后部
2022-02-13 16:25:21

在获取 MCMC 样本以对特定参数进行推断时,应该针对的有效样本的最小数量有哪些好的指导?

而且,随着模型变得或多或少复杂,这个建议会改变吗?

2个回答

您提出的问题与“收敛诊断”不同。假设您已经运行了所有收敛诊断(选择您最喜欢的),现在准备从后验开始采样。

在有效样本量(ESS)方面有两种选择,您可以选择单变量 ESS 或多变量 ESS。单变量 ESS 将分别为每个参数提供有效的样本量,并且保守的方法要求您选择最小的估计值。此方法忽略跨组件的所有互相关。这可能是大多数人已经使用了一段时间

最近,引入了 ESS 的多元定义。多元 ESS 返回一个数字,表示您要估计的数量的有效样本量;它通过考虑过程中的所有互相关来做到这一点。就个人而言,我更喜欢多元 ESS。假设您对p-后验分布均值向量。mESS定义如下

mESS=n(|Λ||Σ|)1/p.
这里

  1. Λ是后验的协方差结构(如果您有独立样本,也是 CLT 中的渐近协方差)
  2. Σ是马尔可夫链 CLT 中的渐近协方差矩阵(不同于Λ因为样本是相关的。
  3. p是估计数量的数量(或者在这种情况下,是后验的维度。
  4. ||是决定因素。

mESS可以通过使用样本协方差矩阵来估计Λ和批次均值协方差矩阵来估计Σ. 这已multiESS在 R 包mcmcse的函数中编码。

这篇最近的论文提供了所需有效样本数量的理论上有效的下限。在模拟之前,您需要确定

  1. ϵ: 精度。ϵ是您希望蒙特卡洛与后验误差相比的误差分数。这类似于在经典设置中进行样本量计算时的误差范围。
  2. α:构建置信区间的水平。
  3. p:您估计的数量。

通过这三个数量,您将知道您需要多少有效样品。论文要求​​第一次停止模拟

mESS22/pπ(pΓ(p/2))2/pχ1α,p2ϵ2,

在哪里Γ()是伽马函数。这个下限可以通过minESS在 R 包mcmcse中使用来计算。

所以现在假设你有p=20后面的参数,你想要95%对您的估计有信心,并且您希望蒙特卡洛误差为 5%(ϵ=.05) 的后验误差,你需要

> minESS(p = 20, alpha = .05, eps = .05)
[1] 8716

这适用于任何问题(在规律性条件下)。这种方法适应不同问题的方式是缓慢混合马尔可夫链需要更长的时间才能达到下限,因为 mESS 会更小。multiESS因此,现在您可以使用您的马尔可夫链是否已达到该界限来检查几次;如果不去拿更多的样品。

收敛取决于几件事:参数的数量、模型本身、采样算法、数据......

我建议避免任何一般规则,并使用一些收敛诊断工具来检测每个特定示例中适当的老化和细化迭代次数。另请参阅http://www.johnmyleswhite.com/notebook/2010/08/29/mcmc-diagnostics-in-r-with-the-coda-package/http://users.stat.umn.edu/~geyer/mcmc/diag.html