Zusätzlich zu der hervorragenden Antwort von @ mkt dachte ich, ich würde Ihnen ein konkretes Beispiel geben, damit Sie eine gewisse Intuition entwickeln können.
Generieren Sie Daten zum Beispiel
In diesem Beispiel habe ich einige Daten mit R wie folgt generiert:
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
Wie Sie oben sehen können, stammen die Daten aus dem Modell y= β0+ β1∗ x1+ β2∗ x2+ β3∗ x22+ ϵ , wobei ϵ ein normalverteilter Zufallsfehlerterm mit ist Mittelwert 0 und unbekannte Varianz σ2 . Weiterhin ist β0= 1 , β1= 10 , β2= 0,4 undβ3= 0,8 , währendσ= 1 .
Visualisieren Sie die generierten Daten über Coplots
Mit den simulierten Daten zur Ergebnisvariablen y und den Prädiktorvariablen x1 und x2 können wir diese Daten mithilfe von Coplots visualisieren :
library(lattice)
coplot(y ~ x1 | x2,
number = 4, rows = 1,
panel = panel.smooth)
coplot(y ~ x2 | x1,
number = 4, rows = 1,
panel = panel.smooth)
Die resultierenden Coplots sind unten gezeigt.
Das erste Coplot zeigt Streudiagramme von y gegen x1, wenn x2 zu vier verschiedenen Bereichen beobachteter Werte gehört (die sich überlappen), und erweitert jedes dieser Streudiagramme mit einer glatten, möglicherweise nichtlinearen Anpassung, deren Form aus den Daten geschätzt wird.
Das zweite Coplot zeigt Streudiagramme von y gegen x2, wenn x1 zu vier verschiedenen Bereichen beobachteter Werte gehört (die sich überlappen), und verbessert jedes dieser Streudiagramme mit einer glatten Anpassung.
Der erste Coplot legt nahe, dass anzunehmen ist, dass x1 bei der Steuerung von x2 einen linearen Effekt auf y hat und dass dieser Effekt nicht von x2 abhängt.
Der zweite Coplot legt nahe, dass anzunehmen ist, dass x2 bei der Steuerung von x1 einen quadratischen Effekt auf y hat und dass dieser Effekt nicht von x1 abhängt.
Passen Sie ein korrekt angegebenes Modell an
Die Coplots schlagen vor, das folgende Modell an die Daten anzupassen, was einen linearen Effekt von x1 und einen quadratischen Effekt von x2 ermöglicht:
m <- lm(y ~ x1 + x2 + I(x2^2))
Erstellen Sie Component Plus-Restdiagramme für das korrekt angegebene Modell
Sobald das korrekt angegebene Modell an die Daten angepasst ist, können wir die Komponenten- und Restdiagramme für jeden im Modell enthaltenen Prädiktor untersuchen :
library(car)
crPlots(m)
Diese Komponenten plus Restdiagramme sind unten gezeigt und legen nahe, dass das Modell korrekt spezifiziert wurde, da sie keine Hinweise auf Nichtlinearität usw. aufweisen. In der Tat gibt es in jedem dieser Diagramme keine offensichtliche Diskrepanz zwischen der gepunkteten blauen Linie, die auf einen linearen Effekt von hinweist der entsprechende Prädiktor und die durchgezogene Magenta-Linie deuten auf einen nichtlinearen Effekt dieses Prädiktors im Modell hin.
Passen Sie ein falsch angegebenes Modell an
Lassen Sie uns den Anwalt des Teufels spielen und sagen, dass unser lm () -Modell tatsächlich falsch spezifiziert (dh falsch spezifiziert) wurde, in dem Sinne, dass es den quadratischen Term I (x2 ^ 2) wegließ:
m.mis <- lm(y ~ x1 + x2)
Erstellen Sie Component Plus-Restdiagramme für das falsch angegebene Modell
Wenn wir Komponenten plus Residuendiagramme für das falsch spezifizierte Modell konstruieren würden, würden wir sofort einen Hinweis auf eine Nichtlinearität des Effekts von x2 im falsch spezifizierten Modell sehen:
crPlots(m.mis)
Mit anderen Worten, wie unten zu sehen ist, konnte das falsch spezifizierte Modell den quadratischen Effekt von x2 nicht erfassen, und dieser Effekt wird in der Komponente plus Restdiagramm angezeigt, die dem Prädiktor x2 im falsch spezifizierten Modell entspricht.
Die Fehlspezifikation des Effekts von x2 im Modell m.mis wäre auch offensichtlich, wenn Diagramme der mit diesem Modell verbundenen Residuen gegen jeden der Prädiktoren x1 und x2 untersucht werden:
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)
Wie unten zu sehen ist, zeigt die Darstellung der mit m.mis gegen x2 assoziierten Residuen ein klares quadratisches Muster, was darauf hindeutet, dass das Modell m.mis dieses systematische Muster nicht erfassen konnte.
Erweitern Sie das falsch angegebene Modell
Um das Modell m.mis korrekt anzugeben, müssten wir es so erweitern, dass es auch den Term I (x2 ^ 2) enthält:
m <- lm(y ~ x1 + x2 + I(x2^2))
Hier sind die Diagramme der Residuen gegen x1 und x2 für dieses korrekt angegebene Modell:
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)
Beachten Sie, dass das quadratische Muster, das zuvor in der Darstellung der Residuen gegen x2 für das falsch spezifizierte Modell m.mis zu sehen war, jetzt aus der Darstellung der Residuen gegen x2 für das korrekt spezifizierte Modell m verschwunden ist.
Beachten Sie, dass die vertikale Achse aller hier gezeigten Diagramme der Residuen gegen x1 und x2 als "Residuum" bezeichnet werden sollte. Aus irgendeinem Grund schneidet R Studio dieses Etikett ab.