我正在尝试理解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
生成正交多项式。比较poly(dataset$x, 3)
和I(dataset$x^3)
的值。您的系数将有所不同,因为直接传递到线性模型(而不是通过I
或poly
函数间接传递)的值是不同的。
如42所指出,您的预测值将非常相似。如果a
是您的第一个线性模型,而b
是您的第二个线性模型,则b$fitted.values - a$fitted.value
在所有点上都应该非常接近0。
我现在知道了。原始多项式的R计算与正交多项式的R计算之间似乎存在差异。谢谢大家的帮助。