找到拟合函数的根和估计误差

时间:2013-11-02 08:04:34

标签: python numpy scipy variance standard-deviation

我是Python的新手,我想找到包含错误的线性拟合函数的根。

我用

安装了这个功能
import numpy as np
import scipy.optimize as op

def lin_fit(x, a, b):
    return a * x + b

...

popt, pconv = op.curve_fit(lin_fit, U, sqrt_I)
x = np.linspace(np.min(U), np.max(U), 100)
y = lin_fit(x, *popt)

然后我找到了根

def root(x):
    return lin_fit(x, *popt)

return op.fsolve(root, 0)

这没问题,但我现在不知道如何找到这些根源的错误。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

错误包含在pconv中,其中对角线包含每个估计系数的方差,在本例中为ab

根据MathWorld衡量拟合整体质量的相关系数r可以计算为:

sxy = pconv[0,1]*x.shape[0]
sxx = pconv[0,0]
syy = pconv[1,1]
r = (sxy**2/(sxx*syy))**0.5