R - การถดถอยพหุคูณ

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

สมการทางคณิตศาสตร์ทั่วไปสำหรับการถดถอยพหุคูณคือ -

y = a + b1x1 + b2x2 +...bnxn

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • y คือตัวแปรตอบสนอง

  • a, b1, b2...bn คือสัมประสิทธิ์

  • x1, x2, ...xn เป็นตัวแปรทำนาย

เราสร้างแบบจำลองการถดถอยโดยใช้ lm()ฟังก์ชันใน R แบบจำลองกำหนดค่าของสัมประสิทธิ์โดยใช้ข้อมูลอินพุต ต่อไปเราสามารถทำนายค่าของตัวแปรตอบสนองสำหรับชุดของตัวแปรทำนายโดยใช้สัมประสิทธิ์เหล่านี้

lm () ฟังก์ชัน

ฟังก์ชันนี้สร้างแบบจำลองความสัมพันธ์ระหว่างตัวทำนายและตัวแปรตอบสนอง

ไวยากรณ์

ไวยากรณ์พื้นฐานสำหรับ lm() ฟังก์ชันในการถดถอยพหุคูณคือ -

lm(y ~ x1+x2+x3...,data)

ต่อไปนี้เป็นคำอธิบายของพารามิเตอร์ที่ใช้ -

  • formula เป็นสัญลักษณ์ที่แสดงความสัมพันธ์ระหว่างตัวแปรตอบสนองและตัวแปรทำนาย

  • data คือเวกเตอร์ที่จะนำสูตรไปใช้

ตัวอย่าง

ป้อนข้อมูล

พิจารณาชุดข้อมูล "mtcars" ที่มีอยู่ในสภาพแวดล้อม R ให้การเปรียบเทียบระหว่างรถรุ่นต่างๆในแง่ของระยะทางต่อแกลลอน (mpg) การกระจัดของกระบอกสูบ ("disp") แรงม้า ("hp") น้ำหนักของรถ ("wt") และพารามิเตอร์อื่น ๆ

เป้าหมายของแบบจำลองคือการสร้างความสัมพันธ์ระหว่าง "mpg" เป็นตัวแปรตอบสนองโดยมี "disp", "hp" และ "wt" เป็นตัวแปรทำนาย เราสร้างชุดย่อยของตัวแปรเหล่านี้จากชุดข้อมูล mtcars เพื่อจุดประสงค์นี้

input <- mtcars[,c("mpg","disp","hp","wt")]
print(head(input))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

mpg   disp   hp    wt
Mazda RX4          21.0  160    110   2.620
Mazda RX4 Wag      21.0  160    110   2.875
Datsun 710         22.8  108     93   2.320
Hornet 4 Drive     21.4  258    110   3.215
Hornet Sportabout  18.7  360    175   3.440
Valiant            18.1  225    105   3.460

สร้างแบบจำลองความสัมพันธ์และรับค่าสัมประสิทธิ์

input <- mtcars[,c("mpg","disp","hp","wt")]

# Create the relationship model.
model <- lm(mpg~disp+hp+wt, data = input)

# Show the model.
print(model)

# Get the Intercept and coefficients as vector elements.
cat("# # # # The Coefficient Values # # # ","\n")

a <- coef(model)[1]
print(a)

Xdisp <- coef(model)[2]
Xhp <- coef(model)[3]
Xwt <- coef(model)[4]

print(Xdisp)
print(Xhp)
print(Xwt)

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

Call:
lm(formula = mpg ~ disp + hp + wt, data = input)

Coefficients:
(Intercept)         disp           hp           wt  
  37.105505      -0.000937        -0.031157    -3.800891  

# # # # The Coefficient Values # # # 
(Intercept) 
   37.10551 
         disp 
-0.0009370091 
         hp 
-0.03115655 
       wt 
-3.800891

สร้างสมการสำหรับแบบจำลองการถดถอย

จากค่าการสกัดกั้นและค่าสัมประสิทธิ์ข้างต้นเราสร้างสมการทางคณิตศาสตร์

Y = a+Xdisp.x1+Xhp.x2+Xwt.x3
or
Y = 37.15+(-0.000937)*x1+(-0.0311)*x2+(-3.8008)*x3

ใช้สมการเพื่อทำนายค่าใหม่

เราสามารถใช้สมการการถดถอยที่สร้างขึ้นด้านบนเพื่อทำนายระยะทางเมื่อมีการระบุค่าชุดใหม่สำหรับการกระจัดกำลังม้าและน้ำหนัก

สำหรับรถที่มี disp = 221 แรงม้า = 102 และ wt = 2.91 ระยะทางที่คาดการณ์ไว้คือ -

Y = 37.15+(-0.000937)*221+(-0.0311)*102+(-3.8008)*2.91 = 22.7104