R - 邏輯回歸

創建回歸模型

歡迎來到R語言中的邏輯回歸世界!在這個教程中,我們將帶您走過使用R創建邏輯回歸模型的基本步驟。我們將從一些基本概念開始,然後進行代碼實踐。請記住,這個教程是為了那些沒有編程經驗的初學者設計的,所以如果您一開始感到有些迷茫,請不要擔心。讓我們開始吧!

R - Logistic Regression

邏輯回歸是什麼?

邏輯回歸是一種統計方法,用於分析數據並根據一個或多個預測變量進行預測。它通常用於二分類問題,其中結果可以是“是”(1)或“否”(0)。邏輯回歸與線性回歸的關鍵區別在於,邏輯回歸預測結果發生的概率,而線性回歸預測一個連續值。

為什麼使用邏輯回歸?

邏輯回歸在醫療、金融、市場營銷和社會科學等領域被廣泛使用。當您想了解二分類結果與一個或多個預測變量之間的關係時,它特別有用。例如,您可能使用邏輯回歸來預測客戶是否會購買產品,基於他們的年齡、收入和過去的購買記錄。

在R中創建邏輯回歸模型

要在R中創建一個邏輯回歸模型,我們將使用glm()函數,這代表通用線性模型。以下是一個步驟指南:

步驟1:安裝和加載必要的庫

首先,您需要安裝和加載必要的庫。我們將使用tidyverse庫進行數據操作和視覺化,以及caret庫進行建模。

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

library(tidyverse)
library(caret)

步驟2:加載數據

接下來,讓我們加載一個數據集。在這個例子中,我們將使用內置的mtcars數據集,它包含關於各種車型的信息。我們將專注於根據車重和馬力來預測一輛車是否為運動車。

data(mtcars)
head(mtcars)

步驟3:預處理數據

在建立邏輯回歸模型之前,我們需要預處理數據。這包括編碼分類變量、處理缺失值和縮放特徵。在我們的例子中,我們只有數值變量,所以不需要進行編碼或縮放。然而,我們將創建一個新的二分變量is_sports_car,用於指示一輛車是否為運動車。

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

步驟4:將數據分為訓練集和測試集

將數據分為訓練集和測試集以評估我們模型的性能是很重要的。我們將使用caret包中的createDataPartition()函數來創建一個分區。

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

步驟5:建立邏輯回歸模型

現在我們準備建立我們的邏輯回歸模型。我們將使用glm()函數並將family參數設為binomial,以指定我們想要進行邏輯回歸。

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

summary()函數提供了模型的概覽,包括係數、標準誤、z值和p值。這些統計數據幫助我們了解每個預測變量的重要性以及它們是否具有統計显著性。

步驟6:進行預測並評估模型

一旦我們有了模型,我們就可以用它來對測試集進行預測並評估其性能。我們將使用predict()函數生成預測概率,然後將它們轉換為使用0.5為閾值的二分類結果。

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

現在,讓我們通過將預測類別與測試集中的實際類別進行比較來計算我們模型的準確性。

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

就是这样!您已經成功地使用glm()函數在R中創建了一個邏輯回歸模型。請記住,這只是一個基本示例,當您建立和評估一個邏輯回歸模型時,還需要考慮許多其他因素,如特徵選擇、正則化和模型調優。但這應該為您進入R語言中的邏輯回歸世界提供了良好的起點。

Credits: Image by storyset