尺度参数的弱信息先验分布

机器算法验证 分布 贝叶斯 造型 事先的 最大熵
2022-01-18 15:59:35

我一直在使用对数正态分布作为尺度参数的先验分布(对于正态分布、t 分布等),当我对尺度应该是什么有一个粗略的了解时,但想在说我不知道​​的时候犯错很多关于它。我使用它是因为这种用法对我来说很直观,但我还没有看到其他人使用它。这有什么隐患吗?

4个回答

我建议使用“第二类 Beta 分布”(简称 Beta 2)来获得信息量较少的分布,如果您有强烈的先验信念,请使用共轭逆伽马分布。我这么说的原因是共轭先验是不鲁棒的,如果先验和数据冲突,先验对后验分布有无限的影响。这种行为就是我所说的“教条主义”,而不是通过温和的先验信息来证明。

决定鲁棒性的属性是先验和似然的尾部行为。一篇很好的文章概述了技术细节在这里例如,可以选择一个可能性(比如 t 分布),以便作为观察yi(即变得任意大)它从位置参数的分析中被丢弃(与您直观地对这种观察进行的方式非常相似)。“丢弃”率取决于分布尾部的重量。

可以在此处找到一些显示分层建模上下文中的应用程序的幻灯片(显示 Beta 2分布的数学形式),并在此处找到一篇论文。

如果您不在分层建模上下文中,那么我建议比较后验(或您正在创建的任何结果),但使用Jeffreys 先验作为比例参数,该参数由下式给出p(σ)1σ. 这可以创建为 Beta 2密度的限制,因为它的两个参数都收敛到零。对于近似值,您可以使用较小的值。但是,如果可能的话,我会尝试分析解决方案(如果不是完整的分析解决方案,请尽可能地获得分析解决方案),因为您不仅可以节省一些计算时间,而且可以也可能更好地理解模型中发生的事情。

另一种选择是以约束的形式指定您的先验信息(平均值等于M, 方差等于V, IQR 等于IQR等,其值为M,V,IQR由您自己指定),然后使用关于 Jeffreys 的“不变测度”的最大熵分布(搜索 Edwin Jaynes 或 Larry Bretthorst 的任何作品,以很好地解释最大熵是什么以及它不是什么)m(σ)=1σ.

MaxEnt是“劳斯莱斯”版本,而Beta 2更像是“轿车”版本。这样做的原因是 MaxEnt 发行版“假设最少”受到您放入其中的约束(例如,没有约束意味着您只是先得到 Jeffreys),而 Beta 2发行版可能包含一些“隐藏”的特性在您的特定情况下可能需要也可能不需要(例如,如果先前的信息比数据更可靠,那么 Beta 2是不好的)。

MaxEnt 分布的另一个不错的特性是,如果数据生成机制中没有未指定的约束,那么 MaxEnt 分布绝对是您将看到的最有可能的分布(我们所说的几率超过数十亿和数万亿比一)。因此,如果您看到的分布不是 MaxEnt 分布,则可能存在您未指定在真实过程上运行的其他约束,并且观察到的值可以提供关于该约束可能是什么的线索。

Daniels 的以下论文比较了各种收缩先验的方差。这些是适当的先验,但我不确定有多少可以被称为非信息性的。但是,他还提供了一个非信息性先验列表(并非全部正确)。下面是参考。

MJ Daniels (1999),分层模型方差的先验加拿大 J. Stat。, 卷。27,没有。3,第 567-578 页。

先验

  1. K(持续的)
  2. 位置规模τ2
  3. 右不变 Haarτ1
  4. 杰弗里斯1/(σ2+τ2)
  5. 正确的杰弗里斯σ/(2(σ2+τ2)3/2)
  6. 均匀收缩σ2/(σ2+τ2)
  7. 杜穆切尔σ/(2τ(σ+τ)2)

另一篇相关的最新论文如下。

A. Gelman (2006),层次模型中方差参数的先验分布贝叶斯分析,第一卷。1,没有。3,第 515-533 页。

(问题是陈旧的,但问题不是)

就个人而言,我认为你的直觉是有道理的。也就是说,如果您不需要共轭的数学整洁性,那么无论您将用于位置参数的分布如何,您都应该对比例参数的对数使用相同的分布。所以,你的意思是:使用普通先验的等价物。

你真的会使用普通的先验作为位置参数吗?大多数人会说,除非你使差异很大,否则这可能有点“太教条”,原因在此处的其他答案中解释(无限影响)。如果您正在做经验贝叶斯,则例外。也就是说,使用您的数据来估计您的先验参数。

如果您想“提供信息量较弱”,您可能会选择尾部较粗的分布;明显的候选者是 t 分布。Gelman 的最新建议似乎是在 df 为 3-7 的情况下使用 at。(请注意,该链接还支持我的建议,即您希望对比例日志执行与位置相同的操作)因此,您可以使用 log-student-t 而不是对数正态。要在 stan 中完成此操作,您可能会执行以下操作:

real log_sigma_y; //declare at the top of your model block
//...some more code for your model
log_sigma_y <- log(sigma_y); increment_log_prob(-log_sigma_y);
log_sigma_y ~ student_t(3,1,3); //This is a 'weakly informative prior'.

但是,我认为如果上面的代码对您来说太复杂了,您可能会使用对数正态先验,但有两个警告。首先,使先验的方差比您对“不确定”的粗略猜测大几倍;你想要一个信息量少的先验,而不是一个信息量大的先验。其次,一旦你拟合了你的模型,检查参数的后中位数,并确保它的对数离对数正态的中心不太远。“不太远”可能意味着:小于两个标准差,最好不超过一个标准差。

对于分层模型尺度参数,我大多最终使用Andrew Gelman 的建议,即使用折叠的非中心 t 分布。这对我来说非常有效。