在scipy.optimize.curve_fit中使用absolute_sigma参数

时间:2015-07-29 15:34:22

标签: python scipy curve-fitting

要执行合身,我目前正在使用scipy.optimize中的curve_fit

我已经计算了与我的每个ydata相关联的错误,并且我想将数据中存在的计算sigma = y_errors添加到拟合中,

即。最小化sum( ((f(xdata, *popt) - ydata) / sigma)**2 )而非sum( (f(xdata, *popt) - ydata))

我可以看到可以在文档中分配参数 sigma 。我不清楚的是 absolute_sigma 参数。文档中给出的解释对我来说很混乱。

我应该设置absolute_sigma= = True吗?或者,如果我需要考虑与False相关的y_errors,那么它应该设置为ydata

1 个答案:

答案 0 :(得分:4)

如果您的数据存在绝对不确定因素,即y_errors的单位与ydata的单位相同,则应设置{{1} }}。然而,通常情况是absolute_sigma= = True的单位不准确,只知道相对大小。后一种情况的一个例子可能是某些y_errors值来自相同y值的重复测量值。那么将重复的x值加权到非重复y值的两倍是有意义的,但是这个权重(y)的单位与任何值不同单位2是。

以下是一些代码来说明差异:

y