我有一个(x,y,dy)的数据集,其中dy是y的测量误差(即y +/- dy)。我想通过使用dy作为权重来将函数func与scipy curve_fit配合。我是否使用curve_fit(func,x,y,sigma = dy)?我也使用sigma = 1 / dy ** 2找到了一些答案。那么,我应该使用哪一个呢?谢谢!
答案 0 :(得分:2)
来自docs:
sigma:无或M长度序列,可选
如果不是None,则为ydata数组中的不确定性。这些在最小二乘问题中用作权重,即最小化np.sum((((f(xdata,* popt)-ydata)/ sigma)** 2)如果没有,则不确定性假定为1。
损失函数中的sigma已经平方(curve_fit
本质上是一个最小二乘算法)。
严格来说,尺寸分析表明您应该使用绝对sigma(而不是平方)。实际上,如果需要,可以使用sigma_square,它将倾向于更多地忽略离群值。