PyMC 贝叶斯建模
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/pymc-bayesian-modeling。
技能介绍
要解决什么问题
频率学派回归能给出点估计,但当你需要把参数不确定性带进预测、处理分组/多层数据、或在样本少、有缺失和测量误差时仍要原则性建模,手写 PyMC 5.x 模型很容易在先验选择、参数化和采样诊断上踩坑:分歧、R-hat 偏高、ESS 不足,以及模型比较时 LOO 不可靠。
技能如何组织工作流
本技能围绕 PyMC 现代 API(5.x+)整理了一条可重复的贝叶斯流程,而不是只列 API:
- 数据与模型:标准化连续预测变量、用
coords/dims命名维度、尺度参数优先HalfNormal/Exponential,分层结构强调非中心参数化;预测用pm.Data()便于后验预测。 - 拟合前验证:先验预测检验,避免「先验已经生成不合理数据」仍去跑 NUTS。
- 采样与诊断:默认 NUTS(
draws/tune/chains、target_accept),拟合时log_likelihood=True以支持比较;配合诊断脚本检查 R-hat、ESS、分歧与迹线混合。 - 模型验证与比较:后验预测检验;用 LOO/WAIC 比较模型,并关注 Pareto-k;必要时做模型平均。
常见模式覆盖线性/逻辑回归、分层模型、泊松与负二项计数、简单时间序列;附带 references/ 分布与采样说明,以及 assets/ 中的线性回归与分层模型模板、scripts/ 中的诊断与比较工具。
适用边界与注意点
- 变分推断(如 ADVI)适合快速探索或初始化,不确定性可能被低估;发表级结论仍以 MCMC 诊断通过为准。
- 离散参数或极难后验可能需要
Metropolis或更高target_accept,并反复检查是否多模态或误设定。 - 极大模型可考虑 minibatch ADVI 或子采样,但需单独评估近似误差。
使用场景
- 教育或医疗分组数据上拟合多层回归,需要把组间差异与预测不确定性一并报告给评审或业务方
- 已在 PyMC 中拟合两个候选模型,要用 LOO/WAIC 判断哪个更可信并检查 Pareto-k 是否可靠
- NUTS 出现分歧或 R-hat 偏高,需要按工作流调高 target_accept、改非中心参数化并重跑诊断
- 样本少或存在缺失/测量误差,想用先验预测与后验预测检验确认模型设定再对外发布结论
适合人员
- 用 Python 做因果或效应量分析的数据科学家,需要在分组实验里输出带 HDI 的贝叶斯估计而非仅 p 值
- 撰写论文或内部技术报告的量化研究员,要按可复现流程完成 PyMC 建模、收敛诊断与模型比较
- 处理嵌套采样设计(站点/批次/受试者)的生物统计或生态分析人员,需要规范的分层模型与采样排错清单
- 从频率学派模型迁移到概率编程的算法工程师,需要分布选择、pm.Data 预测与 ArviZ 诊断的实操模板