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.
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.
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.
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.
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.
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.