【问题标题】:R: regression with rational functionsR:有理函数回归
【发布时间】:2011-12-27 08:18:27
【问题描述】:

我是R 的新手,必须在R 中使用有理函数执行多项式回归。函数如下:

numerator is A0 + A1*y + A2*y^2 
denominator is B0 + B1*y + B2*y^2

有理函数是

F= -(numerator)/denominator 

因此,我们得到了 Fy 的值,其中常数 A0、A1、A2、B0、B1 和 B2 待确定。

如何在R中进行这样的回归?

谢谢。

【问题讨论】:

  • 这里面有什么错误词吗?还是 F 的值是在 y 处计算的多项式比率的精确值?回归通常涉及错误项:y = Ax + N(0,sigma) 或类似项。这是重要的一点。如果没有错误,那么它不是真正的回归,它的“解决 A0,A1,A2...”等。
  • 一般来说,nls 将适合您想要的任何功能。是否有理由(例如家庭作业)您必须将数据拟合到此函数形式?无论原始生成函数如何,将数据拟合到简单多项式通常更快更容易(并且具有可比较的残差拟合误差)。
  • @Spacedman 我假设这种形式适合我的数据。当然会有错误的条款。我在哪里可以找到有关如何正确制定回归问题的更多信息? 1 票赞成。
  • @Carl 我在网上找到了一个类似的例子,它使用高达 2 阶的有理函数来拟合我拥有的数据类型。删除一个或多个术语不会给出适当的拟合。 1 票赞成。

标签: r regression


【解决方案1】:

pracma 包中的函数 rationalfit 会执行此操作,但在处理电线杆时必须小心。请参阅以下示例:

f <- function(x) -(x^2-3*x+2)/(x^2+1)
xs <- seq(0, 3, len=21); ys <- f(xs)

library(pracma)
rationalfit(xs, ys, d1=2, d2=2)
# $p1 = -1  3  -2
# $p2 = 1.000000e+00 -3.663736e-15  1.000000e+00

d1d2 是分子和分母多项式的最大允许次数。

如果数据不精确,它将以最小二乘的方式拟合多项式系数。没有误差项或统计测量(如lm),它是通过数值分析进行的简单计算。

【讨论】:

  • @Hans 感谢您的回答。是的,应在所需的适合范围内尽可能避免使用极点。 1 票赞成。
  • 我发现这对我的工作很有用。这不是 OP 的问题,但感谢您在我正在做的事情中为我提供实用程序。
猜你喜欢
  • 2019-01-28
  • 2015-05-29
  • 2023-03-25
  • 2016-07-17
  • 2013-08-05
  • 2018-10-03
  • 2018-10-10
  • 2021-02-06
  • 2016-11-05
相关资源
最近更新 更多