SuperAPI AI 工具集

scientific-bayesian-statistics

数据与分析

查看项目

更新于 10-16 13:06

技能介绍

用途

本技能是面向贝叶斯统计推断的分析技能,利用概率编程框架(PyMC、Stan、NumPyro)进行参数估计、模型比较和决策支持。

触发条件:当用户请求「跑贝叶斯回归」「用 MCMC 估计」「求后验分布」等操作时启用。

主要能力

  • 参数后验分布估计
  • 分层贝叶斯模型(多水平/混合效应)
  • 贝叶斯回归与贝叶斯分类
  • MCMC 诊断(Rhat、ESS、轨迹图)
  • 模型比较(WAIC、LOO-CV、贝叶斯因子)
  • 贝叶斯优化(高斯过程)
  • 后验预测检验

使用方式

贝叶斯分析流程

阶段 1:模型指定

  • 选择似然函数(Normal、Poisson、Binomial 等)
  • 设定先验分布(推荐弱信息先验)
  • 定义参数空间

阶段 2:先验预测检验

  • 先验预测模拟
  • 先验分布合理性验证
  • 与领域知识的一致性确认

阶段 3:MCMC 采样

  • 运行 NUTS(No-U-Turn Sampler)
  • 设定链数与样本数(chains≥4、draws≥2000)
  • 收敛诊断(Rhat < 1.01、ESS > 400)

阶段 4:后验分析

  • 后验分布可视化(森林图、轨迹图、配对图)
  • 95% HDI(最高密度区间)
  • 后验预测检验(PPC)

阶段 5:模型比较

  • 计算 WAIC / LOO-CV
  • 计算贝叶斯因子
  • 模型加权平均(Stacking)

阶段 6:报告

  • 估计值汇总表
  • 后验分布图
  • 结果解读与报告生成

代码示例概要

技能文档提供了以下可运行示例:

  1. PyMC 贝叶斯线性回归:包含数据生成、先验设定(alpha/beta 为 Normal,sigma 为 HalfNormal)、NUTS 采样(draws=2000、tune=1000、chains=4、target_accept=0.95)、收敛诊断(az.summary)和轨迹图绘制。

  2. 分层贝叶斯模型(随机效应):以多学校学生成绩预测为例,定义超先验(mu_alpha、sigma_alpha、mu_beta、sigma_beta),组水平参数采用部分池化,并使用森林图进行组间参数比较。

  3. 后验预测检验(PPC):通过 sample_posterior_predictive 生成后验预测样本,绘制密度叠加图、统计量比较(均值)、残差检验图。

  4. 模型比较(WAIC / LOO-CV):对多个模型分别计算 WAIC 和 PSIS-LOO,输出对比表格,并用 az.compare 和 az.plot_compare 进行可视化比较。

  5. 贝叶斯优化(高斯过程):使用 Matérn 核的 GaussianProcessRegressor,以 Expected Improvement(EI)为采集函数,通过 L-BFGS-B 优化寻找下一个采样点,迭代执行。

  6. Stan 建模:通过 CmdStanPy 接口编译并拟合 Stan 模型,示例为分层正态模型的 Stan 代码,采样完成后转换为 ArviZ 的 InferenceData 格式。

适用场景

  • 需要量化不确定性的参数估计
  • 数据存在层次/嵌套结构(如多中心研究、重复测量)
  • 需要融入先验知识的建模
  • 需要模型比较与选择的场景
  • 昂贵目标函数的优化问题
  • 需要完整后验分布而非点估计的决策分析

限制

  • 资料未提供具体的性能基准、数据规模上限或计算资源要求
  • 资料未提供收费、价格或授权模式信息
  • 资料未提供与其他贝叶斯工具的详细对比说明
  • 部分代码示例中使用了已弃用的 API(如 az.from_pymc3),实际使用时可能需要调整
  • 最佳实践建议:使用弱信息先验、必须进行收敛诊断、必须做后验预测检验、优先使用 LOO-CV 进行模型比较、分层模型考虑使用非中心化参数化、固定 random_seed 保证可复现性、进行先验敏感性分析

输出文件

  • results/bayesian_summary.json:后验分布汇总(JSON),采样完成时生成
  • figures/bayesian_trace.png:轨迹图,MCMC 完成时生成
  • figures/bayesian_ppc.png:后验预测检验图,PPC 完成时生成
  • figures/bayesian_model_comparison.png:模型比较图,比较完成时生成