You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

zfit拟合sWeighted数据时无下界产额参数引发相关矩阵异常咨询

问题描述

使用zfit的Minuit工具对sWeighted样本进行扩展非分箱最大似然拟合时,出现以下异常现象:

  • 当允许产额参数取负值时,相关矩阵全为1且拟合误差趋近于0;
  • 将产额参数下界设为0后,相关矩阵与误差均恢复正常;
  • 拟合非加权样本时,两种配置均无问题;
  • 即使将权重强制设为1,异常问题依旧存在。

简化代码示例:

signal_pdf = zfit.pdf.ProductPDF(pdfs=[signal_x_pdf,signal_y_pdf,signal_z_pdf])
bkg_pdf = zfit.pdf.ProductPDF(pdfs=[bkg_x_pdf,bkg_y_pdf,bkg_z_pdf])
    
signal_yield = zfit.Parameter('signal_yield', 100, -100, 10000,step_size=1)
bkg_yield = zfit.Parameter('bkg_yield', 100, -100, 10000,step_size=1)

extended_signal = signal_pdf.create_extended(signal_yield)
extended_bkg = bkg_pdf.create_extended(bkg_yield)

model = zfit.pdf.SumPDF([extended_signal,extended_bkg])

data_sw = zfit.Data.from_pandas(obs=obs, df=df[['x','y','z']],weights=df['signal'])
nll_sw = zfit.loss.ExtendedUnbinnedNLL(model, data_sw)
minimizer = zfit.minimize.Minuit(tol=1e-6)
result_sw = minimizer.minimize(nll_sw)
result_sw.hesse()
result_sw.correlation()
原因分析
  • 参数退化导致似然函数奇异:当允许产额取负值时,sWeighted样本的加权特性会让信号和背景产额出现完全退化的情况——负产额可以抵消加权带来的样本分布偏移,此时似然函数的最小值并非唯一,而是存在一条平坦的参数路径。这会导致Hesse矩阵(用于计算误差和相关性)变得奇异(秩不足),最终表现为相关矩阵全1、误差趋近于0。
  • 非加权样本的参数唯一性:非加权样本的每个事件权重均为1,似然函数的最小值是唯一确定的,不存在产额参数退化的路径,因此无论是否设置参数下界,相关性和误差计算都能正常进行。
  • 权重设1仍异常的本质:即使将权重强制设为1,样本本身是经过sWeight处理后的信号主导分布,和原始混合样本的分布特征完全不同,依然会触发产额参数的退化问题,无法消除奇异的似然结构。
  • 下界约束的修复作用:给产额参数设置下界0后,直接排除了负产额的参数空间,迫使拟合在物理合理的范围内寻找唯一最小值,Hesse矩阵恢复满秩,相关矩阵和误差计算也就回归正常了。

内容的提问来源于stack exchange,提问作者Eldar Ganiev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:05:55