贝叶斯统计中先验敏感性分析的建议

机器算法验证 贝叶斯 马尔可夫链蒙特卡罗 计算统计 pymc
2022-03-23 04:57:07

我不清楚如何对先验进行敏感性分析。许多网站有不同的答案。一个站点指示执行三个非信息性、弱信息性和已知先验。另一个建议使用不同的先验来运行模型。

以下是我的问题:

我想估计这个参数 A,其中 A = mean1 + mean2 。因此,mean1 和 mean2 的先验公式(在编码中)如下:

mean1 ~ N(u1, tau1)
A ~ N(mean1, tau2) 

在哪里

tau1 ~ gamma(alpha1,beta1)
tau2 ~ gamma(alpha2,beta2)

使用上述公式,我如何进行敏感性分析?

  1. 我应该定义 u1、tau1 和 tau2 的范围吗?如果有,系统程序是什么?在我看来,有多种组合:改变 u1 并固定 tau1 和 tau2;或者修复u1和tau2,改变tau1;或修复 u1 和 tau1,改变 tau2。我们怎么知道使用什么是正确的先验?

  2. 我如何在上述公式中加入弱信息先验?

  3. 如果敏感性测试通过改变先验返回不同的估计均值 1 和 A 怎么办?我们如何得出结论?

您的建议将不胜感激,并帮助我开始。谢谢!

编辑:我纠正了一个错误。您可以根据估计的参数A和估计的mean1计算估计的mean2

1个回答

尽我所能,我无法找到完全解释该过程的开源代码,因此为了获得比以下更全面的处理,我只能将您引导至Bayesian Data Analysis特别是,Ch。6 应该证明非常有帮助。

概括地说,在分析之后,人们应该思考模型推论是否具有现实意义。例如,考虑本文详细介绍了药理学研究中的先前考虑。简而言之,肝脏大小是与模型相关的变量,医学文献中对此有很多了解:

例如,参数 8 将肝脏质量表示为瘦体重的一部分;根据之前的医学研究,已知肝脏约占年轻成年男性瘦体重的 3.3%,几乎没有变化。

没有信息的先验会遇到一些陷阱:

如果将非信息性先验分布分配给所有单个参数,那么该模型将非常接近数据拟合数据,但参数在科学上不合理——例如,肝脏重 10 k 的人。这种困难是促使研究人员使用外部信息指定先验分布的原因。

这是对真实性的简单测试:如果您的模型表明人类肝脏有感恩节火鸡那么大,则存在某种缺陷。

虽然没有很好地适用于您的问题,但此示例清楚地说明了这些考虑因素在多大程度上取决于上下文。要检查后验是否过度依赖于先验,可以考虑多个先验并查看后验是否在实际意义上发生变化,因为不同的先验必然会产生不同的后验。例如,假设您正在就对拟议法律的支持进行投票。特别是,没有人收集过有关该人群对这项法律的支持的数据:您的数据存在于知识真空中。

您构建了一个模型,其中您随机投票的每个人都是带有参数的伯努利随机变量θ1. 您选择 beta 发行版是为了方便θ,因为它与伯努利共轭。您对 98 位随机选择的人进行了民意调查,其中 45 人支持该措施。但你想知道杰弗里之前是否,B(12,12)或均匀的密度[0,1], 由B(1,1). 撇开形式数学不谈,各自的后验是B(45.5,53.5)B(46,54),并且很难看出这种差异可能会产生实际后果:

分别为绿色和蓝色的两个 beta 分布 B(45.5, 53.5) 和 B(46, 54)

(请注意,蓝线和绿线几乎无法区分。)现在,您可以想象,如果有人之前有关于该提案的大量民意调查数据,那么也许这些数据可能预示着意见的变化、现状的结果或随机噪音. 在这种情况下,明智的做法是将这些推论与来自更知情的先验的推论进行比较。

现在,针对您上面的具体问题:

  1. 感兴趣的参数必须始终具有指定的分布和先验,以免根本无法推断它们。对于正确先验的问题,这又取决于对该问题的知识状态,也许您的持怀疑态度的听众会认为什么先验是合意的。如果知识不足,您可能希望考虑非信息性先验。但是任何先验选择或固定参数的选择都必须根据现有知识或不确定性来证明。
  2. 只需从您想要考虑的任何先验中推导出后验,然后将它们进行比较以检查差异是否对手头的问题有影响。
  3. 这是一个艰难的,因为它完全取决于上下文。如果任何先验产生了火鸡肝脏类型的推断,则可以安全地忽略它。但对于更细微的区别,我知道没有什么可以替代主题专业知识、仔细分析和更多数据。贝叶斯因子通常用于模型比较,但通常用于比较不同形式的模型。(老实说,我从来没有考虑过贝叶斯因子来比较先验,但我的感觉是贝叶斯因子分析有利于更模糊的先验,即赋予数据更多权重的先验。)