
贝叶斯模型比较实战bayestestR bayesfactor_models 如何量化回答「哪个模型更好」【免费下载链接】bayestestR:ghost: Utilities for analyzing Bayesian models and posterior distributions项目地址: https://gitcode.com/gh_mirrors/ba/bayestestR做贝叶斯模型比较时最核心的问题就是「哪个模型更好」——R 语言的bayestestR包用bayesfactor_models()函数给出了量化答案它通过**贝叶斯因子Bayes Factor, BF**计算每个模型相对于参考模型的证据强度一次调用就能告诉你「数据支持模型 A 是模型 B 的多少倍」。这篇文章带你零基础看懂它的原理、用法和结果解读。 为什么需要贝叶斯因子p 值回答不了的问题传统 p 值只能检验「某个预测变量是否显著」却无法直接回答简单模型和复杂模型哪个解释数据更好数据支持「有差异」还是「无差异」证据有多强贝叶斯因子就是为这类问题设计的它是一个相对证据指标表示观测数据在两个假设模型下出现的相对概率。BF 1 支持分子模型BF 1 支持分母模型数值越大证据越强。在 bayestestR 中围绕贝叶斯因子的核心函数源码位于 R/bayesfactor_models.R完整的教学案例见 vignettes/bayes_factors.Rmd。上图展示了 bayestestR 中贝叶斯因子面板 C与 ROPE、方向概率pd等指标的关系贝叶斯因子本质上是先验与后验分布下假设可信度的变化程度。 3 步上手 bayesfactor_models函数签名非常简单bayesfactor_models(..., denominator 1, verbose TRUE)第 1 步用同一份数据拟合多个模型支持三类模型自动选择最合适的计算方法模型类型计算方法前置要求brms / rstanarm 贝叶斯模型bridgesampling边缘似然brms 需save_pars(all TRUE)stanreg 需指定diagnostic_fileBayesFactor 包对象JZS 贝叶斯因子直接传入即可其他模型如 lmBIC 近似无第 2 步指定参考模型调用函数# 贝叶斯模型rstanarm 示例 bayesfactor_models(stan_m1, stan_m2, denominator stan_m0) # 频率派模型lm 示例用 BIC 近似 bayesfactor_models(lm2, lm3, denominator lm1)denominator可以是模型的编号或模型对象本身它就是你心中「默认站」的模型。第 3 步读取输出返回一个带公式和log_BF的数据框自动格式化打印用as.numeric()可提取非对数 BF 值。 结果怎么读BF 多大才算「实质性证据」文档中给出的解读约定见 man/bayesfactor_models.RdBF 3实质性证据substantial evidenceBF 1/3实质性支持参考模型介于 1 和 3 之间证据微弱谨慎下结论 想要自动的文字解读可以搭配 effectsize 包的interpret_bf()函数。两个进阶技巧两两比较矩阵as.matrix(BFM)利用贝叶斯因子的传递性BF_AB BF_AC / BF_BC一键输出所有模型两两之间的完整比较矩阵切换参考模型update(BFM, reference bottom)无需重新计算直接改换分母模型。相关函数从「模型间」到「预测变量间」bayesfactor_inclusion()模型平均视角回答「包含预测变量 X 的模型整体上是否更受数据支持」源码 R/bayesfactor_inclusion.Rbayesfactor_restricted()顺序限制假设检验如「差异必须为正」源码 R/bayesfactor_restricted.Rweighted_posteriors()按后验概率对多个模型的后验进行加权平均源码 R/weighted_posteriors.R⚠️ 避坑指南记住「4P 原则」Bayes 因子对先验非常敏感官方文档总结为 4 P 口诀ProperPriors andPlentifulPosteriors正确的先验 充足的后验先验必须合适宽泛先验会导致边际似然变小模型天然吃亏即 Jeffreys-Lindley-Bartlett 悖论。只在你有「有信息量的先验」时才计算 BF——这也意味着 BF 比较的是先验模型不是后验模型后验样本要充足MCMC 模型的 BF 计算通常需要比单纯估计多 10 倍的采样量。函数检测到后验样本少于 40,000 个时会主动发出警告。 延伸阅读核心实现R/bayesfactor_models.R 与 BIC 转 BF 的 R/bic_to_bf.R官方教程含完整 worked examplevignettes/bayes_factors.Rmd函数参考文档man/bayesfactor_models.Rd单元测试tests/testthat/test-bayesfactor_models.R掌握bayesfactor_models()你就拥有了量化回答「哪个模型更好」的完整工具链——从假设形式化到证据量化再到跨模型比较一站搞定 【免费下载链接】bayestestR:ghost: Utilities for analyzing Bayesian models and posterior distributions项目地址: https://gitcode.com/gh_mirrors/ba/bayestestR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考