R Stepwise & Multiple Linear Regression [Ví dụ từng bước]

Hồi quy tuyến tính đơn giản trong R

Hồi quy tuyến tính trả lời một câu hỏi đơn giản: Bạn có thể đo lường mối quan hệ chính xác giữa một biến mục tiêu và một tập hợp các yếu tố dự đoán không?

Mô hình xác suất đơn giản nhất là mô hình đường thẳng:

Hồi quy tuyến tính đơn giản trong R

Ở đâu

  • y = Biến phụ thuộc
  • x = Biến độc lập
  • Hồi quy tuyến tính đơn giản trong R = thành phần lỗi ngẫu nhiên
  • Hồi quy tuyến tính đơn giản trong R = chặn
  • Hồi quy tuyến tính đơn giản trong R = Hệ số của x

Hãy xem xét cốt truyện sau:

Hồi quy tuyến tính đơn giản trong R

Phương trình là Hồi quy tuyến tính đơn giản trong R là sự đánh chặn. Nếu x bằng 0 thì y sẽ bằng giao điểm là 4.77. là độ dốc của đường Nó cho biết tỷ lệ y thay đổi khi x thay đổi.

Để ước lượng các giá trị tối ưu của Hồi quy tuyến tính đơn giản trong RHồi quy tuyến tính đơn giản trong R, bạn sử dụng một phương thức gọi là Bình phương nhỏ nhất thông thường (OLS). Phương pháp này cố gắng tìm các tham số giảm thiểu tổng sai số bình phương, đó là khoảng cách theo chiều dọc giữa các giá trị y dự đoán và giá trị y thực tế. Sự khác biệt được gọi là Lỗi điều khoản.

Trước khi ước tính mô hình, bạn có thể xác định xem mối quan hệ tuyến tính giữa y và x có hợp lý hay không bằng cách vẽ biểu đồ phân tán.

biểu đồ phân tán

Chúng tôi sẽ sử dụng một tập dữ liệu rất đơn giản để giải thích khái niệm hồi quy tuyến tính đơn giản. Chúng tôi sẽ nhập Chiều cao và cân nặng trung bình của Phụ nữ Mỹ. Bộ dữ liệu chứa 15 quan sát. Bạn muốn đo xem Chiều cao có tương quan dương với cân nặng hay không.

library(ggplot2)
path <- 'https://raw.githubusercontent.com/guru99-edu/R-Programming/master/women.csv'
df <-read.csv(path)
ggplot(df,aes(x=height, y =  weight))+
geom_point()

Đầu ra:

biểu đồ phân tán

Biểu đồ phân tán cho thấy xu hướng chung của y tăng khi x tăng. Trong bước tiếp theo, bạn sẽ đo lường mức tăng thêm cho mỗi lần tăng thêm.

Ước tính bình phương nhỏ nhất

Trong một hồi quy OLS đơn giản, việc tính toán Ước tính bình phương nhỏ nhấtƯớc tính bình phương nhỏ nhất là đơn giản. Mục tiêu không phải là hiển thị đạo hàm trong hướng dẫn này. Bạn sẽ chỉ viết công thức.

Bạn muốn ước tính: Ước tính bình phương nhỏ nhất

Mục tiêu của hồi quy OLS là giảm thiểu phương trình sau:

Ước tính bình phương nhỏ nhất

Ở đâu

Ước tính bình phương nhỏ nhất là giá trị thực tế và Ước tính bình phương nhỏ nhất là giá trị dự đoán

Giải pháp cho Ước tính bình phương nhỏ nhất is Ước tính bình phương nhỏ nhất

Lưu ý rằng Ước tính bình phương nhỏ nhất có nghĩa là giá trị trung bình của x

Giải pháp cho Ước tính bình phương nhỏ nhất is Ước tính bình phương nhỏ nhất

Trong R, bạn có thể sử dụng hàm cov() và var() để ước tính Ước tính bình phương nhỏ nhất và bạn có thể sử dụng hàm Mean() để ước tính Ước tính bình phương nhỏ nhất

beta <- cov(df$height, df$weight) / var (df$height)
beta

Đầu ra:

##[1] 3.45
alpha <- mean(df$weight) - beta * mean(df$height)
alpha

Đầu ra:

## [1] -87.51667

Hệ số beta hàm ý rằng cứ mỗi chiều cao tăng thêm thì cân nặng tăng thêm 3.45.

