相关疑难解决方法(0)

scipy最小二乘法中的正交回归拟合

scipy lib中的leastsq方法适合某些数据的曲线.并且此方法意味着在此数据中Y值取决于某些X参数.并计算曲线与Y轴(dy)中数据点之间的最小距离

但是如果我需要计算两个轴的最小距离(dy和dx)怎么办?

有没有办法实现这个计算?

以下是使用一个轴计算时的代码示例:

import numpy as np
from scipy.optimize import leastsq

xData = [some data...]
yData = [some data...]

def mFunc(p, x, y):
    return y - (p[0]*x**p[1])  # is takes into account only y axis

plsq, pcov = leastsq(mFunc, [1,1], args=(xData,yData))
print plsq
Run Code Online (Sandbox Code Playgroud)

我最近尝试了scipy.odr库,它只返回线性函数的正确结果.对于y = a*x ^ b等其他函数,它返回错误的结果.这就是我使用它的方式:

def f(p, x):      
    return p[0]*x**p[1]

myModel = Model(f)
myData = Data(xData, yData)
myOdr = ODR(myData, myModel , beta0=[1,1])
myOdr.set_job(fit_type=0) #if set fit_type=2, returns the same as leastsq
out = myOdr.run() …
Run Code Online (Sandbox Code Playgroud)

python regression scipy least-squares

13
推荐指数
2
解决办法
8546
查看次数

标签 统计

least-squares ×1

python ×1

regression ×1

scipy ×1