Python-scipy ODR快疯了

Python-scipy ODR快疯了,python,python-2.7,scipy,curve-fitting,scipy-optimize,Python,Python 2.7,Scipy,Curve Fitting,Scipy Optimize,我想使用scipy的ODR将曲线拟合到一组具有方差的变量。在这种情况下,我用一组Y轴交叉点拟合线性函数(例如,a*x+100)。由于无法找到估计器(),我正在使用scipy.optimizecurve\u fit估计初始a值。现在,函数在没有标准偏差的情况下工作得很好,但是当我添加它时,输出完全没有意义(曲线远远高于所有点)。这种行为会是什么情况?谢谢 代码附于此处: import scipy.odr as SODR from scipy.optimize import curve_fit d

我想使用scipy的ODR将曲线拟合到一组具有方差的变量。在这种情况下,我用一组Y轴交叉点拟合线性函数(例如,
a*x+100
)。由于无法找到估计器(),我正在使用
scipy.optimize
curve\u fit
估计初始a值。现在,函数在没有标准偏差的情况下工作得很好,但是当我添加它时,输出完全没有意义(曲线远远高于所有点)。这种行为会是什么情况?谢谢 代码附于此处:

import scipy.odr as SODR
from scipy.optimize import curve_fit

def fun(kier, arg):
    '''
    Function to fit
    :param kier: list of parameters
    :param arg: argument of the function fun
    :return y: value of function in x
    '''

    y =kier[0]*arg +100 #+kier[1]
    return y

zx       = [30.120348566300354, 36.218214083626386, 52.86998374096616]
zy       = [83.47033171149137, 129.10207165602722, 85.59465198231146]
dx       = [2.537935346025827, 4.918719773247683, 2.5477221183398977]
dy       = [3.3729431749276837, 5.33696690247701, 2.0937213187876]
sx       = [6.605581618516947, 8.221194790372632, 22.980577676739113]
sy       = [1.0936584882351936, 0.7749999999999986, 20.915359045447914]
dx_total = [9.143516964542775, 13.139914563620316, 25.52829979507901]
dy_total = [4.466601663162877, 6.1119669024770085, 23.009080364235516]

# curve fitting
popt, pcov = curve_fit(fun, zx, zy)
danesd     = SODR.RealData(x=zx, y=zy, sx=dx_total, sy=dy_total)
model      = SODR.Model(fun)
onbig      = SODR.ODR(danesd, model, beta0=[popt[0]])
outputbig  = onbig.run()
biga=outputbig.beta[0]
print(biga)

daned   = SODR.RealData(x=zx,y=zy,sx=dx,sy=dy)
on      = SODR.ODR(daned, model, beta0=[popt[0]])
outputd = on.run()
normala = outputd.beta[0]
print(normala)
这些产出是:

30.926925885047254 (this is the output with standard deviation)  
-0.25132703671513873 (this is without standard deviation) 
这毫无意义,如下所示:


另外,我很乐意得到任何反馈,无论我的代码是否清晰,以及这个问题的格式。我还是新来的。

是的……似乎很奇怪。。。。你考虑过吗?谢谢!看起来好多了!我已经向scipy Github提交了一份bug报告。他们也许能帮我,谢谢!这个问题仍然没有答案。是的。。。你可能想看看,甚至是。嘿!我仍在寻找解决办法。同时,我将尝试使用@mikuszefski方法。谢谢