Ước tính phương trình tuyến tính đơn giản theo cách thủ công không phải là lý tưởng. R cung cấp một hàm thích hợp để ước lượng các tham số này. Bạn sẽ thấy chức năng này ngay. Trước đó, chúng tôi sẽ giới thiệu cách tính toán bằng tay một mô hình hồi quy tuyến tính đơn giản. Trong hành trình làm nhà khoa học dữ liệu, bạn sẽ hầu như không bao giờ ước tính một mô hình tuyến tính đơn giản. Trong hầu hết các trường hợp, nhiệm vụ hồi quy được thực hiện trên nhiều công cụ ước tính.

Hồi quy tuyến tính bội trong R

Các ứng dụng thực tế hơn của phân tích hồi quy sử dụng các mô hình phức tạp hơn mô hình đường thẳng đơn giản. Mô hình xác suất bao gồm nhiều hơn một biến độc lập được gọi là mô hình hồi quy bội. Dạng tổng quát của mô hình này là:

Hồi quy tuyến tính bội trong R

Trong ký hiệu ma trận, bạn có thể viết lại mô hình:

  • Hồi quy tuyến tính bội trong R

Biến phụ thuộc y bây giờ là hàm của k biến độc lập. Giá trị của hệ số Hồi quy tuyến tính bội trong R xác định sự đóng góp của biến độc lập Hồi quy tuyến tính bội trong RHồi quy tuyến tính bội trong R.

Chúng tôi giới thiệu ngắn gọn giả định mà chúng tôi đã đưa ra về lỗi ngẫu nhiên Hồi quy tuyến tính bội trong R của OLS:

  • Có nghĩa là bằng 0
  • Phương sai bằng Hồi quy tuyến tính bội trong R
  • Phân phối bình thường
  • Lỗi ngẫu nhiên là độc lập (theo nghĩa xác suất)

Bạn cần giải quyết cho Hồi quy tuyến tính bội trong R, vectơ các hệ số hồi quy giảm thiểu tổng sai số bình phương giữa giá trị y dự đoán và giá trị thực tế.

Giải pháp dạng đóng là:

Hồi quy tuyến tính bội trong R

với:

  • chỉ ra hoán vị của ma trận X
  • Hồi quy tuyến tính bội trong R chỉ ra ma trận khả nghịch

Chúng tôi sử dụng bộ dữ liệu mtcars. Bạn đã quen thuộc với tập dữ liệu. Mục tiêu của chúng tôi là dự đoán số dặm trên mỗi gallon dựa trên một tập hợp các đặc điểm.

Biến liên tục trong R

Hiện tại, bạn sẽ chỉ sử dụng các biến liên tục và bỏ qua các đặc điểm phân loại. Biến am là biến nhị phân lấy giá trị 1 nếu hộp số là số sàn và 0 đối với xe số tự động; vs cũng là biến nhị phân.

library(dplyr)
df <- mtcars % > %
select(-c(am, vs, cyl, gear, carb))
glimpse(df)

Đầu ra:

## Observations: 32
## Variables: 6
## $ mpg  <dbl> 21.0, 21.0, 22.8, 21.4, 18.7, 18.1, 14.3, 24.4, 22.8, 19....
## $ disp <dbl> 160.0, 160.0, 108.0, 258.0, 360.0, 225.0, 360.0, 146.7, 1...
## $ hp   <dbl> 110, 110, 93, 110, 175, 105, 245, 62, 95, 123, 123, 180, ...
## $ drat <dbl> 3.90, 3.90, 3.85, 3.08, 3.15, 2.76, 3.21, 3.69, 3.92, 3.9...
## $ wt   <dbl> 2.620, 2.875, 2.320, 3.215, 3.440, 3.460, 3.570, 3.190, 3...
## $ qsec <dbl> 16.46, 17.02, 18.61, 19.44, 17.02, 20.22, 15.84, 20.00, 2...

Bạn có thể sử dụng hàm lm() để tính toán các tham số. Cú pháp cơ bản của hàm này là:

lm(formula, data, subset)
Arguments:
	-formula: The equation you want to estimate	
	-data: The dataset used
	-subset: Estimate the model on a subset of the dataset

Hãy nhớ rằng một phương trình có dạng sau

Biến liên tục trong R

