En plus de l'excellente réponse de @ mkt, j'ai pensé que je pourrais vous fournir un exemple spécifique afin que vous puissiez développer une certaine intuition.
Générer des données pour l'exemple
Pour cet exemple, j'ai généré certaines données à l'aide de R comme suit:
set.seed(124)
n <- 200
x1 <- rnorm(n, mean=0, sd=0.2)
x2 <- rnorm(n, mean=0, sd=0.5)
eps <- rnorm(n, mean=0, sd=1)
y = 1 + 10*x1 + 0.4*x2 + 0.8*x2^2 + eps
Comme vous pouvez le voir ci-dessus, les données proviennent du modèle y=β0+β1∗X1+β2∗X2+β3∗X22+ ϵ, où ϵ est un terme d'erreur aléatoire normalement distribué avec une moyenne 0 et variance inconnue σ2. En outre,β0= 1, β1= 10, β2= 0,4 et β3= 0,8, tandis que σ= 1.
Visualisez les données générées via Coplots
Étant donné les données simulées sur la variable de résultat y et les variables prédictives x1 et x2, nous pouvons visualiser ces données à l'aide de coplots :
library(lattice)
coplot(y ~ x1 | x2,
number = 4, rows = 1,
panel = panel.smooth)
coplot(y ~ x2 | x1,
number = 4, rows = 1,
panel = panel.smooth)
Les coplots résultants sont indiqués ci-dessous.
Le premier coplot montre des diagrammes de dispersion de y contre x1 lorsque x2 appartient à quatre plages différentes de valeurs observées (qui se chevauchent) et améliore chacun de ces diagrammes de dispersion avec un ajustement lisse, éventuellement non linéaire dont la forme est estimée à partir des données.
Le deuxième coplot montre des diagrammes de dispersion de y par rapport à x2 lorsque x1 appartient à quatre plages différentes de valeurs observées (qui se chevauchent) et améliore chacun de ces diagrammes de dispersion avec un ajustement lisse.
Le premier coplot suggère qu'il est raisonnable de supposer que x1 a un effet linéaire sur y lors du contrôle de x2 et que cet effet ne dépend pas de x2.
Le deuxième coplot suggère qu'il est raisonnable de supposer que x2 a un effet quadratique sur y lors du contrôle de x1 et que cet effet ne dépend pas de x1.
Ajuster un modèle correctement spécifié
Les coplots suggèrent d'adapter le modèle suivant aux données, ce qui permet un effet linéaire de x1 et un effet quadratique de x2:
m <- lm(y ~ x1 + x2 + I(x2^2))
Construire des tracés résiduels de Component Plus pour le modèle correctement spécifié
Une fois que le modèle correctement spécifié est ajusté aux données, nous pouvons examiner les graphiques des composantes et des résidus pour chaque prédicteur inclus dans le modèle:
library(car)
crPlots(m)
Ces tracés de composantes et résiduels sont présentés ci-dessous et suggèrent que le modèle a été correctement spécifié car ils ne montrent aucune preuve de non-linéarité, etc. le prédicteur correspondant et la ligne magenta solide suggérant un effet non linéaire de ce prédicteur dans le modèle.
Ajuster un modèle mal spécifié
Jouons l'avocat du diable et disons que notre modèle lm () a en fait été mal spécifié (c'est-à-dire mal spécifié), en ce sens qu'il a omis le terme quadratique I (x2 ^ 2):
m.mis <- lm(y ~ x1 + x2)
Construire des tracés résiduels du composant plus pour le modèle incorrectement spécifié
Si nous devions construire des parcelles composante plus résiduelle pour le modèle mal spécifié, nous verrions immédiatement une suggestion de non-linéarité de l'effet de x2 dans le modèle mal spécifié:
crPlots(m.mis)
En d'autres termes, comme on le voit ci-dessous, le modèle mal spécifié n'a pas réussi à capturer l'effet quadratique de x2 et cet effet apparaît dans la composante plus le tracé résiduel correspondant au prédicteur x2 dans le modèle mal spécifié.
La mauvaise spécification de l'effet de x2 dans le modèle m.mis serait également apparente lors de l'examen des graphiques des résidus associés à ce modèle par rapport à chacun des prédicteurs x1 et x2:
par(mfrow=c(1,2))
plot(residuals(m.mis) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m.mis) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
Comme on le voit ci-dessous, le tracé des résidus associés à m.mis par rapport à x2 présente un modèle quadratique clair, suggérant que le modèle m.mis n'a pas réussi à capturer ce modèle systématique.
Augmentez le modèle incorrectement spécifié
Pour spécifier correctement le modèle m.mis, il faudrait l'augmenter pour qu'il inclue également le terme I (x2 ^ 2):
m <- lm(y ~ x1 + x2 + I(x2^2))
Voici les graphiques des résidus en fonction de x1 et x2 pour ce modèle correctement spécifié:
par(mfrow=c(1,2))
plot(residuals(m) ~ x1, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
plot(residuals(m) ~ x2, pch=20, col="darkred")
abline(h=0, lty=2, col="blue", lwd=2)
Notez que le motif quadratique précédemment observé dans le tracé des résidus par rapport à x2 pour le modèle m.mis mal spécifié a maintenant disparu du tracé des résidus par rapport à x2 pour le modèle m correctement spécifié.
Notez que l'axe vertical de toutes les parcelles de résidus par rapport à x1 et x2 montré ici doit être étiqueté comme "résiduel". Pour une raison quelconque, R Studio coupe cette étiquette.