poly
Üben verwendet Orthogonalpolynome durch Standard. Wenn Sie poly(..., 2, raw = TRUE)
verwenden, verwendet es rohe Polynome, in welchem Fall die Ergebnisse gleich sind.
Wenn Sie die standardmäßigen orthogonalen Polynome verwenden, gibt das Modell, obwohl es das Modell anders parametrisiert, dieselben Vorhersagen. Das heißt, fitted(lm(...))
wird für beide Modelle gleich sein.
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
Die Diskussion hier kann hilfreich sein: What does the R function `poly` really do?