trong R

  • Ký hiệu = được thay thế bằng ~
  • Mỗi x được thay thế bằng tên biến
  • Nếu bạn muốn bỏ hằng số thì thêm -1 vào cuối công thức

Ví dụ:

Bạn muốn ước tính cân nặng của từng cá nhân dựa trên chiều cao và doanh thu của họ. Phương trình là

Biến liên tục trong R

Phương trình trong R được viết như sau:

y ~ X1+ X2+…+Xn # Với phần chặn

Vì vậy, ví dụ của chúng tôi:

  • Cân nặng ~ chiều cao + doanh thu

Mục tiêu của bạn là ước tính số dặm đi được trên mỗi gallon dựa trên một tập hợp các biến số. Phương trình để ước lượng là:

Biến liên tục trong R

Bạn sẽ ước tính hồi quy tuyến tính đầu tiên của mình và lưu trữ kết quả vào đối tượng phù hợp.

model <- mpg~.disp + hp + drat + wt
fit <- lm(model, df)
fit

Giải thích mã

  • mô hình <- mpg ~. disp + hp + drat + wt: Lưu trữ mô hình để ước tính
  • lm(model, df): Ước lượng mô hình với khung dữ liệu df
## 
## Call:
## lm(formula = model, data = df)
## 
## Coefficients:
## (Intercept)         disp           hp         drat           wt  
##    16.53357      0.00872     -0.02060      2.01577     -4.38546  
##        qsec  
##     0.64015	

Đầu ra không cung cấp đủ thông tin về chất lượng của phép khớp. Bạn có thể truy cập thêm thông tin chi tiết như ý nghĩa của các hệ số, bậc tự do và hình dạng của phần dư bằng hàm summary().

summary(fit)

Đầu ra:

## return the p-value and coefficient
## 
## Call:
## lm(formula = model, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5404 -1.6701 -0.4264  1.1320  5.4996 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept) 16.53357   10.96423   1.508  0.14362   
## disp         0.00872    0.01119   0.779  0.44281   
## hp          -0.02060    0.01528  -1.348  0.18936   
## drat         2.01578    1.30946   1.539  0.13579   
## wt          -4.38546    1.24343  -3.527  0.00158 **
## qsec         0.64015    0.45934   1.394  0.17523   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.558 on 26 degrees of freedom
## Multiple R-squared:  0.8489, Adjusted R-squared:  0.8199 
## F-statistic: 29.22 on 5 and 26 DF, p-value: 6.892e-10

Suy luận từ đầu ra của bảng trên

  • Bảng trên chứng minh rằng có mối quan hệ nghịch biến mạnh mẽ giữa wt và quãng đường và mối quan hệ dương với drat.
  • Chỉ có biến wt có tác động thống kê đến mpg. Hãy nhớ rằng, để kiểm tra một giả thuyết trong thống kê, chúng ta sử dụng:
    • H0: Không có tác động thống kê
    • H3: Yếu tố dự đoán có tác động có ý nghĩa đến y
    • Nếu giá trị p nhỏ hơn 0.05 thì biến đó có ý nghĩa thống kê
  • Bình phương R đã điều chỉnh: Phương sai được giải thích bởi mô hình. Trong mô hình của bạn, mô hình đã giải thích được 82% phương sai của y. R bình phương luôn nằm trong khoảng từ 0 đến 1. Càng cao càng tốt

Bạn có thể chạy ANOVA kiểm tra để ước tính tác động của từng tính năng lên phương sai bằng hàm anova().

anova(fit)

Đầu ra:

## Analysis of Variance Table
## 
## Response: mpg
##           Df Sum Sq Mean Sq  F value   Pr(>F)    
## disp       1 808.89  808.89 123.6185 2.23e-11 ***
## hp         1  33.67   33.67   5.1449 0.031854 *  
## drat       1  30.15   30.15   4.6073 0.041340 *  
## wt         1  70.51   70.51  10.7754 0.002933 ** 
## qsec       1  12.71   12.71   1.9422 0.175233    
## Residuals 26 170.13    6.54                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1	

Một cách thông thường hơn để ước tính hiệu suất của mô hình là hiển thị phần dư theo các thước đo khác nhau.

Bạn có thể sử dụng hàm story() để hiển thị bốn biểu đồ:

– Phần dư so với giá trị được trang bị

