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:
Ở đâu
- y = Biến phụ thuộc
- x = Biến độc lập
-
= thành phần lỗi ngẫu nhiên
-
= chặn
-
= Hệ số của x
Hãy xem xét cốt truyện sau:
Phương trình là 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 và
, 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 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 và
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:
Mục tiêu của hồi quy OLS là giảm thiểu phương trình sau:
Ở đâu
là giá trị thực tế và
là giá trị dự đoán
Giải pháp cho is
Lưu ý rằng có nghĩa là giá trị trung bình của x
Giải pháp cho is
Trong R, bạn có thể sử dụng hàm cov() và var() để ước tính và bạn có thể sử dụng hàm Mean() để ước tính
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à:
Trong ký hiệu ma trận, bạn có thể viết lại mô hình:
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ố xác định sự đóng góp của biến độc lập
và
.
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 của OLS:
- Có nghĩa là bằng 0
- Phương sai bằng
- 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 , 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à:
với:
- chỉ ra hoán vị của ma trận X
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
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à
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à:
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:
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:
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ớ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:
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:
- 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.