【问题标题】:How to calculate Total least squares in R? (Orthogonal regression) [closed]如何计算R中的总最小二乘? (正交回归)[关闭]
【发布时间】:2011-10-15 22:05:41
【问题描述】:

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

有这种功能的包吗?

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

【问题讨论】:

  • 在 stats.SE 上提供您之前问题的链接是公平的,例如How princomp() works?,你已经找到了一些线索。

标签: r regression


【解决方案1】:

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

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

您在 CrossValidated、here 和 R-Help 上的多个问题暗示您需要做更多的工作来准确描述您想要做什么,因为“总最小二乘”和“正交回归”这两个术语在某种程度上具有对所需的实际技术有歧义。

【讨论】:

    【解决方案2】:

    两个答案:

    1. rgr 包中的 gx.rma 似乎可以做到这一点。
    2. Brian Ripley 提供了succinct answer on this thread。基本上,您正在寻找 PCA,他建议使用 princomp。我也是。

    【讨论】:

    • 我认为 Ripley 响应的适用性取决于 @Dail 的总最小二乘法和正交回归的含义。里普利确实有资格他的回应......
    • @Gavin,真的。 Ripley 还暗示,提问者没有牢牢掌握 TLS 或 PCA。对于错误(或正确)的问题/问题,它是否是正确(或错误)的解决方案,这是一个悬而未决的问题。
    【解决方案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 之间的一条线,以最小化正交残差。然后您可以检索第一个分量的截距和斜率。

    【讨论】:

      【解决方案4】:

      对于再次遇到这个问题的任何人,现在已经有一个专门的包“onls”用于此目的。它的处理方式类似于 nls 包(实现普通的最小二乘算法)

      【讨论】:

      • 嗨,如果提供的链接失效,这个答案将没有帮助。您是否考虑使用edit 提供问题的相关详细信息以及作为参考的链接?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-11
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 2015-05-15
      相关资源
      最近更新 更多