– Biểu đồ QQ bình thường: Phần tư lý thuyết và phần dư chuẩn hóa

– Tỷ lệ-Vị trí: Giá trị phù hợp so với căn bậc hai của phần dư chuẩn hóa

– Phần dư so với đòn bẩy: Đòn bẩy so với phần dư được tiêu chuẩn hóa

Bạn thêm mã par(mfrow=c(2,2)) trước cốt truyện(fit). Nếu bạn không thêm dòng mã này, R sẽ nhắc bạn nhấn lệnh enter để hiển thị biểu đồ tiếp theo.

par(mfrow=(2,2))

Giải thích mã

  • (mfrow=c(2,2)): trả về một cửa sổ có bốn biểu đồ cạnh nhau.
  • 2 cái đầu tiên thêm số hàng
  • 2 thứ hai thêm số lượng cột.
  • Nếu bạn viết (mfrow=c(3,2)): bạn sẽ tạo cửa sổ 3 hàng 2 cột
plot(fit)

Đầu ra:

Biến liên tục trong R

Công thức lm() trả về một danh sách chứa nhiều thông tin hữu ích. Bạn có thể truy cập chúng bằng đối tượng phù hợp mà bạn đã tạo, theo sau là dấu $ và thông tin bạn muốn trích xuất.

– hệ số: `fit$hệ số`

– số dư: `fit$residuals`

– giá trị được trang bị: `fit$fitted.values`

Các yếu tố hồi quy trong R

Trong ước tính mô hình cuối cùng, bạn chỉ hồi quy mpg trên các biến liên tục. Việc thêm các biến nhân tố vào mô hình là đơn giản. Bạn thêm biến am vào mô hình của mình. Điều quan trọng là phải chắc chắn rằng biến đó là một cấp độ yếu tố và không liên tục.

df <- mtcars % > %
mutate(cyl = factor(cyl),
    vs = factor(vs),
    am = factor(am),
    gear = factor(gear),
    carb = factor(carb))
summary(lm(model, df))

Đầu ra:

## 
## Call:
## lm(formula = model, data = df)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5087 -1.3584 -0.0948  0.7745  4.6251 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 23.87913   20.06582   1.190   0.2525  
## cyl6        -2.64870    3.04089  -0.871   0.3975  
## cyl8        -0.33616    7.15954  -0.047   0.9632  
## disp         0.03555    0.03190   1.114   0.2827  
## hp          -0.07051    0.03943  -1.788   0.0939 .
## drat         1.18283    2.48348   0.476   0.6407  
## wt          -4.52978    2.53875  -1.784   0.0946 .
## qsec         0.36784    0.93540   0.393   0.6997  
## vs1          1.93085    2.87126   0.672   0.5115  
## am1          1.21212    3.21355   0.377   0.7113  
## gear4        1.11435    3.79952   0.293   0.7733  
## gear5        2.52840    3.73636   0.677   0.5089  
## carb2       -0.97935    2.31797  -0.423   0.6787  
## carb3        2.99964    4.29355   0.699   0.4955  
## carb4        1.09142    4.44962   0.245   0.8096  
## carb6        4.47757    6.38406   0.701   0.4938  
## carb8        7.25041    8.36057   0.867   0.3995  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.833 on 15 degrees of freedom
## Multiple R-squared:  0.8931, Adjusted R-squared:  0.779 
## F-statistic:  7.83 on 16 and 15 DF,  p-value: 0.000124

R sử dụng mức yếu tố đầu tiên làm nhóm cơ sở. Bạn cần so sánh các hệ số của nhóm kia với nhóm cơ sở.

Hồi quy tuyến tính từng bước trong R

Phần cuối cùng của hướng dẫn này đề cập đến hồi quy từng bước Thuật toán. Mục đích của thuật toán này là thêm và xóa các ứng viên tiềm năng trong mô hình và giữ lại những ứng viên có tác động đáng kể đến biến phụ thuộc. Thuật toán này có ý nghĩa khi tập dữ liệu chứa danh sách lớn các biến dự báo. Bạn không cần phải thêm và xóa thủ công các biến độc lập. Hồi quy từng bước được xây dựng để chọn ra những ứng viên tốt nhất phù hợp với mô hình.

