R - Nhiều hồi quy

Hồi quy bội là một phần mở rộng của hồi quy tuyến tính vào mối quan hệ giữa nhiều hơn hai biến. Trong quan hệ tuyến tính đơn giản, chúng ta có một biến dự báo và một biến phản hồi, nhưng trong hồi quy bội, chúng ta có nhiều hơn một biến dự báo và một biến phản hồi.

Phương trình toán học tổng quát cho hồi quy bội là:

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

Sau đây là mô tả về các tham số được sử dụng:

  • y là biến phản hồi.

  • a, b1, b2...bn là các hệ số.

  • x1, x2, ...xn là các biến dự báo.

Chúng tôi tạo mô hình hồi quy bằng cách sử dụng lm()hàm trong R. Mô hình xác định giá trị của các hệ số bằng cách sử dụng dữ liệu đầu vào. Tiếp theo, chúng ta có thể dự đoán giá trị của biến phản hồi cho một tập hợp các biến dự báo nhất định bằng cách sử dụng các hệ số này.

Hàm lm ()

Hàm này tạo ra mô hình mối quan hệ giữa yếu tố dự đoán và biến phản hồi.

Cú pháp

Cú pháp cơ bản cho lm() hàm trong hồi quy bội là -

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

Sau đây là mô tả về các tham số được sử dụng:

  • formula là một ký hiệu trình bày mối quan hệ giữa biến phản ứng và các biến dự báo.

  • data là vectơ mà công thức sẽ được áp dụng.

Thí dụ

Dữ liệu đầu vào

Hãy xem xét tập dữ liệu "mtcars" có sẵn trong môi trường R. Nó đưa ra so sánh giữa các mẫu xe khác nhau về số dặm trên mỗi gallon (mpg), dung tích xi lanh ("disp"), sức ngựa ("hp"), trọng lượng của xe ("wt") và một số thông số khác.

Mục tiêu của mô hình là thiết lập mối quan hệ giữa "mpg" như một biến phản hồi với "disp", "hp" và "wt" là các biến dự báo. Chúng tôi tạo một tập hợp con của các biến này từ tập dữ liệu mtcars cho mục đích này.

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

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

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

Tạo mô hình mối quan hệ và nhận Hệ số

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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

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

Tạo phương trình cho mô hình hồi quy

Dựa trên các giá trị hệ số và hệ số chặn ở trên, ta lập phương trình toán học.

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

Áp dụng phương trình để dự đoán các giá trị mới

Chúng ta có thể sử dụng phương trình hồi quy đã tạo ở trên để dự đoán quãng đường đi được khi cung cấp một bộ giá trị mới cho độ dịch chuyển, sức ngựa và trọng lượng.

Đối với một chiếc xe có disp = 221, hp = 102 và wt = 2,91, quãng đường dự đoán là -

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