关于 pymc-modeling
面向 Python 项目的 PyMC 建模技能,涵盖问题定义、模型构建、拟合、诊断和预测。它帮助分析人员与研究者按任务选择工作流,并检查假设、计算结果和不确定性。
主要功能
- 01定义估计目标与预测目标
- 02指导似然和先验设定
- 03检查先验与后验预测
- 04涵盖拟合和采样诊断
- 05支持模型修订与比较
- 06按任务选择参考工作流
适用场景
- 01构建并拟合 PyMC 模型
- 02排查采样失败或警告
- 03检查新输入上的预测表现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pymc-labs/ pymc-modeling --skill pymc-modeling安装后在 Claude Code 中输入/pymc-modeling确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/approximate-inference.mdbart.mdcustom-likelihoods.mdextras-distributions.mdextras-model-tools.mdextras-statespace.mdgaussian-processes.mdhierarchical.mdinterface-boundaries.mdlikelihoods.mdmixtures.mdmodel-data-dimensions.mdmodel-testing.mdpredictive-checks.mdpymc-extras.mdsampling.mdsplines-distributional.mdtime-series.mdtransformations.mdtroubleshooting.mdworkflow.md详细介绍
PyMC 建模
选择一个实用的起点:简单的脚手架、成熟的领域模型,或对较大目标模型进行分解。根据问题、数据和检查结果,扩展、简化或分支。使用使用方项目的数据和 Python 环境;检查已安装的 API 和软件包兼容性。
对于 pymc-extras 任务,请先查看特征选择与兼容性,然后仅加载相关的工作流参考。优先使用其中支持的算法,而不是自定义实现;不要仅仅因为已安装某个扩展就使用它。
选择主要任务
- 构建、拟合或初始化模型:使用
pymc-modeling。 - 征询先验假设或检查先验预测的合理性:如果可用,使用
prior-elicitation。 - 诊断已有的已完成拟合或评估其预测:如果可用,使用
arviz-diagnostics。 - 修复符号计算、广播、梯度或编译问题:如果可用,使用
pytensor-workflows。 - 跟踪实验、保留 MLflow 工件或恢复已记录的 MMM 模型:如果可用,使用
pymc-mlflow。
多部分请求可以使用多种技能。下方的参考资料可在未安装专业技能时辅助建模。
工作流
- 明确问题。 说明估计目标或预测目标、观测单位、结果支持集、分组/时间结构、选择机制和缺失情况,以及预测时可用的信息。区分预测、推断和因果主张;遵守数据授权要求,并保留来源标识。
- 设定模型并检查。 使似然与观测过程相匹配;使用可识别的参数化形式和单位明确的先验。检查行对齐、形状、支持集和有限的初始对数密度。普通的
dims只是为位置张量标注名称;它们不会关联坐标。 使用已知参数的模拟案例来探测新实现及其失效模式;只有在需要反复进行推断检查时,才使用范围明确的 SBC。 - 检查先验预测。 在拟合前进行模拟,并将支持集、尺度和与决策相关的特征与领域知识进行比较。不要仅根据实际观测到的极值来调整先验。
- 先探索,再进行推断拟合。 兼容且已安装时,优先使用 nutpie。简短的初步拟合可以发现错误、困难的几何结构或明显的拟合不佳;应将其标注为探索性分析,而非可靠的后验推断。对于可报告的结果,应根据自适应过程和所需的 ESS/MCSE 分配预热和抽样次数。在诊断或绘图前保存结果。
- 先诊断,再批判性评估。 检查发散、秩 R-hat、bulk/tail ESS、MCSE 以及链/秩图。诊断每一次发散。不可靠的计算意味着后验结论尚无定论;这并不能证伪似然。使用后验预测差异来检查观测模型。样本内 PPC 不是留出验证。
- 进行预测、决策并修正。 保留训练数据的标识,并对齐新输入;区分潜在均值与带噪声的观测。提出建议时,应根据明确说明的后果、效用和约束传播不确定性;或者移交推断结果,不要擅自臆造决策者的价值取向。保留相关的模型变体,并说明假设变化如何影响估计目标、预测和决策,而不只是指出哪个模型得分最高。由自适应 PPC/CV 驱动的搜索可能过拟合;不要把胜出模型描述为得到唯一确认的模型,也不要仅为获得有利结果而更改随机种子或评判标准。
PyMC 6 返回 xarray.DataTree:请使用 idata["posterior"],而不是通过属性访问组。在 LOO 或其他逐点似然工作流之前,显式调用 pm.compute_log_likelihood(idata, model=model)。ArviZ 1.0 使用 LOO,不再使用已移除的 WAIC;请说明区间概率和类型(默认值为 89% ETI)。权重相近的模型堆叠结果并不意味着模型等价。
采样器偏好、预热起点和区间默认值是实现层面的约定,并非普遍适用的贝叶斯工作流要求。应根据任务进行选择。
只阅读任务所需内容
| 工作内容 | 参考资料 |
|---|---|
| 端到端拟合、诊断和科学检查 | 工作流 |
| 模型构建、数据容器和维度 | 模型和数据 |
| 初始化失败、形状错误、采样停滞或警告 | 故障排除 |
| 分组效应、池化和参数化 | 层级模型 |
| 结果支持集、删失、多元分布族和雅可比 | 似然 |
| 算法、后端、预算和持久化 | 采样 |
| pymc-extras 的特征选择、兼容性和验证 | PyMC Extras |
| 马尔可夫链、专用计数、极值和直方图似然 | Extras 分布 |
| 卡尔曼边缘化模型、结构组件和预测 | Extras 状态空间工作流 |
| 先验工厂、模型打包、VIP 和后验作为先验的迁移 | Extras 模型工具 |
| 变分、拉普拉斯和 Pathfinder 近似 | 近似推断 |
| 协方差模型和有限基误差 | 高斯过程 |
| 时间依赖、微分方程和预测 | 时间序列 |
| 标签不变性和离散变量消除 | 混合模型 |
| 外部密度、模拟器和预测回调 | 自定义似然 |
| 条件化、干预和图变换 | 变换 |
| 样本内检验和新输入预测 | 预测检查 |
| 树集成和预测状态 | BART |
| 基函数惩罚和分布预测变量 | 样条 |
| 模拟数据实验、SBC、数值预言机和模拟对象 | 模型测试 |
| 高级数值和扩展接口 | 接口边界 |
对于特定版本的 API,请在使用环境中对已安装的对象调用 help() 或
inspect.signature(),然后查阅与版本匹配的官方文档或源代码。
评论
支持 Markdown