同一回归的结果不同

时间:2017-09-23 15:10:57

标签: r glm lm

为什么我会从

获得不同的结果
summary(lm(mpg~horsepower + I(horsepower^2),data = Auto))$coef

summary(lm(mpg∼poly(horsepower,2) ,data=Auto))$coef

PS:我正在练习ISLR

的实验室

1 个答案:

答案 0 :(得分:2)

poly默认使用正交多项式。如果使用poly(..., 2, raw = TRUE),它将使用原始多项式,在这种情况下结果是相同的。

如果使用默认正交多项式,那么虽然它以不同方式对模型进行参数化,但模型仍会给出相同的预测。也就是说,fitted(lm(...))对于您的两个模型都是相同的。

library(ISLR)

fo1 <- mpg ~ horsepower + I(horsepower ^ 2)
fo2 <- mpg ~ poly(horsepower, 2)
fo3 <- mpg ~ poly(horsepower, 2, raw = TRUE)

fm1 <- lm(fo1, Auto)
fm2 <- lm(fo2, Auto)
fm3 <- lm(fo3, Auto)

all.equal(coef(summary(fm1)), coef(summary(fm3)), check.attributes = FALSE)
## [1] TRUE

all.equal(fitted(fm1), fitted(fm2))
## [1] TRUE

all.equal(fitted(fm1), fitted(fm3))
## [1] TRUE

此处的讨论可能会有所帮助:What does the R function `poly` really do?