scipy.odr 是计算总最小二乘法还是它的特殊情况?

Gal*_*len 8 python statistics scipy

这个问题的答案声称scipy.odr应该计算正交回归并且它将等于总的最小二乘解。

您可以使用 scipy.odr 它将计算正交回归,该回归应等于 tls。

然而维基百科声称戴明回归和正交回归都是总体最小二乘的特殊情况。

它是戴明回归和正交回归的推广,可应用于线性和非线性模型。

SciPy 文档引用了Boggs 和 Donaldson 1989 的正交距离回归,其中似乎没有提及总最小二乘法。

使用scipy.odr实际上相当于总最小二乘的一般情况吗?

Mat*_*and 0

scipy.odr封装了 Fortran 库 ODRPACK,可以解决问题的相当一般形式,也称为“总最小二乘法”。

Boggs(大多数关于 ODRPACK 的出版物的第一作者)和合著者在A stable and effective algorithm for molecular orthogonal distance regression中写道:

在此输入图像描述

他们提到的 TLS 论文由 Golub 和 Van Loan 撰写,他们撰写了有关 TLS 的最有影响力的论文之一。

搜索同一篇论文中出现的两个术语,有其他几个术语表明不能单独使用“ODR”和“TLS”名称来区分这些技术。例如,戴维斯在《总最小二乘螺旋曲线拟合》中写道:

在此输入图像描述

比名称更重要的是您需要什么概括。看起来引用的维基百科文章指出,TLS 是“戴明回归”和“正交回归”的推广,因为后者适用于具有一个自变量和一个因变量的线性问题,而 TLS 则推广到多个变量和非线性问题。/ODRPACK也是如此scipy.odrODRPACK 用户指南和APIscipy.odr文档宣传支持:

  • 线性或非线性拟合函数;
  • 多个自变量和因变量,或者更一般地说,隐式相关的多个变量;和
  • 加权“以考虑观察结果的不同方差,甚至变量维度之间的协方差。”

因此,尽管答案可能有点取决于您的需要,但scipy.odr解决了这个问题的相当普遍的形式。