R - Phân tích hồi quy Logistic

Tạo Mô hình Hồi quy

Chào mừng bạn đến với thế giới của phân tích hồi quy logistic trong R! Trong hướng dẫn này, chúng ta sẽ cùng bạn qua các bước cơ bản để tạo một mô hình hồi quy logistic bằng R. Chúng ta sẽ bắt đầu với một số khái niệm cơ bản và sau đó sẽ vào phần mã. Lưu ý rằng hướng dẫn này được thiết kế cho người mới bắt đầu không có kinh nghiệm lập trình trước đây, vì vậy đừng lo lắng nếu bạn cảm thấy một chút bối rối ban đầu. Hãy bắt đầu nhé!

R - Logistic Regression

Phân tích hồi quy Logistic là gì?

Phân tích hồi quy logistic là một phương pháp thống kê được sử dụng để phân tích dữ liệu và dự đoán dựa trên một hoặc nhiều biến dự báo. Nó thường được sử dụng cho các vấn đề phân loại nhị phân, nơi kết quả có thể là "Có" (1) hoặc "Không" (0). Sự khác biệt chính giữa hồi quy logistic và hồi quy tuyến tính là hồi quy logistic dự đoán xác suất của một kết quả xảy ra, trong khi hồi quy tuyến tính dự đoán một giá trị liên tục.

Tại sao lại sử dụng Phân tích hồi quy Logistic?

Phân tích hồi quy logistic được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm y tế, tài chính, tiếp thị và khoa học xã hội. Nó đặc biệt hữu ích khi bạn muốn hiểu mối quan hệ giữa một kết quả nhị phân và một hoặc nhiều biến dự báo. Ví dụ, bạn có thể sử dụng hồi quy logistic để dự đoán liệu một khách hàng có mua sản phẩm hay không dựa trên tuổi, thu nhập và lịch sử mua hàng trước đây của họ.

Tạo một Mô hình Hồi quy Logistic trong R

Để tạo một mô hình hồi quy logistic trong R, chúng ta sẽ sử dụng hàm glm(), viết tắt của Generalized Linear Models. Dưới đây là hướng dẫn từng bước:

Bước 1: Cài đặt và Tải các Thư viện Cần thiết

Trước tiên, bạn cần cài đặt và tải các thư viện cần thiết. Chúng ta sẽ sử dụng thư viện tidyverse để xử lý dữ liệu và trực quan hóa, và thư viện caret để mô hình hóa.

install.packages("tidyverse")
install.packages("caret")

library(tidyverse)
library(caret)

Bước 2: Tải Dữ liệu

Tiếp theo, hãy tải một bộ dữ liệu. Đối với ví dụ này, chúng ta sẽ sử dụng bộ dữ liệu mtcars có sẵn, chứa thông tin về các mẫu xe khác nhau. Chúng ta sẽ tập trung vào việc dự đoán liệu một xe có phải là xe thể thao hay không dựa trên trọng lượng và công suất马力.

data(mtcars)
head(mtcars)

Bước 3: Tiền xử lý Dữ liệu

Trước khi xây dựng mô hình hồi quy logistic, chúng ta cần tiền xử lý dữ liệu. Điều này bao gồm việc mã hóa các biến phân loại, xử lý giá trị thiếu và масштаб hóa các đặc điểm. Trong trường hợp của chúng ta, chúng ta chỉ có các biến số học, vì vậy chúng ta không cần phải mã hóa hoặc масштаб hóa. Tuy nhiên, chúng ta sẽ tạo một biến nhị phân mới叫做 is_sports_car để chỉ định liệu một xe có phải là xe thể thao hay không.

mtcars <- mtcars %>%
  mutate(is_sports_car = ifelse(hp > 150, 1, 0))

Bước 4: Chia Dữ liệu thành Tập Huấn luyện và Tập Kiểm tra

Việc chia dữ liệu thành tập huấn luyện và tập kiểm tra là rất quan trọng để đánh giá hiệu suất của mô hình của chúng ta. Chúng ta sẽ sử dụng hàm createDataPartition() từ gói caret để tạo một phần chia.

set.seed(123)
trainIndex <- createDataPartition(mtcars$is_sports_car, p = 0.8, list = FALSE)
trainSet <- mtcars[trainIndex, ]
testSet <- mtcars[-trainIndex, ]

Bước 5: Xây dựng Mô hình Hồi quy Logistic

Bây giờ chúng ta đã sẵn sàng để xây dựng mô hình hồi quy logistic của mình. Chúng ta sẽ sử dụng hàm glm() với tham số family được đặt thành binomial để chỉ định rằng chúng ta muốn thực hiện hồi quy logistic.

model <- glm(is_sports_car ~ wt + hp, data = trainSet, family = binomial)
summary(model)

Hàm summary() cung cấp một tổng quan về mô hình, bao gồm các hệ số, lỗi chuẩn, giá trị z và giá trị p. Các thống kê này giúp chúng ta hiểu tầm quan trọng của mỗi biến dự báo và liệu chúng có thống kê显著 meaning hay không.

Bước 6: Làm Dự đoán và Đánh giá Mô hình

Một khi chúng ta có mô hình, chúng ta có thể sử dụng nó để làm dự đoán trên tập kiểm tra và đánh giá hiệu suất của nó. Chúng ta sẽ sử dụng hàm predict() để tạo ra các xác suất dự đoán và sau đó chuyển đổi chúng thành các kết quả nhị phân sử dụng ngưỡng 0.5.

predictions <- predict(model, newdata = testSet, type = "response")
predicted_classes <- ifelse(predictions > 0.5, 1, 0)

Bây giờ, hãy tính toán độ chính xác của mô hình của chúng ta bằng cách so sánh các lớp dự đoán với các lớp thực tế trong tập kiểm tra.

accuracy <- mean(predicted_classes == testSet$is_sports_car) * 100
cat("Accuracy:", accuracy, "%")

Và thế là xong! Bạn đã thành công trong việc tạo một mô hình hồi quy logistic trong R sử dụng hàm glm(). Lưu ý rằng đây chỉ là một ví dụ cơ bản, và có rất nhiều yếu tố khác cần xem xét khi xây dựng và đánh giá một mô hình hồi quy logistic, chẳng hạn như lựa chọn đặc điểm, regularization và tinh chỉnh mô hình. Nhưng điều này nên cho bạn một điểm khởi đầu tốt cho hành trình vào thế giới của hồi quy logistic trong R.

Credits: Image by storyset