正交距离回归 (scipy.odr
)¶
包裹内容¶
|
要匹配的数据。 |
|
数据,加权为实际标准差和/或协方差。 |
|
Model类存储有关您希望适合的函数的信息。 |
|
ODR类收集所有信息并协调主装配例程的运行。 |
|
Output类存储ODR运行的输出。 |
|
ODR的低级函数。 |
警告,表示传递到ODR的数据在传递到“ODR”时会导致问题,用户应该注意这一点。 |
|
表示管件错误的异常。 |
|
停止配件时出现异常。 |
|
|
一般多项式模型的工厂函数。 |
指数模型 |
|
任意维线性模型 |
|
一元线性模型 |
|
二次模型 |
使用信息¶
引言¶
为什么选择正交距离回归(ODR)?有时,在解释(又名“独立”)变量,而不仅仅是响应(又名“从属”)变量中存在测量误差。普通最小二乘(OLS)拟合程序将解释变量的数据视为固定的,即不受任何类型误差的影响。此外,OLS程序要求响应变量是解释变量的显式函数;有时使方程显式是不切实际的和/或引入错误。ODR可以轻松地处理这两种情况,如果这足以解决问题,甚至可以简化为OLS情况。
ODRPACK是一个FORTRAN-77库,用于执行可能具有非线性拟合函数的ODR。它使用了一种改进的信赖域Levenberg-MarQuardt-type算法 [1] 估计函数参数。拟合函数由在NumPy数组上操作的Python函数提供。所需的导数也可以由Python函数提供,或者可以用数值估算。ODRPACK可以执行显式或隐式ODR拟合,也可以执行OLS。输入和输出变量可以是多维的。可以提供权重来说明观测的不同方差,甚至变量维度之间的协方差。
这个 scipy.odr
Package为ODRPACK提供了一个面向对象的接口,除了底层的 odr
功能。
有关ODRPACK的其他背景信息,请参阅 ODRPACK User's Guide ,推荐阅读。
基本用法¶
定义要与之匹配的函数。::
def f(B, x): '''Linear function y = m*x + b''' # B is a vector of the parameters. # x is an array of the current x values. # x is in the same format as the x passed to Data or RealData. # # Return an array in the same format as y passed to Data or RealData. return B[0]*x + B[1]
创建模型。::
linear = Model(f)
创建数据或realdata实例。::
mydata = Data(x, y, wd=1./power(sx,2), we=1./power(sy,2))
或者,当实际协方差已知时:
mydata = RealData(x, y, sx=sx, sy=sy)
使用您的数据、模型和初始参数估计实例化ODR。::
myodr = ODR(mydata, linear, beta0=[1., 2.])
运行配合。::
myoutput = myodr.run()
检查输出。::
myoutput.pprint()
参考文献¶
- 1
P.T.Boggs和J.E.Rogers,“正交距离回归”,在“测量误差模型和应用的统计分析:1989年6月10-16日举行的AMS-IMS-SIAM联合夏季研究会议论文集”中,“当代数学,第一卷”。112分,PG186,1990年。