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

6

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

是否有这种功能的软件包?

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


1
公平地说,提供到你之前在stats.SE上的问题的链接是合理的,例如如何使用princomp()函数?,因为你已经在那里得到了一些线索。 - chl
4个回答

5

您可能想考虑使用MethComp包中的Deming()函数[function info]。该包还包含有关Deming回归理论的详细推导。

以下搜索R档案库还提供了大量选项:

您在CrossValidated、这里和R-Help上的多个问题表明,您需要做更多的工作来描述您想要做什么,因为"总体最小二乘法"和"正交回归"这些术语对于实际所需的技术存在一定的歧义。


3

两个答案:

  1. rgr包中的gx.rma似乎可以做到这一点。
  2. Brian Ripley在此帖子中给出了简洁的答案。基本上,您正在寻找主成分分析,他建议使用princomp。我也是这样做的。

1
我认为 Ripley 的回答适用性取决于 @Dail 所指的总最小二乘和正交回归的含义。Ripley 对他的回答进行了限定... - Gavin Simpson
@Gavin,没错。Ripley 还暗示问者对 TLS 或 PCA 没有牢固的掌握。这是一个开放性问题,是否使用了正确(或错误)的解决方案来回答错误(或正确)的问题/疑问。 - Iterator

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之间拟合一条直线,最小化正交残差。然后,你可以检索第一主成分的截距和斜率。

-1
对于再次遇到这个问题的任何人,现在已经存在一个专用软件包'onls'来完成这个目的。它类似于处理nls软件包(实现最小二乘算法)的方式。

嗨,如果提供的链接失效,这个答案将不会有帮助。您是否考虑使用[编辑]来提供相关细节以回答问题,并将链接作为参考? - gravity

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接