วิธีการพล็อตผลลัพธ์การถดถอยเชิงเส้นหลายรายการใน r


เมื่อเราทำการ ถดถอยเชิงเส้นอย่างง่าย ใน R มันเป็นเรื่องง่ายที่จะเห็นเส้นการถดถอยที่ติดตั้งไว้ เนื่องจากเรากำลังทำงานกับตัวแปรตัวทำนายตัวเดียวและ ตัวแปรตอบสนอง ตัวเดียวเท่านั้น

ตัวอย่างเช่น โค้ดต่อไปนี้แสดงวิธีปรับโมเดลการถดถอยเชิงเส้นอย่างง่ายให้พอดีกับชุดข้อมูลและพล็อตผลลัพธ์:

 #create dataset
data <- data.frame(x = c(1, 1, 2, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11),
                   y = c(13, 14, 17, 23, 24, 25, 25, 24, 28, 32, 33, 35, 40, 41))

#fit simple linear regression model
model <- lm(y ~ x, data = data)

#create scatterplot of data
plot(data$x, data$y)

#add fitted regression line
abline(model)

พล็อตเส้นการถดถอยเชิงเส้นอย่างง่ายใน R ด้วยแผนภาพกระจาย

อย่างไรก็ตาม เมื่อเราทำการ ถดถอยเชิงเส้นหลายครั้ง การมองเห็นผลลัพธ์จะกลายเป็นเรื่องยาก เนื่องจากมีตัวแปรทำนายหลายตัว และเราไม่สามารถพล็อตเส้นการถดถอยบนกราฟ 2 มิติได้ง่ายๆ

แต่เราสามารถใช้ แปลงตัวแปรเพิ่มเติม (บางครั้งเรียกว่า “แปลงการถดถอยบางส่วน”) ซึ่งเป็นแต่ละแปลงที่แสดงความสัมพันธ์ระหว่างตัวแปรตอบสนองและตัวแปรทำนาย ในขณะที่ควบคุมการมีอยู่ของตัวแปรทำนายอื่นๆ ในแบบจำลอง

ตัวอย่างต่อไปนี้แสดงวิธีการถดถอยเชิงเส้นหลายรายการใน R และแสดงภาพผลลัพธ์โดยใช้แปลงตัวแปรที่ต่อท้าย

ตัวอย่าง: การพล็อตผลลัพธ์การถดถอยเชิงเส้นพหุคูณใน R

สมมติว่าเราใส่โมเดลการถดถอยเชิงเส้นหลายตัวต่อไปนี้กับชุดข้อมูลใน R โดยใช้ชุดข้อมูล mtcars ในตัว:

 #fit multiple linear regression model
model <- lm(mpg ~ disp + hp + drat, data = mtcars)

#view results of model
summary(model)

Call:
lm(formula = mpg ~ disp + hp + drat, data = mtcars)

Residuals:
    Min 1Q Median 3Q Max 
-5.1225 -1.8454 -0.4456 1.1342 6.4958 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)   
(Intercept) 19.344293 6.370882 3.036 0.00513 **
available -0.019232 0.009371 -2.052 0.04960 * 
hp -0.031229 0.013345 -2.340 0.02663 * 
drat 2.714975 1.487366 1.825 0.07863 . 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.008 on 28 degrees of freedom
Multiple R-squared: 0.775, Adjusted R-squared: 0.7509 
F-statistic: 32.15 on 3 and 28 DF, p-value: 3.28e-09

จากผลลัพธ์จะพบว่าค่า p ของสัมประสิทธิ์แต่ละตัวมีค่าน้อยกว่า 0.1 เพื่อความง่าย เราจะถือว่าตัวแปรทำนายแต่ละตัวมีนัยสำคัญและควรรวมไว้ในแบบจำลอง

ในการสร้างแปลงของตัวแปรต่อท้าย เราสามารถใช้ฟังก์ชัน avPlots() จากแพ็คเกจ car :

 #load car package
library(car)

#produce added variable plots
avPlots(model)

พล็อตการถดถอยเชิงเส้นพหุคูณใน R

ต่อไปนี้เป็นวิธีตีความแต่ละพล็อต:

  • แกน x จะแสดงตัวแปรทำนายเดี่ยว และแกน y จะแสดงตัวแปรการตอบสนอง
  • เส้นสีน้ำเงินแสดงความสัมพันธ์ระหว่างตัวแปรทำนายและตัวแปรตอบสนอง ในขณะที่คงค่าของตัวแปรทำนายอื่นๆ ทั้งหมดไว้คงที่
  • จุดที่ติดป้ายกำกับในแต่ละกราฟแสดงถึง การสังเกต 2 ครั้งที่มี ปริมาณคงเหลือ มากที่สุด และการสังเกต 2 ครั้งที่มีการงัดบางส่วนที่ใหญ่ที่สุด

โปรดทราบว่ามุมของเส้นในแต่ละโครงสอดคล้องกับเครื่องหมายของสัมประสิทธิ์ของสมการการถดถอยโดยประมาณ

ตัวอย่างเช่น ต่อไปนี้เป็นค่าสัมประสิทธิ์โดยประมาณสำหรับตัวแปรทำนายแต่ละตัวในแบบจำลอง:

  • จอแสดงผล: -0.019232
  • ช: -0.031229
  • วันที่: 2.714975

โปรดทราบว่ามุมของเส้นเป็นบวกในพล็อตตัวแปรที่เพิ่มสำหรับ drat ในขณะที่มุมของเส้นเป็นลบสำหรับ disp และ hp ซึ่งสอดคล้องกับสัญญาณของสัมประสิทธิ์โดยประมาณ:

การเพิ่มพล็อตตัวแปรใน R

แม้ว่าเราจะไม่สามารถพล็อตเส้นการถดถอยพอดีเส้นเดียวบนกราฟ 2 มิติได้ เนื่องจากเรามีตัวแปรทำนายหลายตัว กราฟตัวแปรที่เพิ่มเข้ามาเหล่านี้ช่วยให้เราสามารถสังเกตความสัมพันธ์ระหว่างตัวแปรทำนายแต่ละตัวและตัวแปรตอบสนอง ในขณะที่คงตัวแปรทำนายอื่นๆ ไว้คงที่

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *