【问题标题】:Polynomial fitting with R using poly vs. I function使用 poly vs. I 函数与 R 进行多项式拟合
【发布时间】:2019-11-25 01:05:25
【问题描述】:

我正在尝试用 R 来理解多项式拟合。根据我在互联网上的研究,显然似乎有两种方法。假设我想将三次曲线ax^3 + bx^2 + cx + d 拟合到某个数据集中,我可以使用:

lm(dataset, formula = y ~ poly(x, 3))

lm(dataset, formula = y ~ x + I(x^2) + I(x^3))

但是,当我在 R 中尝试它们时,我最终得到了两条截距和系数完全不同的不同曲线。有什么关于多项式的我在这里没有得到吗?

【问题讨论】:

  • 不同的系数...可能。事实上几乎可以肯定。但不同的预测?不太可能。如果您希望仔细考虑您的声明,则需要显示完整的代码。
  • 预测几乎肯定是一样的。如果您希望 poly 使用 I 进行模仿,请使用 raw=TRUE 参数。

标签: r linear-regression linearmodels


【解决方案1】:

这归结为不同功能的作用。 poly 生成正交多项式。比较 poly(dataset$x, 3)I(dataset$x^3) 的值。您的系数会有所不同,因为直接传递到线性模型中的值(而不是通过Ipoly 函数间接传递)是不同的。

正如 42 所指出的,您的预测值将非常相似。如果a 是您的第一个线性模型,b 是您的第二个线性模型,那么b$fitted.values - a$fitted.value 在所有点上都应该相当接近于 0。

【讨论】:

    【解决方案2】:

    我现在明白了。原始多项式与正交多项式的 R 计算之间似乎存在差异。谢谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 2019-04-17
      相关资源
      最近更新 更多