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

如何计算Lmfit复合模型各组成分量的1-sigma不确定性

复合模型分量不确定度计算方法

你使用的是lmfit拟合框架的话,有非常简便的实现方式,核心逻辑是直接复用全局拟合得到的参数和协方差矩阵,单独对每个分量模型调用不确定度计算接口即可,具体实现步骤如下:

  • 首先提取复合模型中的两个子分量模型实例
model_a = gmodel.components[0]
model_b = gmodel.components[1]
  • 传入拟合得到的参数、自变量数据,单独计算每个分量的1σ不确定度
# 替换x_data为你拟合时使用的自变量数组
uncert_a = model_a.eval_uncertainty(params=result.params, x=x_data)
uncert_b = model_b.eval_uncertainty(params=result.params, x=x_data)

返回的uncert_a、uncert_b格式和你调用result.eval_uncertainty()得到的整体不确定度完全一致,分别对应a、b两个分量的1σ置信区间半宽,你可以直接和result.eval_components()返回的分量拟合值做加/减运算,得到每个分量的上下置信区间线。

正确性验证

因为上述方法复用了全局拟合得到的完整协方差矩阵,已经天然考虑了不同分量之间的参数相关性,计算结果和整体模型的不确定度是完全匹配的,你可以通过以下代码验证:

import numpy as np
total_uncert = result.eval_uncertainty(x=x_data)
# 合成两个分量的不确定度
calc_total = np.sqrt(uncert_a**2 + uncert_b**2)
# 两者差值应该在数值误差范围内,通常小于1e-6
print("最大误差:", np.max(np.abs(total_uncert - calc_total)))

内容的提问来源于stack exchange,提问作者Som Paneru

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:54:01