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

curve_fit线性回归参数误差与手动计算结果不符问题咨询

线性拟合中参数b误差计算差异的原因

你的手动公式错误,和数据量无关。

当对y=mx+b进行加权线性拟合(权重为w_i = 1/yerr_i²)时,参数b的误差不能仅用sqrt(1/np.sum((yerr)**(-2)))计算——这个简化公式只适用于**固定斜率m=0(仅拟合常数项)**的场景。

正确的参数b误差来自拟合的协方差矩阵对角元,推导基于χ²最小化的二阶导数:

  • 首先计算行列式D:
    w = 1 / (yerr ** 2)
    sum_w = np.sum(w)
    sum_wx = np.sum(w * x)
    sum_wx2 = np.sum(w * x ** 2)
    D = sum_w * sum_wx2 - sum_wx ** 2
    
  • 然后b的方差为sum_wx2 / D,误差为:
    berr = np.sqrt(sum_wx2 / D)
    

scipy.optimize.curve_fit在设置sigma=yerr且absolute_sigma=True时,会自动计算完整的协方差矩阵,因此给出的b误差是准确的。用上述正确公式手动计算,结果会和curve_fit输出一致。

内容的提问来源于stack exchange,提问作者Omar Medina

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:03:08