Hãy xem thực tế nó hoạt động như thế nào. Bạn sử dụng tập dữ liệu mtcars với các biến liên tục chỉ để minh họa sư phạm. Trước khi bắt đầu phân tích, bạn nên thiết lập các biến thể giữa dữ liệu bằng ma trận tương quan. Thư viện GGally là phần mở rộng của ggplot2.

Thư viện bao gồm các hàm khác nhau để hiển thị số liệu thống kê tóm tắt như mối tương quan và phân phối của tất cả các biến trong ma trận. Chúng ta sẽ sử dụng hàm ggscatmat nhưng bạn có thể tham khảo họa tiết để biết thêm thông tin về thư viện GGally.

Cú pháp cơ bản của ggscatmat() là:

ggscatmat(df, columns = 1:ncol(df), corMethod = "pearson")
arguments:
-df:  A matrix of continuous variables
-columns: Pick up the columns to use in the function. By default, all columns are used
-corMethod: Define the function to compute the correlation between variable. By default, the algorithm uses the Pearson formula

Bạn hiển thị mối tương quan cho tất cả các biến của mình và quyết định biến nào sẽ là ứng cử viên tốt nhất cho bước đầu tiên của hồi quy từng bước. Có một số mối tương quan mạnh giữa các biến của bạn và biến phụ thuộc, mpg.

library(GGally)
df <- mtcars % > %
	select(-c(am, vs, cyl, gear, carb))
ggscatmat(df, columns = 1: ncol(df))

Đầu ra:

Hồi quy tuyến tính từng bước trong R

Ví dụ từng bước hồi quy từng bước

Lựa chọn biến là một phần quan trọng để phù hợp với mô hình. Hồi quy từng bước sẽ thực hiện quá trình tìm kiếm tự động. Để ước tính có bao nhiêu lựa chọn có thể có trong tập dữ liệu, bạn tính toán Ví dụ từng bước hồi quy từng bước với k là số lượng yếu tố dự đoán. Số lượng khả năng tăng lên theo số lượng biến độc lập. Đó là lý do tại sao bạn cần phải có một tìm kiếm tự động.

Bạn cần cài đặt gói olsrr từ CRAN. Gói này chưa có sẵn ở Anaconda. Do đó, bạn cài đặt nó trực tiếp từ dòng lệnh:

install.packages("olsrr")

Bạn có thể vẽ đồ thị tất cả các tập hợp con của các khả năng với tiêu chí phù hợp (ví dụ: tiêu chí R bình phương, R bình phương điều chỉnh, tiêu chí Bayesian). Mô hình có tiêu chí AIC thấp nhất sẽ là mô hình cuối cùng.

library(olsrr)
model <- mpg~.
fit <- lm(model, df)
test <- ols_all_subset(fit)
plot(test)

Giải thích mã

  • mpg ~.: Xây dựng mô hình ước lượng
  • lm(model, df): Chạy mô hình OLS
  • ols_all_subset(fit): Xây dựng đồ thị với các thông tin thống kê liên quan
  • cốt truyện (kiểm tra): Vẽ đồ thị

Đầu ra:

Ví dụ từng bước hồi quy từng bước

Mô hình hồi quy tuyến tính sử dụng kiểm tra t để ước tính tác động thống kê của một biến độc lập lên biến phụ thuộc. Các nhà nghiên cứu đặt ngưỡng tối đa ở mức 10 phần trăm, với các giá trị thấp hơn cho thấy mối liên kết thống kê mạnh hơn. Chiến lược hồi quy từng bước được xây dựng xung quanh thử nghiệm này để thêm và loại bỏ các ứng viên tiềm năng. Thuật toán hoạt động như sau:

