Предположим, что ваше уравнение множественной регрессии было
Y^= 2 х1+ 5 х2+ 3
где у означает «предсказал у ».Y^Y
Теперь возьмите только те точки, для которых . Тогда если участок у от й 1 , эти точки будут удовлетворять уравнение:Икс2= 1Y^Икс1
Y^= 2 х1+ 5 ( 1 ) + 3 = 2 x1+ 8
Таким образом, они должны лежать на линии наклона 2 и с перехватом 8.Y
Теперь возьмите те точки, для которых . При печати у противИкс2= 2Y^ , то эти точки удовлетворяют:x1
y^=2x1+5(2)+3=2x1+13
Так что это линия наклона 2 с -интерпретом 13. Вы можете убедиться, что если x 2 = 3, то получите другую линию наклона 2, а y -интерпрет равен 18.yx2=3y
Мы видим, что точки с разными значениями будут лежать на разных линиях, но все с одним и тем же градиентом: значение коэффициента 2 x 1 в исходном уравнении регрессии заключается в том, что при прочих равных условиях, т.е. увеличение единицы в х 1 увеличивается средний прогнозируемый отклик у на две единицы, в то время как значение перехвата 3 в уравнение регрессии было то , что , когда х 1 = 0 и х 2 = 0 , то прогнозируемый средний ответ 3x22x1x1y^3x1=0x2=03, Но не все ваши точки имеют одинаковые 2 + 3 .x2, что означает, что они лежат на линиях с другим пересечением - у линии будет только перехват для тех точек, для которых x 2 = 0 . Таким образом, вместо того, чтобы видеть одну строку, вы можете увидеть (если есть только определенные значения x 2 , например, если x 2 всегда целочисленный), ряд диагональных «полос». Рассмотрим следующие данные, где у = 2 х 1 + 5 х3x2=0x2x2y^=2x1+5x2+3
Здесь есть заметные "полосы". Теперь, если я закрашу те точки, для которых виде красных кружков, x 2 = 2 в виде золотых треугольников и x 2 = 3 в виде синих квадратов, мы увидим, что они лежат на трех разных линиях, все с уклоном 2, и y -интерцепты 8, 13 и 18, как рассчитано выше. Конечно, если x 2 не был вынужден принимать целочисленные значения, или ситуация осложнялась другими переменными предиктора, включенными в регрессию, то диагональные штрихи были бы менее четкими, но все равно это был бы случай, когда каждая предсказанная точка лежит на отдельной строкеx2=1x2=2x2=3yx2на основе значений других предикторов, не показанных на графике .
yx1x2y^=2x1+5x2+3yx1x2yx1Ось указывает на ваше право.
yy
y^x1x2x2y^x1x2yx1 x2yИкс1
Код для R участков
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)