Angenommen, Ihre multiple Regressionsgleichung war
y^= 2 x1+ 5 x2+ 3
Wobei "vorhergesagtes " bedeutet. yy^y
Nehmen Sie nun nur die Punkte, für die . Wenn Sie dann gegen zeichnen , erfüllen diese Punkte die Gleichung:y x 1x2= 1y^x1
y^= 2 x1+ 5 ( 1 ) + 3 = 2 x1+ 8
Sie müssen also auf einer Linie der Steigung 2 und mit dem Achsenabschnitt 8 liegen.y
Nehmen Sie nun die Punkte, für die . Wenn Sie gegen plotten , erfüllen diese Punkte:y x 1x2= 2y^x1
y^= 2 x1+ 5 ( 2 ) + 3 = 2 x1+ 13
Das ist also eine Linie von Steigung 2 und mit Achsenabschnitt 13. Sie können selbst überprüfen, ob bei eine andere Linie von Steigung 2 und Achsenabschnitt 18 erhalten wird.x 2 = 3 yyx2= 3y
Wir sehen, dass Punkte mit unterschiedlichen Werten von auf unterschiedlichen Linien liegen, aber alle mit demselben Gradienten: Die Bedeutung des Koeffizienten von in der ursprünglichen Regressionsgleichung ist, dass ceteris paribus, dh andere Prädiktoren konstant halten, eine Einheit größer wird erhöht die vorhergesagte mittlere Antwort um zwei Einheiten, während die Bedeutung des Abschnitts von in der Regressionsgleichung war, dass wenn und dann die vorhergesagte mittlere Antwort . Aber nicht alle deine Punkte haben das gleiche 2 x 1 x 1 y 3 x 1 = 0 x 2 = 0 3 x 2 3 x 2 = 0 x 2 x 2 y = 2 x 1 + 5 x 2 + 3x22 x1x1y^3x1= 0x2= 03x2Dies bedeutet, dass sie auf Linien mit einem anderen Schnittpunkt liegen - die Linie hätte nur den Schnittpunkt für die Punkte, für die . Anstatt eine einzelne Linie zu sehen, sehen Sie möglicherweise (wenn es nur bestimmte Werte von , z. B. wenn immer eine Ganzzahl ist) eine Reihe von diagonalen "Streifen". Betrachten Sie die folgenden Daten, wobei .3x2= 0x2x2y^= 2 x1+ 5 x2+ 3
Hier gibt es wahrnehmbare "Streifen". Wenn ich nun die Punkte, für die als rote Kreise, als goldene Dreiecke und als blaue Quadrate einfärbe, sehen wir, dass sie auf drei verschiedenen Linien liegen, alle mit Steigung 2 und Abschnitten 8, 13 und 18 wie oben berechnet. Wenn nicht gezwungen wäre, ganzzahlige Werte anzunehmen, oder die Situation durch die Einbeziehung anderer Prädiktorvariablen in die Regression kompliziert wäre, wäre die diagonale Streifenbildung natürlich weniger klar, aber es wäre immer noch so, dass jeder vorhergesagte Punkt liegt auf einer separaten Linie basierend auf den Werten der anderen Prädiktoren, die in der Grafik nicht angezeigt werden .x 2 = 2 x 2 = 3 y x 2x2= 1x2= 2x2= 3yx2
Wenn Sie einen dreidimensionalen Graphen von gegen und zeichnen , liegen Ihre vorhergesagten Punkte alle in der zweidimensionalen Ebene mit der Gleichung . Das oben beschriebene Diagramm versus ist eine Projektion dieses dreidimensionalen Diagramms auf zwei Dimensionen. Stellen Sie sich vor, Sie richten sich mit der Achse aus, sodass Sie direkt nach unten schauen, während die Achse nach oben und die Achse zeigt zeigt nach rechtsx 1 x 2 y = 2 x 1 + 5 x 2 + 3 y x 1 x 2 y x 1yx1x2y^= 2 x1+ 5 x2+ 3yx1x2yx1
Beachten Sie, dass alle Punkte genau deshalb in einer flachen Ebene liegen, weil ich die angepassten (dh vorhergesagten) Werte gezeichnet habe . Wenn wir einen Plot mit den beobachteten Werten zeichnen, liegen diese vertikal über oder unter diesen Punkten, je nachdem, ob der Rest positiv oder negativ ist.yyy
Die Beziehung zwischen und ist linear, wenn gesteuert wird (dh für die Konstante ist die Beziehung zwischen und eine gerade Linie), was oft als "Herausfiltern" der Wirkung von . Wenn Sie ein Diagramm zeichnen möchten, in dem die Beziehung zwischen und unter Berücksichtigung der Variation in wird, können Sie ein "partielles Regressionsdiagramm" (auch "Diagramm mit hinzugefügten Variablen" genannt) verwenden, in dem die Beziehung zwischen und wird x1x2x2 y x1x2yx1x2yx1y^x1x2x2y^x1x2yx1 x2yx1 als eine einzige gerade Linie gezeichnet werden.
Code für R-Parzellen
library(scatterplot3d)
data.df <- data.frame(
x1 = c(0,2,4,5,8, 1,3,4,7,8, 0,3,5,6,7),
x2 = c(1,1,1,1,1, 2,2,2,2,2, 3,3,3,3,3)
)
data.df$yhat <- with(data.df, 2*x1 + 5*x2 + 3)
data1.df <- data.df[data.df$x2==1,]
data2.df <- data.df[data.df$x2==2,]
data3.df <- data.df[data.df$x2==3,]
#Before lines added
mar.default <- c(5,4,4,2) + 0.1
par(mar = mar.default + c(0, 1, 0, 0))
plot(data.df[c("x1","yhat")], main=expression("Predicted y against "*x[1]),
xlab=expression(x[1]), ylab=expression(hat(y)))
#After lines added
plot(data.df[c("x1","yhat")], main=expression("Predicted y against "*x[1]),
xlab=expression(x[1]), ylab=expression(hat(y)), pch=".")
points(data1.df[c("x1","yhat")], pch=19, col="red")
abline(lm(yhat ~ x1, data=data1.df), col="red")
points(data2.df[c("x1","yhat")], pch=17, col="gold")
abline(lm(yhat ~ x1, data=data2.df), col="gold")
points(data3.df[c("x1","yhat")], pch=15, col="blue")
abline(lm(yhat ~ x1, data=data3.df), col="blue")
#3d plot
myPlot <- scatterplot3d(data.df, pch=".", xlab=expression(x[1]),
ylab=expression(x[2]), zlab=expression(hat(y)),
main=expression("Predicted y against "*x[1]*" and "*x[2]))
myPlot$plane3d(Intercept=3, x.coef=2, y.coef=5, col="darkgrey")
myPlot$points3d(data1.df, pch=19, col="red")
myPlot$points3d(data2.df, pch=17, col="gold")
myPlot$points3d(data3.df, pch=15, col="blue")
print(myPlot)