Hồi quy tuyến tính từng bước trong R
Hồi quy tuyến tính từng bước trong R
  • Bước 1: Hồi quy từng yếu tố dự đoán trên y một cách riêng biệt. Cụ thể là hồi quy x_1 trên y, x_2 trên y về x_n. Lưu trữ giá trị p và giữ biến hồi quy có giá trị p thấp hơn ngưỡng xác định (0.1 theo mặc định). Các yếu tố dự đoán có ý nghĩa thấp hơn ngưỡng sẽ được thêm vào mô hình cuối cùng. Nếu không có biến nào có giá trị p thấp hơn ngưỡng nhập thì thuật toán sẽ dừng và bạn có mô hình cuối cùng chỉ có một hằng số.
  • Bước 2: Sử dụng bộ dự báo có giá trị p thấp nhất và thêm riêng một biến. Bạn hồi quy một hằng số, bộ dự báo tốt nhất của bước một và một biến thứ ba. Bạn thêm vào mô hình từng bước, các bộ dự báo mới có giá trị thấp hơn ngưỡng nhập. Nếu không có biến nào có giá trị p thấp hơn 0.1, thì thuật toán dừng lại và bạn có mô hình cuối cùng chỉ với một bộ dự báo. Bạn hồi quy mô hình từng bước để kiểm tra ý nghĩa của các bộ dự báo tốt nhất của bước 1. Nếu nó cao hơn ngưỡng loại bỏ, bạn giữ nó trong mô hình từng bước. Nếu không, bạn loại trừ nó.
  • Bước 3: Bạn lặp lại bước 2 trên mô hình từng bước mới tốt nhất. Thuật toán thêm các yếu tố dự báo vào mô hình từng bước dựa trên các giá trị nhập vào và loại trừ yếu tố dự báo khỏi mô hình từng bước nếu nó không đáp ứng ngưỡng loại trừ.
  • Thuật toán tiếp tục cho đến khi không thể thêm hoặc loại trừ biến nào.

Bạn có thể thực hiện thuật toán bằng hàm ols_stepwise() từ gói olsrr.

ols_stepwise(fit, pent = 0.1, prem = 0.3, details = FALSE)

