다중 회귀 방정식이
y^=2x1+5x2+3
여기서, Y는 수단 "예측 Y를 ".y^y
이제 점만 취하십시오 . 당신이 플롯 경우 Y를 상대로 X 1 , 이러한 점은 방정식을 만족 :x2=1y^x1
y^=2x1+5(1)+3=2x1+8
따라서 경사 2의 선과 절편 8이 있어야합니다 .y
이제 점을 취하십시오 . 당신이 플롯하면 Y를 상대로 X 1 , 다음, 이러한 점은 만족 :x2=2y^x1
y^=2x1+5(2)+3=2x1+13
이것은 2 번 경사면과 절편 13입니다. x 2 = 3 이면 또 다른 2 번 경사면과 y 절편이 18 인지 스스로 확인할 수 있습니다 .yx2=3y
우리는 의 다른 값을 가진 점 들이 다른 선에 놓여 있지만 모두 동일한 그래디언트를 갖는 것을 볼 수 있습니다 . 원래 회귀 방정식에서 2 x 1 의 계수의 의미는 ceteris paribus, 즉 다른 예측 변수를 일정하게 유지한다는 것입니다. 의 단위 증가 X 1 이 증가 된 예측 평균 응답 Y 의 절편의 의미있는 동안 두 개의 유닛에 의하여, 3 회귀 식 일 때 그 X (1) = 0 및 X 2 = 0이 그 예측 된 평균 응답이 3x22x1x1y^3x1=0x2=03. 그러나 모든 포인트가 동일한 갖는 것은 아닙니다. 즉, 다른 절편이있는 선에 놓여 있음을 의미합니다. 선은 x 2 = 0 인 점에 대해 3 만 인터셉트 합니다. (의 특정 값이있는 경우에 따라서가 아니라 하나의 선을 보는 것보다, 당신은 볼 수 있습니다 X 이 경우에 발생할 예를 들어, X 2는 정수 항상) 대각선 "줄무늬"일련의. 여기서, 다음의 데이터가 있다면 , Y는 = 2 X 1 + 5 X 2 + 3 .x23x2=0x2x2y^=2x1+5x2+3
x2=1x2=2x2=3yx2그래프에 표시되지 않은 다른 예측 변수의 값을 기준으로합니다 .
yx1x2y^=2x1+5x2+3yx1x2yx1축은 오른쪽을 가리 킵니다.
yy
y^x1x2x2y^x1x2yx1 x2yx1
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)