跳到主要内容
哒哒星球DADA PLANET

Skill · 已公开版本

pymc · 用贝叶斯模型估计参数与不确定性

通过PyMC建立先验和似然,进行采样、后验检查及模型比较。

先看看示例

作者提供的示例,实际效果取决于你的输入和使用工具。

输入

编辑虚构JSON:{"trials":10,"successes":7,"prior_alpha":2,"prior_beta":2};假定各次独立且共享成功概率p;只写代码与解析核对,不运行。

输出

编辑示例 · 未运行

import pymc as pm
import arviz as az

with pm.Model() as model:
    p = pm.Beta("p", alpha=2, beta=2)
    observed = pm.Binomial("observed", n=10, p=p, observed=7)
    prior = pm.sample_prior_predictive(random_seed=42)
    posterior = pm.sample(draws=1000, tune=1000, chains=2,
                          random_seed=42, target_accept=0.9)
    predictive = pm.sample_posterior_predictive(posterior, random_seed=43)

print(az.summary(posterior, var_names=["p"]))

解析核对:后验为Beta(2+7, 2+3)=Beta(9,5),均值9/14≈0.643。这个解析值不是采样诊断或运行结果。

方法说明

通过PyMC建立先验和似然,进行采样、后验检查及模型比较。

具体任务

为计数或连续数据建立概率模型:明确观测单位、先验和似然后生成模型代码,安排拟合前后的检查。

诊断采样为何不可靠:检查R-hat、有效样本量与发散,区分模型问题和运行配置问题。

必需材料

CSV或JSON数据及观测单位、字段含义

要估计的量、似然选择依据与先验假设

已锁定的Python/PyMC环境或只生成代码的要求

可选材料

已有模型代码与采样诊断

可接受的预测范围与领域约束

使用门槛

熟悉概率分布和统计建模;该固定入口明确要求Python 3.12+、PyMC 6.0.1兼容依赖,并建议记录环境锁定信息。

这个 Skill 额外提供的方法

固定版本要求先做先验预测检查,再拟合、检查诊断、做后验预测;不把提高采样参数当作修复模型的一般办法。

编辑示例(未运行)

用十次二元观测演示概率更新

任务:生成Beta-Binomial模型并给出可手算的核对值,不杜撰MCMC结果。

输入:
编辑虚构JSON:{"trials":10,"successes":7,"prior_alpha":2,"prior_beta":2};假定各次独立且共享成功概率p;只写代码与解析核对,不运行。

结果片段:
```python
import pymc as pm
import arviz as az

with pm.Model() as model:
    p = pm.Beta("p", alpha=2, beta=2)
    observed = pm.Binomial("observed", n=10, p=p, observed=7)
    prior = pm.sample_prior_predictive(random_seed=42)
    posterior = pm.sample(draws=1000, tune=1000, chains=2,
                          random_seed=42, target_accept=0.9)
    predictive = pm.sample_posterior_predictive(posterior, random_seed=43)

print(az.summary(posterior, var_names=["p"]))
```

解析核对:后验为Beta(2+7, 2+3)=Beta(9,5),均值9/14≈0.643。这个解析值不是采样诊断或运行结果。

代码和解析说明为编辑示例,未执行。实际使用时仍需查看先验预测是否合理、采样诊断及后验预测;十次示例观测不能支撑现实业务推广。

首次任务

请使用已安装的 pymc Skill。
请用我的CSV或JSON数据与先验假设编写PyMC模型,先解释分布和检查方案;只在我明确要求且锁定环境齐备时运行,不读取不可信pickle。
请使用我的材料:
- CSV或JSON数据及观测单位、字段含义:{{CSV或JSON数据及观测单位、字段含义}}
- 要估计的量、似然选择依据与先验假设:{{要估计的量、似然选择依据与先验假设}}
- 已锁定的Python/PyMC环境或只生成代码的要求:{{已锁定的Python/PyMC环境或只生成代码的要求}}
先指出缺失信息,不编造。验收要求:
1. 模型的观测单位、先验和似然与数据及假设一致。
2. 先验预测、R-hat/ESS/发散和后验预测都有可查看输出;问题未解决时停止结论解释。
3. 保留随机种子和锁定版本,小型可解析模型的结果有独立手算参照。

验收方法

模型的观测单位、先验和似然与数据及假设一致。

先验预测、R-hat/ESS/发散和后验预测都有可查看输出;问题未解决时停止结论解释。

保留随机种子和锁定版本,小型可解析模型的结果有独立手算参照。

依赖与准备

完整pymc目录及standard_workflow、model_patterns、distributions等参考;Python 3.12+、固定入口指定的pymc[nutpie]==6.0.1兼容环境,ArviZ/PyTensor及采样后端按锁文件匹配。可选NumPyro/BlackJAX需另行固定兼容依赖。仓库MIT与入口自述Apache-2.0分别保留。

使用边界

采样得到数值不代表模型可信;发散、低有效样本量或先验不合理时不能继续解释为有效结论。

参考工作流含实际pickle.load示例;只反序列化可信来源文件,首次用CSV/JSON,并优先文档中的NetCDF保存结果。

入口含arXiv HTTP回退,优先HTTPS且不提交私人数据;后验结论受先验、似然与样本代表性约束。

本页例子由编辑撰写,未运行;不是平台兼容认证或效果测试。

排错

有发散却想直接解释均值:先检查模型结构、尺度与参数化,依据诊断修正后重跑,不能只隐藏警告。

示例与本机返回类型不一致:核对入口要求的PyMC 6/ArviZ兼容组合;该入口提示DataTree结构,不混用旧版本序列化文件。

固定来源

https://github.com/K-Dense-AI/scientific-agent-skills/blob/65d6e786832e2c52832713117bbbf5096b56f77f/skills/pymc/SKILL.md

许可

MIT(仓库);入口声明:Apache License, Version 2.0。许可原文:https://github.com/K-Dense-AI/scientific-agent-skills/blob/65d6e786832e2c52832713117bbbf5096b56f77f/LICENSE.md

仓库热度

K-Dense-AI/scientific-agent-skills 仓库 47,152 Stars(2026-09-30 核验);这是父仓库指标,不是单个 Skill 的评分。