【发布时间】:2019-01-18 21:24:01
【问题描述】:
我有一个 (x,y,dy) 的数据集,其中 dy 是 y 的测量误差(即 y +/- dy)。我想通过使用 dy 作为权重来拟合具有 scipy curve_fit 的函数 func。我是否使用curve_fit(func,x,y,sigma = dy)?我也使用 sigma=1/dy**2 找到了一些答案。那么,我应该使用哪一个?谢谢!
【问题讨论】:
标签: scipy curve-fitting
我有一个 (x,y,dy) 的数据集,其中 dy 是 y 的测量误差(即 y +/- dy)。我想通过使用 dy 作为权重来拟合具有 scipy curve_fit 的函数 func。我是否使用curve_fit(func,x,y,sigma = dy)?我也使用 sigma=1/dy**2 找到了一些答案。那么,我应该使用哪一个?谢谢!
【问题讨论】:
标签: scipy curve-fitting
来自docs:
sigma : 无或 M 长度序列,可选
如果不是 None,ydata 数组中的不确定性。这些用作最小二乘问题中的权重,即最小化 np.sum( ((f(xdata, *popt) - ydata) / sigma)**2 ) 如果没有,则假定不确定性为 1。
sigma 已经在损失函数中平方,(curve_fit 本质上所做的是最小二乘算法)。
严格地说,维度分析表明您应该使用绝对 sigma(而不是平方)。在实践中,您可以根据需要使用 sigma_square,它会更多地忽略异常值。
【讨论】: