概述
pyhf(pure-python HistFactory-style fitting)是一个用于多箱直方图统计分析的开源工具包,旨在在纯 Python 环境中实现 HistFactory 模型与基于似然的区间估计/假设检验。该项目兼顾科研可重复性与工程可用性,提供从模型构建、数据输入、推断计算到可视化的一整套工作流程。pyhf 强调与现代计算图库(如 JAX)的兼容性,以便利用自动微分和GPU 加速来提升大规模计算的效率。
核心能力
-
纯 Python 实现 HistFactory 模型: 支持多通道、多样本、多箱的直方图模型,并实现常见的系统不确定性修饰(例如 HistoSys, OverallSys, ShapeSys, NormFactor, ShapeFactor, StatError, Lumi Uncertainty)。
-
推断与区间估计: 基于“渐近公式(Asymptotic formulae)”实现似然比检验与 CLs 类似的显著性/区间估计方法,同时也支持非渐近求解器用于更精确的数值计算。
-
多后端与优化器支持: 内置对 NumPy 与 JAX 的后端适配,优化器方面支持 SciPy 和 iminuit(MINUIT),并允许用户自定义后端或优化器以满足特殊需求。
-
工作区与互操作性: 支持从 JSON 序列化工作区加载模型,能通过 uproot 导入 ROOT/XML 格式的工作区,提供命令行接口便于脚本化操作和批处理运行。
-
教学与可视化资源: 提供 Jupyter / JupyterLite 教程、示例 notebook 与可视化工具(如 brazil plot),并通过 GitHub、文档站点和讨论区维护社区支持与持续集成测试。
推荐原因
pyhf 适合需要在 Python 环境中进行高能物理统计分析的研究者与工程师。它将 HistFactory 的建模范式搬到纯 Python 生态,便于与现有科学计算库集成、在云端或 GPU 上加速计算,并能通过可序列化的 JSON 工作区实现结果的可复现性与交换。项目有详细的文档、教程与引用信息,且在单元测试、持续集成与与 ROOT/HistoFactory 输出的对比验证方面有良好实践,适合用于教学、开发与生产化的统计推断工作流。


