This question already has answers here:
Fitting polynomial model to data in R
(4 个回答)
7年前关闭。
我正在尝试使用 lm(poly) 来获得某些点的多项式回归,但对它返回的回归公式系数有一些疑问。
像这样的样本:
x=seq(1,100)
y=x^2+3*x+7
拟合=lm(y~poly(x,2))
结果是:
系数:
(截取) poly(x, 2)1 poly(x, 2)2
3542 30021 7452
为什么系数不是 7,3,2?
非常感谢你!
在
和
但是你也可以使用费迪南德建议的,它有效。
(4 个回答)
7年前关闭。
我正在尝试使用 lm(poly) 来获得某些点的多项式回归,但对它返回的回归公式系数有一些疑问。
像这样的样本:
x=seq(1,100)
y=x^2+3*x+7
拟合=lm(y~poly(x,2))
结果是:
lm(formula = y ~ poly(x, 2))
系数:
(截取) poly(x, 2)1 poly(x, 2)2
3542 30021 7452
为什么系数不是 7,3,2?
非常感谢你!
最佳答案
如果不想使用正交多项式,则需要将 raw
参数设置为 TRUE
这是默认值
set.seed(101)
N <- 100
x <- rnorm(N, 10, 3)
epsilon <- rnorm(N)
y <- 7 + 3 * x + x^2 + epsilon
coef(lm(y ~ poly(x, 2, raw = TRUE)))
## (Intercept) poly(x, 2, raw = TRUE)1
## 7.8104 2.7538
## poly(x, 2, raw = TRUE)2
## 1.0150
在
poly
函数的帮助下,您拥有和
但是你也可以使用费迪南德建议的,它有效。
coef(lm(y ~ x + I(x^2)))
## (Intercept) x I(x^2)
## 7.8104 2.7538 1.0150
关于r - 使用 lm(poly) 得到公式系数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17457884/
10-12 17:39