如何计算R中的总最小二乘? (正交回归)

时间:2011-07-29 12:17:35

标签: r regression

我没有找到计算正交回归的函数(TLS - 总最小二乘法)。

是否有这种功能的包装?

更新:我的意思是按lm()对称地计算每个点的距离,而不是非对称地计算距离。

4 个答案:

答案 0 :(得分:5)

您可能需要考虑 MethComp [function info]包中的Deming()函数。该软件包还包含Deming回归理论的详细推导。

以下对R档案的搜索也提供了很多选择:

关于CrossValidated的多个问题,这里和R-Help暗示您需要做更多的工作来准确描述您想要做什么,因为术语“总体最小二乘”和“正交回归”具有某种程度的关于所需技术的模糊性。

答案 1 :(得分:3)

两个答案:

    gx.rma包中的
  1. rgr似乎可以执行此操作。
  2. Brian Ripley给了succinct answer on this thread。基本上,你正在寻找PCA,他建议princomp。我也是。

答案 2 :(得分:3)

我从这个网址获得了以下解决方案:

https://www.inkling.com/read/r-cookbook-paul-teetor-1st/chapter-13/recipe-13-5

   r <- prcomp( ~ x + y )
   slope <- r$rotation[2,1] / r$rotation[1,1]
   intercept <- r$center[2] - slope*r$center[1]

基本上,您执行的PCA将适合x和y之间的线,从而最大限度地减少正交残差。然后,您可以检索第一个组件的截距和斜率。

答案 3 :(得分:-1)

对于任何再次遇到此问题的人,现在都有专用的软件包“ onls”用于该目的。与nls包(实现普通的最小二乘算法)的处理方式相似。