Oltre all'eccellente risposta di @ mkt, ho pensato di fornirti un esempio specifico da vedere in modo da poter sviluppare alcune intuizioni.
Genera dati per esempio
Per questo esempio, ho generato alcuni dati usando R come segue:
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
Come puoi vedere da quanto sopra, i dati provengono dal modello , dove è un termine di errore casuale normalmente distribuito con media e varianza sconosciuta . Inoltre, , , e , mentre . y=β0+β1*X1+β2*X2+β3*X22+ ϵε0σ2β0= 1β1= 10β2= 0.4β3= 0,8σ= 1
Visualizza i dati generati tramite Coplot
Dati i dati simulati sulla variabile di risultato y e le variabili predittive x1 e x2, possiamo visualizzare questi dati usando coploti :
library(lattice)
coplot(y ~ x1 | x2,
number = 4, rows = 1,
panel = panel.smooth)
coplot(y ~ x2 | x1,
number = 4, rows = 1,
panel = panel.smooth)
I coplot risultanti sono mostrati di seguito.
Il primo coplot mostra i grafici a dispersione di y rispetto a x1 quando x2 appartiene a quattro diversi intervalli di valori osservati (che si sovrappongono) e migliora ciascuno di questi grafici a dispersione con un adattamento regolare, possibilmente non lineare, la cui forma è stimata dai dati.
![inserisci qui la descrizione dell'immagine](https://i.stack.imgur.com/A1hpF.jpg)
Il secondo coplot mostra i grafici a dispersione di y contro x2 quando x1 appartiene a quattro diversi intervalli di valori osservati (che si sovrappongono) e migliora ciascuno di questi grafici a dispersione con un adattamento uniforme.
![inserisci qui la descrizione dell'immagine](https://i.stack.imgur.com/AJvtK.jpg)
Il primo coplot suggerisce che è ragionevole supporre che x1 abbia un effetto lineare su y quando si controlla per x2 e che questo effetto non dipende da x2.
Il secondo coplot suggerisce che è ragionevole supporre che x2 abbia un effetto quadratico su y quando si controlla per x1 e che questo effetto non dipende da x1.
Montare un modello correttamente specificato
I coploti suggeriscono di adattare il seguente modello ai dati, che consente un effetto lineare di x1 e un effetto quadratico di x2:
m <- lm(y ~ x1 + x2 + I(x2^2))
Costruisci grafici residui Component Plus per il modello correttamente specificato
Una volta che il modello specificato correttamente è stato adattato ai dati, possiamo esaminare il componente più i grafici residui per ciascun predittore incluso nel modello:
library(car)
crPlots(m)
Questi componenti più i grafici residui sono mostrati di seguito e suggeriscono che il modello è stato correttamente specificato poiché non mostrano alcuna evidenza di non linearità, ecc. In effetti, in ciascuno di questi grafici, non vi è alcuna evidente discrepanza tra la linea blu tratteggiata che suggerisce un effetto lineare di il predittore corrispondente e la linea di magenta solido suggeriscono un effetto non lineare di quel predittore nel modello.
![inserisci qui la descrizione dell'immagine](https://i.stack.imgur.com/zjgbo.jpg)
Montare un modello specificato in modo errato
Giochiamo all'avvocato del diavolo e diciamo che il nostro modello lm () è stato in realtà erroneamente specificato (cioè, erroneamente specificato), nel senso che ha omesso il termine quadratico I (x2 ^ 2):
m.mis <- lm(y ~ x1 + x2)
Costruisci grafici residui Component Plus per il modello specificato in modo errato
Se dovessimo costruire componenti oltre a grafici residui per il modello non specificato, vedremmo immediatamente un suggerimento di non linearità dell'effetto di x2 nel modello non specificato:
crPlots(m.mis)
In altre parole, come visto di seguito, il modello non specificato non è riuscito a catturare l'effetto quadratico di x2 e questo effetto si manifesta nel componente più il diagramma residuo corrispondente al predittore x2 nel modello non specificato.
![inserisci qui la descrizione dell'immagine](https://i.stack.imgur.com/IrU6c.jpg)
La mancata specificazione dell'effetto di x2 nel modello m.mis sarebbe evidente anche quando si esaminano i grafici dei residui associati a questo modello rispetto a ciascuno dei predittori x1 e 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)
Come visto di seguito, la trama dei residui associati a m.mis contro x2 mostra un chiaro schema quadratico, suggerendo che il modello m.mis non è riuscito a catturare questo modello sistematico.
![inserisci qui la descrizione dell'immagine](https://i.stack.imgur.com/MdZin.jpg)
Aumenta il modello erroneamente specificato
Per specificare correttamente il modello m.mis, dovremmo aumentarlo in modo che includa anche il termine I (x2 ^ 2):
m <- lm(y ~ x1 + x2 + I(x2^2))
Ecco i grafici dei residui rispetto a x1 e x2 per questo modello correttamente specificato:
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)
Si noti che il modello quadratico precedentemente visto nel diagramma dei residui rispetto a x2 per il modello errato m.mis ora è scomparso dal diagramma dei residui rispetto a x2 per il modello m correttamente specificato.
Si noti che l'asse verticale di tutti i grafici dei residui rispetto a x1 e x2 mostrati qui deve essere etichettato come "Residuo". Per qualche ragione, R Studio interrompe quell'etichetta.
![inserisci qui la descrizione dell'immagine](https://i.stack.imgur.com/NOvVY.jpg)