关于 prior-elicitation
用于 elicitation 和评估贝叶斯先验的科学工作流,面向分析人员和建模者。它将假设与预测检验、敏感性分析联系起来,而非把默认先验视为无尺度。
主要功能
- 01定义估计目标与假设
- 02征集概率和分位数判断
- 03将假设转换为分布
- 04检查先验预测模拟
- 05比较合理的先验备选方案
- 06报告结论的敏感性
适用场景
- 01为贝叶斯模型设定先验
- 02依据科学判断检查预测
- 03评估先验尺度和尾部的敏感性
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pymc-labs/ pymc-modeling --skill prior-elicitation安装后在 Claude Code 中输入/prior-elicitation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/elicitation.mdshrinkage.md详细介绍
先验 elicitation
先验是一种科学假设,而不是不受尺度影响的默认设置。应从量的含义出发确定分布,再检查其可观测含义。
工作流
- 定义量。 确定估计目标、总体、支持集、单位、变换/链接函数、参考预测变量取值,以及结果出现前可用的信息。区分物理边界与高概率区间、参数不确定性与未来观测变异,以及独立先验信息与基于结果的缩放。
- 进行 elicitation,而非凭空设定。 询问分位数、概率、有意义的预测变量对比和尾部判断;记录其来源和分歧。将用于教学的数字标记为示例性假设。不要根据留出结果调整先验,也不要捏造专家回答。
- 转换并检查。 使用解析公式或 PreliZ
maxent/quartile。独立检查优化器状态和实际达到的 CDF。最大熵取决于所选的分布族和参数化,并非普遍适用的无信息先验。优先使用 PreliZ,而不是已弃用的pm.find_constrained_prior。 - 模拟先验预测。 使用
pm.sample_prior_predictive(draws=...);通过prior["prior_predictive"]访问生成的 DataTree。根据已陈述的合理性判断,检查支持集、条件尺度、数据集极值和科学上的对比,而不只是看是否覆盖观测范围。当预测不合理时,应重新审视假设,同时保留支持集并考虑模拟不确定性。这些是合理性检查,不是针对推断实现的 SBC。 - 评估合理的替代方案。 在先验敏感性比较中,保持数据、似然、变换和估计目标不变,同时改变合理的尺度和尾部。粗略的探索性拟合可以提示需要调查哪些假设;对于所有支撑已报告结论的后验,都要检查发散、秩 R-hat、bulk/tail ESS、针对估计目标的 MCSE,以及迹线图/秩图。
- 报告实际敏感性。 比较物理尺度上的效应、有意义的事件概率、不确定性区间和新观测预测。少数几个先验下结果稳定,并不能证明数据占主导、全局稳健或模型充分。功效敏感性是局部的,也需要可靠的重要性权重;其启发式标签不是科学决策。
参考资料
- Elicitation、PreliZ、先验预测与敏感性 — 完整的先验预测示例、单位换算、专家工作流、 解析检查和功效重加权。
- 收缩与正则化 — 正则化 horseshoe 尺度、R2D2 方差分配、几何结构与解释。
- 如需使用可选的 pymc-extras 先验工厂、序列化、删失和后验作为先验的迁移,请参阅
extras 模型工具
(需安装
pymc-modeling)。
调整示例时,请使用与已安装软件包版本匹配的 API 文档。PreliZ 小组件需要交互式笔记本;pymc-extras 是可选项,仅在使用其 R2D2 辅助工具或可选工厂工作流时才需要。无需安装其他技能,也可使用 elicitation 和收缩参考资料。
评论
支持 Markdown