pymc-bayesian-modeling
基于PyMC的贝叶斯建模。构建分层模型、马尔可夫链蒙特卡罗(NUTS算法)、变分推断、留一法/WAIC模型比较、后验检验,实现概率编程与统计推断。
分类
AI 技能开发安装
热度:28
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-scientific-skills-pymc&locale=zh&source=copy
PyMC 贝叶斯建模技能 - Python 概率编程与推断工具
技能概述
使用 PyMC 进行贝叶斯建模和概率编程,支持构建层次模型、MCMC 采样(NUTS)、变分推断、模型比较和完整的诊断工作流。
适用场景
1. 小样本数据与不确定性量化
当数据量有限或需要量化预测不确定性时,贝叶斯方法比传统频率统计更具优势。适用于医学研究、社会科学、A/B 测试等领域,可以通过先验信息结合数据得到更稳健的估计。
2. 层次结构与多级数据分析
处理具有嵌套结构的数据,如学生-班级-学校、患者-医院、重复测量等场景。技能提供非中心化参数化模板,避免采样发散问题,有效估计组间和组内变异。
3. 复杂模型与模型选择
构建线性回归、逻辑回归、泊松回归、时间序列(AR 模型)等多种模型类型。通过 LOO/WAIC 信息准则进行模型比较,支持模型平均,自动完成先验预测、拟合诊断和后验预测检查全流程。
核心功能
1. 现代化贝叶斯建模工作流
基于 PyMC 5.x+ API 构建,使用命名维度(dims)替代 shape 参数提升代码可读性。完整的标准工作流:数据标准化 → 先验预测检查 → MCMC 拟合 → 诊断(R-hat、ESS、发散性)→ 后验预测检查 → 预测与推断。
2. 采样诊断与问题解决
自动化诊断脚本检查收敛性(R-hat < 1.01)、有效样本量(ESS > 400)和发散性。提供针对性解决方案:提高 target_accept 参数、使用非中心化参数化、ADVI 初始化等。支持变分推断(ADVI)用于快速探索或大规模模型。
3. 模型比较与分布指南
使用 ArviZ 进行 LOO/WAIC 模型比较,自动检查 Pareto-k 值可靠性。提供完整的分布选择指南:先验分布(HalfNormal、Exponential 用于尺度参数,Beta 用于概率,LKJCorr 用于相关矩阵)和似然函数(Normal、StudentT、Poisson、NegativeBinomial 等)。
常见问题
PyMC 适合什么类型的数据分析?
PyMC 适合需要量化不确定性、数据量有限、或具有层次结构的场景。典型应用包括贝叶斯回归(线性/逻辑/泊松)、层次模型、时间序列预测、缺失数据填补、A/B 测试等。当传统方法的置信区间不够精确,或需要结合先验知识时,贝叶斯方法更具优势。
如何解决贝叶斯采样中的发散性问题?
发散性通常意味着几何形状复杂或采样步长不合适。解决方案包括:1) 提高 target_accept 到 0.95-0.99;2) 对层次模型使用非中心化参数化;3) 标准化预测变量;4) 使用 ADVI 初始化;5) 添加更强的先验约束。诊断报告会自动检测发散数量并给出建议。
LOO 和 WAIC 模型比较怎么选择?
两者都是估计样本外预测误差的信息准则。LOO(留一交叉验证)更精确但计算成本高,WAIC 更快。优先使用 LOO,但需检查 Pareto-k 值:k < 0.7 时 LOO 可靠;k > 0.7 时考虑 WAIC 或 k 折交叉验证。Δloo < 2 表示模型相似,> 10 表示强证据支持更好的模型。