0
attach(mtcars)

poly_model <- lm(mpg ~ poly(hp,degree=1), data = mtcars)
summary(poly_model)
lin_model <- lm(mpg ~ hp, data = mtcars)
summary(lin_model)

x <- with(mtcars, seq(min(hp), max(hp), length.out=2000))
y1 <- predict(poly_model, newdata = data.frame(hp = x))
y2 <- predict(lin_model, newdata = data.frame(hp = x))

plot(mpg ~ hp, data = mtcars)
lines(x, y1, col = "red")
lines(x, y2, col = "blue")

poly_model 和 lin_model 产生不同的系数。

poly_model
                     Estimate Std. Error t value Pr(>|t|)    
(Intercept)           20.0906     0.6829  29.420  < 2e-16 ***
poly(hp, degree = 1) -26.0456     3.8630  -6.742 1.79e-07 ***

lin_model
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 30.09886    1.63392  18.421  < 2e-16 ***
hp          -0.06823    0.01012  -6.742 1.79e-07 ***

通过检查该图,看来 lin_model 系数是正确的。为什么 poly_model 似乎会产生不同的系数?这些图重叠,两者的 R2 相同。

4

0 回答 0