poly
utilise polynômes orthogonaux par défaut. Si vous utilisez poly(..., 2, raw = TRUE)
, il utilisera des polynômes bruts, auquel cas les résultats sont les mêmes.
Si vous utilisez les polynômes orthogonaux par défaut alors bien qu'il paramétrise le modèle différemment, le modèle donne toujours les mêmes prédictions. C'est, fitted(lm(...))
sera le même pour vos deux modèles.
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
La discussion ici peut être utile: What does the R function `poly` really do?