arguments:
-fit:  Model to fit. Need to use `lm()`before to run `ols_stepwise()
-pent: Threshold of the p-value used to enter a variable into the stepwise model. By default, 0.1
-prem: Threshold of the p-value used to exclude a variable into the stepwise model. By default, 0.3
-details: Print the details of each step

Trước đó, chúng tôi chỉ cho bạn các bước của thuật toán. Dưới đây là bảng có các biến phụ thuộc và độc lập:

Biến phụ thuộc Biến độc lập
mpg vứt bỏ
hp
con chuột
wt
qgiây

Bắt đầu

Để bắt đầu, thuật toán bắt đầu bằng cách chạy mô hình trên từng biến độc lập riêng biệt. Bảng hiển thị giá trị p cho mỗi mô hình.

## [[1]]
##  (Intercept)         disp 
## 3.576586e-21 9.380327e-10 
## 
## [[2]]
##  (Intercept)           hp 
## 6.642736e-18 1.787835e-07 
## 
## [[3]]
##  (Intercept)         drat 
## 0.1796390847 0.0000177624 
## 
## [[4]]
##  (Intercept)           wt 
## 8.241799e-19 1.293959e-10 
## 
## [[5]
## (Intercept)        qsec 
##  0.61385436  0.01708199

Để vào mô hình, thuật toán giữ biến có giá trị p thấp nhất. Từ kết quả đầu ra ở trên, nó là wt

Bước 1

Ở bước đầu tiên, thuật toán chạy mpg trên wt và các biến khác một cách độc lập.

## [[1]]
##  (Intercept)           wt         disp
## 4.910746e-16 7.430725e-03 6.361981e-02 
## 
## [[2]]
##  (Intercept)           wt           hp 
## 2.565459e-20 1.119647e-06 1.451229e-03 
## 
## [[3]]
##  (Intercept)           wt         drat 
## 2.737824e-04 1.589075e-06 3.308544e-01 
## 
## [[4]]
##  (Intercept)           wt         qsec 
## 7.650466e-04 2.518948e-11 1.499883e-03

Mỗi biến là một ứng cử viên tiềm năng để đưa vào mô hình cuối cùng. Tuy nhiên, thuật toán chỉ giữ lại biến có giá trị p thấp hơn. Hóa ra hp có giá trị p thấp hơn một chút so với qsec. Do đó, hp vào mẫu cuối cùng

Bước 2

Thuật toán lặp lại bước đầu tiên nhưng lần này với hai biến độc lập trong mô hình cuối cùng.

## [[1]]
##  (Intercept)           wt           hp         disp 
## 1.161936e-16 1.330991e-03 1.097103e-02 9.285070e-01 
## 
## [[2]]
##  (Intercept)           wt           hp         drat 
## 5.133678e-05 3.642961e-04 1.178415e-03 1.987554e-01 
## 
## [[3]]
##  (Intercept)           wt           hp         qsec 
## 2.784556e-03 3.217222e-06 2.441762e-01 2.546284e-01

Không có biến nào được đưa vào mô hình cuối cùng có giá trị p đủ thấp. Thuật toán dừng ở đây; chúng ta có mô hình cuối cùng:

## 
## Call:
## lm(formula = mpg ~ wt + hp, data = df)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -3.941 -1.600 -0.182  1.050  5.854 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 37.22727    1.59879  23.285  < 2e-16 ***
## wt          -3.87783    0.63273  -6.129 1.12e-06 ***
## hp          -0.03177    0.00903  -3.519  0.00145 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.593 on 29 degrees of freedom
## Multiple R-squared:  0.8268, Adjusted R-squared:  0.8148 
## F-statistic: 69.21 on 2 and 29 DF,  p-value: 9.109e-12

Bạn có thể sử dụng hàm ols_stepwise() để so sánh kết quả.

stp_s <-ols_stepwise(fit, details=TRUE)

Đầu ra:

Thuật toán tìm ra giải pháp sau 2 bước và trả về kết quả đầu ra giống như trước đây.

Cuối cùng, bạn có thể nói các mô hình được giải thích bằng hai biến và một giao điểm. Dặm trên mỗi gallon có mối tương quan nghịch với Tổng mã lực và Trọng lượng

## You are selecting variables based on p value...
## 1 variable(s) added....
## Variable Selection Procedure
##  Dependent Variable: mpg 
## 
##  Stepwise Selection: Step 1 
## 
##  Variable wt Entered 
## 
##                         Model Summary                          
## --------------------------------------------------------------
## R                       0.868       RMSE                3.046 
## R-Squared               0.753       Coef. Var          15.161 
## Adj. R-Squared          0.745       MSE                 9.277 
## Pred R-Squared          0.709       MAE                 2.341 
## --------------------------------------------------------------
##  RMSE: Root Mean Square Error 
##  MSE: Mean Square Error 
##  MAE: Mean Absolute Error 
##		ANOVA                                 
## --------------------------------------------------------------------
##                 Sum of                                              
##                Squares        DF    Mean Square      F         Sig. 
## --------------------------------------------------------------------
## Regression     847.725         1        847.725    91.375    0.0000 
## Residual       278.322        30          9.277                     
## Total         1126.047        31                                    
## --------------------------------------------------------------------
## 
##                                   Parameter Estimates                                    
## ----------------------------------------------------------------------------------------
##       model      Beta    Std. Error    Std. Beta      t        Sig      lower     upper 
## ----------------------------------------------------------------------------------------
## (Intercept)    37.285         1.878                 19.858    0.000    33.450    41.120 
##          wt    -5.344         0.559       -0.868    -9.559    0.000    -6.486    -4.203 
## ----------------------------------------------------------------------------------------
## 1 variable(s) added...
## Stepwise Selection: Step 2 
## 
##  Variable hp Entered 
## 
##                         Model Summary                          
## --------------------------------------------------------------
## R                       0.909       RMSE                2.593 
## R-Squared               0.827       Coef. Var          12.909 
## Adj. R-Squared          0.815       MSE                 6.726 
## Pred R-Squared          0.781       MAE                 1.901 
## --------------------------------------------------------------
##  RMSE: Root Mean Square Error 
##  MSE: Mean Square Error 
##  MAE: Mean Absolute Error 
##			ANOVA                                 
## --------------------------------------------------------------------
##                 Sum of                                              
##                Squares        DF    Mean Square      F         Sig. 
## --------------------------------------------------------------------
## Regression     930.999         2        465.500    69.211    0.0000 
## Residual       195.048        29          6.726                     
## Total         1126.047        31                                    
## --------------------------------------------------------------------
## 
##                                   Parameter Estimates                                    
## ----------------------------------------------------------------------------------------
##       model      Beta    Std. Error    Std. Beta      t        Sig      lower     upper 
## ----------------------------------------------------------------------------------------
## (Intercept)    37.227         1.599                 23.285    0.000    33.957    40.497 
##          wt    -3.878         0.633       -0.630    -6.129    0.000    -5.172    -2.584 
##          hp    -0.032         0.009       -0.361    -3.519    0.001    -0.050    -0.013 
## ----------------------------------------------------------------------------------------
## No more variables to be added or removed.

Machine Learning

Machine Learning đang trở nên phổ biến trong giới khoa học dữ liệu và được triển khai trong hàng trăm sản phẩm bạn sử dụng hàng ngày. Một trong những ứng dụng ML đầu tiên là bộ lọc thư rác.

Sau đây là các ứng dụng khác của Học máy-

  • Nhận dạng tin nhắn rác không mong muốn trong email
  • Phân khúc hành vi khách hàng cho quảng cáo mục tiêu
  • Giảm các giao dịch thẻ tín dụng gian lận
  • Tối ưu hóa việc sử dụng năng lượng trong tòa nhà gia đình và văn phòng
  • nhận dạng khuôn mặt

Học tập có giám sát

In Học tập có giám sát, dữ liệu huấn luyện mà bạn cung cấp cho thuật toán sẽ bao gồm một nhãn.

phân loại có lẽ là kỹ thuật học có giám sát được sử dụng nhiều nhất. Một trong những nhiệm vụ phân loại đầu tiên mà các nhà nghiên cứu giải quyết là bộ lọc thư rác. Mục tiêu của việc học là dự đoán xem một email được phân loại là thư rác hay ham (email tốt). Máy, sau bước đào tạo, có thể phát hiện ra lớp email.

Hồi quy thường được sử dụng trong lĩnh vực học máy để dự đoán giá trị liên tục. Nhiệm vụ hồi quy có thể dự đoán giá trị của một biến phụ thuộc dựa trên một bộ biến độc lập (còn gọi là yếu tố dự đoán hoặc biến hồi quy). Ví dụ, hồi quy tuyến tính có thể dự đoán giá cổ phiếu, dự báo thời tiết, doanh số bán hàng, v.v.

Dưới đây là danh sách một số thuật toán học có giám sát cơ bản.

  • Hồi quy tuyến tính
  • Hồi quy logistic
  • Những người hàng xóm gần nhất
  • Máy Vector hỗ trợ (SVM)
  • Cây quyết định và Rừng ngẫu nhiên
  • Mạng lưới thần kinh

Học tập không giám sát

In Học tập không giám sát, dữ liệu huấn luyện không được gắn nhãn. Hệ thống cố gắng học mà không có tài liệu tham khảo. Dưới đây là danh sách các thuật toán học tập không giám sát.

  • K-trung bình
  • Thứ bậc Cluster nghiên cứu
  • Sự tối đa hóa kỳ vọng
  • Trực quan hóa và giảm kích thước
  • Phân tích thành phần chính
  • PCA hạt nhân
  • Nhúng tuyến tính cục bộ

Tổng kết

  • Hồi quy tuyến tính trả lời một câu hỏi đơn giản: Bạn có thể đo lường mối quan hệ chính xác giữa một biến mục tiêu và một tập hợp các yếu tố dự đoán không?
  • Phương pháp bình phương tối thiểu thông thường cố gắng tìm các tham số làm giảm thiểu tổng bình phương lỗi, tức là khoảng cách theo chiều dọc giữa các giá trị y dự đoán và các giá trị y thực tế.
  • Mô hình xác suất bao gồm nhiều hơn một biến độc lập được gọi là mô hình hồi quy bội.
  • Mục đích của thuật toán hồi quy tuyến tính từng bước là thêm và loại bỏ các ứng viên tiềm năng trong mô hình và giữ lại những ứng viên có tác động đáng kể đến biến phụ thuộc.
  • Lựa chọn biến là một phần quan trọng để phù hợp với mô hình. Hồi quy từng bước thực hiện quá trình tìm kiếm tự động.

Hồi quy bình phương nhỏ nhất thông thường có thể được tóm tắt trong bảng dưới đây:

Thư viện Mục tiêu Chức năng Lập luận
cơ sở Tính hồi quy tuyến tính lm() công thức, dữ liệu
cơ sở Tóm tắt mô hình tóm tắt() phù hợp với
cơ sở Hệ số trích xuất hệ số lm()$
cơ sở Chiết xuất dư lượng phần dư lm()$
cơ sở Trích xuất giá trị được trang bị lm()$fitted.values
olsrr Chạy hồi quy từng bước ols_stepwise() phù hợp, pent = 0.1, prem = 0.3, chi tiết = SAI

Chú thích: Nhớ biến đổi biến phân loại thành hệ số trước để phù hợp với mô hình.