Misalkan persamaan regresi berganda Anda
y^=2x1+5x2+3
di mana berarti "diprediksi ". yy^y
Sekarang ambil hanya titik-titik yang . Lalu jika Anda merencanakan terhadap , poin-poin ini akan memenuhi persamaan:y x 1x2=1y^x1
y^=2x1+5(1)+3=2x1+8
Jadi mereka harus berbaring di garis kemiringan 2 dan dengan masuk 8.y
Sekarang ambil poin-poin itu untuk mana . Saat Anda merencanakan terhadap , maka poin-poin ini memenuhi:y x 1x2=2y^x1
y^=2x1+5(2)+3=2x1+13
Jadi itu garis kemiringan 2 dan dengan -intercept 13. Anda dapat memverifikasi sendiri bahwa jika maka Anda mendapatkan garis kemiringan 2 dan -intercept adalah 18.x 2 = 3 yyx2=3y
Kita melihat bahwa titik-titik dengan nilai yang berbeda akan terletak pada garis yang berbeda, tetapi semua dengan gradien yang sama: arti dari koefisien dalam persamaan regresi asli adalah bahwa, ceteris paribus yaitu memegang prediktor lain konstan, peningkatan satu unit dalam meningkatkan respons rata-rata yang diperkirakan dua kali lipat dengan dua unit, sedangkan arti intersep dalam persamaan regresi adalah bahwa ketika dan maka respons rata-rata yang diprediksi adalah . Tetapi tidak semua poin Anda memiliki sama 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 + 3x22x1x1y^3x1=0x2=03x2, yang berarti mereka berbaring di garis dengan intersep yang berbeda - garis hanya akan memiliki intersep untuk titik-titik yang . Jadi daripada melihat satu baris, Anda dapat melihat (jika hanya ada nilai-nilai tertentu yang terjadi, misalnya jika selalu bilangan bulat) serangkaian "coretan" diagonal. Pertimbangkan data berikut, di mana .3x2=0x2x2y^=2x1+5x2+3
Di sini ada "coretan" yang jelas. Sekarang jika saya mewarnai titik-titik yang sebagai lingkaran merah, sebagai segitiga emas dan sebagai kotak biru kita melihat mereka terletak pada tiga garis yang berbeda, semua kemiringan 2, dan -intercepts 8, 13 dan 18 sebagaimana dihitung di atas. Tentu saja, jika tidak dibatasi untuk mengambil nilai integer, atau situasinya rumit oleh variabel prediktor lain yang dimasukkan dalam regresi, maka goresan diagonal akan menjadi kurang jelas, tetapi masih akan menjadi kasus di mana setiap titik prediksi terletak pada baris terpisah berdasarkan nilai-nilai prediktor lain yang tidak ditampilkan pada grafik .x 2 = 2 x 2 = 3 y x 2x2=1x2=2x2=3yx2
Jika Anda memplot grafik 3-dimensi terhadap dan , maka semua poin yang Anda prediksi semuanya terletak pada bidang dua dimensi dengan persamaan . The vs grafik saya jelaskan di atas adalah proyeksi dari yang grafik tiga dimensi ke dua dimensi - bayangkan lapisan diri dengan sumbu sehingga Anda mencari lurus ke bawah itu, sedangkan sumbu poin ke atas dan sumbu menunjuk ke kanan Anda.yx1x2y^=2x1+5x2+3yx1x2yx1
Perhatikan bahwa semua titik terletak pada bidang datar tepat karena saya telah menggambar nilai sesuai (yaitu diprediksi) . Jika kita menggambar plot menggunakan nilai-nilai diamati maka ini akan terletak secara vertikal di atas atau di bawah titik-titik ini, tergantung pada apakah residualnya positif atau negatif.yy
Hubungan antara dan adalah linier ketika dikontrol untuk (yaitu untuk konstan , hubungan antara dan adalah garis lurus), yang sering digambarkan sebagai "partialling out" efek . Jika Anda ingin menggambar plot yang menunjukkan hubungan antara dan dengan mempertimbangkan variasi dalam maka Anda dapat menggunakan "plot regresi parsial" (juga disebut "plot variabel ditambahkan"), di mana hubungan antara dan akany^x1x2x2y^x1x2yx1 x2yx1 ditarik sebagai garis lurus tunggal.
Kode untuk plot 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)