2017-09-23 4 views

Répondre

2

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?