R - 線性回歸:初學者指南

你好啊,有志於成為數據科學家的人!今天,我們將要開展一段使用 R 語言進行線性回歸的刺激旅程。別擔心如果你從未編過程序——我會一直在這裡陪著你,一步一步地解釋一切。在這個教程結束時,你將會對自己只用幾行代碼就能完成的事情感到驚奇!

R - Linear Regression

究竟什麼是線性回歸?

在我們深入 R 代碼之前,讓我們先來了解什麼是線性回歸。想像你正在嘗試根據外面的溫度預測你會賣出多少冰淇淋。你可能會發現,隨著溫度的上升,你的冰淇淋銷售量也在增加。線性回歸幫助我們數學地找到並描述這種關係。

建立回歸的步驟

現在,讓我們將在 R 中執行線性回歸的過程分解成可控的步驟:

1. 准備你的數據

首先,我們需要一些數據來工作。在 R 中,我們可以創建我們自己的數據集或導入一個。讓我們創建一個關於溫度和冰淇淋銷售的簡單數據集:

temperature <- c(20, 22, 25, 27, 30, 32, 35)
ice_cream_sales <- c(50, 55, 65, 70, 80, 85, 95)

# 組合成一個數據框
ice_cream_data <- data.frame(temperature, ice_cream_sales)

# 檢視數據
print(ice_cream_data)

當你運行這段代碼時,你會看到一個有我們的溫度和冰淇淋銷售數據的整齊表格。酷吧?

2. 可視化你的數據

在我們開始任何分析之前,先看看我們的數據總是個好主意。R 的繪圖功能使得這件事變得非常簡單:

plot(ice_cream_data$temperature, ice_cream_data$ice_cream_sales,
main = "冰淇淋銷售量對溫度",
xlab = "溫度 (°C)", ylab = "冰淇淋銷售量",
pch = 19, col = "blue")

這段代碼會創造我們數據的散點圖。main 參數設置標題,xlabylab 為軸設置標籤,pch = 19 使點成為實心圓圈,col = "blue" 將它們染成藍色。玩轉這些選項——讓它成為你自己的!

3. 執行線性回歸

現在來到令人興奮的部分——真正地執行線性回歸。在 R 中,我們使用 lm() 函數,這個函數代表 "線性模型":

ice_cream_model <- lm(ice_cream_sales ~ temperature, data = ice_cream_data)

這行代碼看起來可能很簡單,但它幕後做了很多工作。它在為我們的數據點找到最適合的線。

4. 檢視結果

讓我們看看我們的模型發現了什麼:

summary(ice_cream_model)

這個命令會給你一個模型的詳細摘要。別擔心如果其中一些看起來嚇人——我們會關注關鍵部分:

  • 係數 段顯示了我們線的斜率和截距。
  • R 平方 值告訴我們模型適合數據的程度。

5. 可視化回歸線

現在,讓我們把回歸線加到我們的圖表中:

plot(ice_cream_data$temperature, ice_cream_data$ice_cream_sales,
main = "冰淇淋銷售量對溫度",
xlab = "溫度 (°C)", ylab = "冰淇淋銷售量",
pch = 19, col = "blue")

abline(ice_cream_model, col = "red")

abline() 函數將我們的回歸線添加到圖表中。看到那條線穿過我們的點,是不是很有成就感?

The lm() 函數:你的新最佳朋友

我們已經使用過 lm() 函數了,但讓我們再深入一點。這個函數是 R 中線性回歸的核心。以下是其基本結構的分解:

lm(formula, data)
  • formula:這指定了你變量之間的關係。在我們的例子中,它是 ice_cream_sales ~ temperature
  • data:這是你正在使用的數據集。

~ 符號在公式中讀作 "被模擬為...的函數"。所以我們的公式讀作 "冰淇淋銷售量被模擬為溫度的函數"。

The predict() 函數:進行預測

現在我們有了模型,我們可以用它來進行預測。這就是 predict() 函數派上用場的地方:

new_temperatures <- data.frame(temperature = c(23, 28, 33))
predicted_sales <- predict(ice_cream_model, newdata = new_temperatures)
print(predicted_sales)

這段代碼預測了 23°C、28°C 和 33°C 的溫度下的冰淇淋銷售量。很酷吧?

有用函數一覽表

這裡是一個我們使用過的主要函數的快速參考表:

函數 目的 示例
lm() 執行線性回歸 lm(y ~ x, data)
summary() 獲取詳細模型結果 summary(model)
plot() 創建散點圖 plot(x, y)
abline() 將回歸線添加到圖中 abline(model)
predict() 進行預測 predict(model, newdata)

記住,熟練來自練習!不要害怕試驗這些函數,並在不同的數據集上嘗試它們。在你意識到之前,你將會成為線性回歸的高手!

總結來說,線性回歸是理解變量間關係和進行預測的有力工具。有了 R,你手頭有了所有需要的工具。持續探索,持續學習,最重要的是,玩得開心!

Credits: Image by storyset