在GitHub上查看我

警告:这是一个开发版本。最新的稳定版本位于阅读文档.

pyhf标志

pure-python拟合/极限设置/区间估计HistFactory-style

GitHub项目 DOI程序 JOSS DOI公司 Scikit-HEP公司 NSF奖项编号

GitHub操作状态:CI GitHub操作状态:文档 GitHub操作状态:发布 Docker自动化 代码覆盖率 代码因子 提交前.ci状态 代码样式:黑色

来自最新的文档 来自主控形状的文档 粘合剂

PyPI版本 Conda-forge版本 支持的Python版本 Docker Stars公司 Docker拉动

HistFactory p.d.f.模板[欧洲核子研究所开放-2012-016]是per-se独立于它在ROOT中的实现,有时,它有助于能够在ROOT、RooFit、RooStats之外运行统计分析框架。

此回购是该统计模型的纯python实现,用于基于多点直方图的分析及其区间估计关于“基于似然的渐近公式”的渐近公式新物理测试”[arXiv:1007.1727]. 目标也是支持现代计算图形库,如PyTorch和TensorFlow,以便利用自动微分等功能和GPU加速。

你好,世界

这就是您如何使用平壤(pyhf)Python API,用于构建统计模型并运行基本推断:

>>>进口 平壤(pyhf)
>>>模型 = 平壤(pyhf).简单模型.七类数据(
...    信号_数据=[12, 11], bkg_数据=[50, 52], bkg_uncerts(无提示)=[3, 7]
...)
>>>数据 = [51, 48] + 模型.配置.辅助数据
>>>测试_ mu = 1
>>>CLs_对象, CLs导出 = 平壤(pyhf).推断.低血压(
...    测试(mu), 数据, 模型, 测试状态=“qtilde”, 预期退货=真的
...)
>>>打印(如果“观察时间:{CLs_对象},预期:{CLs导出}")
观察值:0.05251497423736956,预期值:0.06445320535890459

或者,可以从其序列化JSON表示中读取统计模型和观测数据(请参阅下一节)。

>>>进口 平壤(pyhf)
>>>进口 请求
>>>无线传感器网络空间 = 平壤(pyhf).工作区(请求.得到("https://git.io/JJYDE网站").杰森())
>>>模型 = 无线传感器网络空间.模型()
>>>数据 = 无线传感器网络空间.数据(模型)
>>>测试_ mu = 1
>>>时钟信号obs, CLs导出 = 平壤(pyhf).推断.低血压(
...    测试_ mu, 数据, 模型, 测试状态=“qtilde”, 预期退货=真的
...)
>>>打印(如果“观察时间:{CLs_对象},预期:{CLs导出}")
观察值:0.3599840922126626,预期值:0.3999840922126626

最后,您还可以使用命令行界面平壤(pyhf)提供

$猫<<EOF|tee-likelihood.json | pyhf-cls
{
“通道”:[
{“name”:“singlechannel”,
“样本”:[
{“名称”:“信号”,
“数据”:[12.0,11.0],
“修饰符”:[{“name”:“mu”,“type”:“normalfactor”,“data”:null}]
},
{“name”:“background”,
“数据”:[50.0,52.0],
“修饰符”:[{“name”:“uncrr_bkgunccrt”,“type”:“shapesys”,“data”:[3.0,7.0]}]
}
]
}
],
“观察结果”:[
{“name”:“singlechannel”,“data”:[51.0,48.0]}
],
“测量”:[
{“name”:“Measurement”,“config”:{“poi”:“mu”,“parameters”:[]}}
],
“版本”:“1.0.0”
}
电子政务办公室

它应生成以下JSON输出:

{
   “CLs_exp”: [
      0.0026062609501074576,
      0.01382005356161206,
      0.06445320535890459,
      0.23525643861460702,
      0.573036205919389
   ],
   “CLs_obs”: 0.05251497423736956
}

它支持什么

实施的变更:
  • 历史系统

  • 总体系统

  • 形状系统

  • 标准因子

  • 多个频道

  • 通过从XML+ROOT导入根除

  • 形状因子

  • 状态错误

  • Lumi不确定性

  • 非症状计算器

计算后端:
  • 数字Py

  • PyTorch公司

  • TensorFlow公司

  • 日本宇宙航空公司

优化器:
  • 科学Py(科学优化)

  • 微小的(伊米纽特人)

所有后端都可以与所有优化器结合使用。也可以使用自定义用户后端和优化器。

托多

  • 状态配置

根据计算的输出验证从该包中获得的结果来自HistFactory工作区

一个单仓的例子

进口 平壤(pyhf)
进口 笨蛋 作为 净现值
进口 matplotlib.打印 作为 平板电脑
进口 pyhf.contrib.viz.brazil公司

平壤(pyhf).设置后端(“numpy”)
模型 = 平壤(pyhf).简单模型.七类数据(
    信号_数据=[10], 背景数据=[50], bkg_uncerts(无提示)=[7]
)
数据 = [55] + 模型.配置.辅助数据

点(_V) = 净现值.林斯空间(0, 5, 41)
结果 = [
    平壤(pyhf).推断.低血压(
        测试poi, 数据, 模型, 测试状态=“qtilde”, return_expected_set(返回预期设置)=真的
    )
    对于 测试poi 在里面 点(_V)
]

无花果, 斧头 = 平板电脑.次要情节()
无花果.设置大小(_I)(7, 5)
斧头.设置标签(_X)(第页“$\mu$(POI)”)
斧头.设置伊拉贝尔(第页“”$\mathrm“{氯}_{s}$")
平壤(pyhf).控制..巴西.绘图_结果(斧头, 点(_V), 结果)
无花果.显示()

平壤(pyhf)

手册

手册

两个箱子的例子

进口 平壤(pyhf)
进口 笨蛋 作为 净现值
进口 matplotlib.打印 作为 平板电脑
进口 pyhf.contrib.viz.brazil公司

平壤(pyhf).设置后端(“numpy”)
模型 = 平壤(pyhf).简单模型.七类数据(
    信号_数据=[30, 45], bkg_数据=[100, 150], bkg_uncerts(无提示)=[15, 20]
)
数据 = [100, 145] + 模型.配置.辅助数据

点(_V) = 净现值.林斯空间(0, 5, 41)
结果 = [
    平壤(pyhf).推断.低血压(
        测试poi, 数据, 模型, 测试状态=“qtilde”, return_expected_set(返回预期设置)=真的
    )
    对于 测试poi 在里面 点(_V)
]

无花果, 斧头 = 平板电脑.次要情节()
无花果.设置大小(_I)(7, 5)
斧头.设置标签(_X)(第页“$\mu$(POI)”)
斧头.设置伊拉贝尔(第页“”$\mathrm“{氯}_{s}$")
平壤(pyhf).控制..巴西.绘图_结果(斧头, 点(_V), 结果)
无花果.显示()

平壤(pyhf)

手册

手册

安装

要安装平壤(pyhf)通过NumPy后端运行从PyPI

python-m pip安装pyhf

和安装平壤(pyhf)所有额外的后端运行

python-m pip安装pyhf[后端]

或选项的子集。

卸载运行

python-m pip卸载pyhf

问题

如果您对平壤(pyhf)未涵盖在这个文档,请提问GitHub讨论.

如果你认为你在平壤(pyhf),请在github问题.如果您有兴趣从平壤(pyhf)开发团队和发布通知您可以加入pyhf公告邮件列表.

引用

如中所述使用和引文,引用的首选BibTeX条目平壤(pyhf)包括这两个泽诺多存档和JOSS公司纸张:

@软件{平壤(pyhf),
  作者 = {卢卡斯·海因里希、马修·菲克特和乔登·斯塔克},
  标题 = “{pyhf:v0.6.1}”,
  版本 = {0.6.1},
  国防部 = {10.5281/zenodo.1169739},
  网址 = {https://github.com/scikit-hep/pyhf},
}

@文章{比夫·乔斯,
  国防部 = {10.21105/jos.02823},
  网址 = {https://doi.org/10.21105/joss.02823},
   = {2021},
  出版商 = {开放期刊},
  体积 = {6},
   = {58},
   = {2823},
  作者 = {卢卡斯·海因里希(Lukas Heinrich)、马修·菲克特(Matthew Feickert)、乔登·斯塔克(Giordon Stark)和凯尔·克兰默(Kyle Cranmer)},
  标题 = {pyhf:HistFactory统计模型的pure-Python实现},
  杂志 = {开源软件杂志}
}

作者

平壤(pyhf)由卢卡斯·海因里希、马修·菲克特和乔登·斯塔克公开开发。

请检查列表的贡献统计信息贡献者.

里程碑

  • 2020-07-28:1000 GitHub问题和拉取请求。(见PR#1000)

致谢

Matthew Feickert已获得支持平壤(pyhf)由NSF提供合作协定OAC-1836650型(IRIS-HEP)并授予OAC-1450377号机组(DIANA/HEP)。