用于检验零假设的贝叶斯因子?

机器算法验证 贝叶斯 分层贝叶斯 pymc
2022-04-15 17:09:35

我在某处听说,我可以使用贝叶斯因子直接测试(或收集支持)零假设。在我的具体实验中,我假设实验操作不会影响某些变量,但会选择性地影响另一个变量。不知何故,简单地表明 t 检验给出不显着的结果似乎并不合适(因为这只能“不拒绝”H0)。

我的具体问题如下:

我有两个实验条件,比如药物和对照,我想证明估计的参数值在两种条件下都是相同的(我测量了一些数据并有一个模型,参数给出可能性 . 我在对照和药物条件下Xα,βP(X|α,β)N

我的第一种方法是建立一个分层模型,其中根据一些组级分布为每个人分布 (因为两个参数都必须是正的并且更可能很小,我可以使用指数)。组级分布将在可行范围内具有统一的先验。α,β

我会使用这个模型从后验中采样(MCMC),我想我会对比较组级估计感兴趣。但是我不清楚如何整合这两个相互竞争的假设(H0 是和 H1 是 alpha_{ctrl}相同)。αmed=αcntrlαmedαctrlβ

所以我的问题是:我怎样才能从这个模型转到贝叶斯因子?

具体来说,我在 pymc 包中运行我的 MCMC,所以对具体代码的任何帮助都会有很大帮助!

2个回答

您可以尝试史蒂夫古德曼推荐的方法并计算最小贝叶斯因子: 走向基于证据的医学统计 2:贝叶斯因子

要从 mcmc 结果中得到这一点,您可以减去每个步骤的组级别参数的估计值,以获得差异的后验分布,正如 John Kruschke 在本文中所做的那样:贝叶斯估计取代 t 检验

他没有在那里计算贝叶斯因子并建议不要使用它(见附录 D)。相反,他在原假设(零)周围指定了一个实际等价区域,并查看您的可信区间是否重叠。

为了获得最小的贝叶斯因子,我相信你可以做的是将你估计平均值之间差异的模式的概率除以零概率。我在任何地方都没有看到这样做,但这对我来说很有意义。希望其他人可以对此发表评论。

您可以使用 R 中的 BayesFactor 包轻松计算贝叶斯 t 检验。有关详细信息,请参见此处的示例:http ://bayesfactorpcl.r-forge.r-project.org/#twosample 。http://pcl.missouri.edu/bayesfactor上的网络计算器使用相同的模型(参见网络计算器页面上的 Rouder 等人 2009 年参考资料)。请注意,上面给出的 Kruschke 参考实际上不允许您检验零假设。