R - 線性回歸:初學者指南
你好啊,有志於成為數據科學家的人!今天,我們將要開展一段使用 R 語言進行線性回歸的刺激旅程。別擔心如果你從未編過程序——我會一直在這裡陪著你,一步一步地解釋一切。在這個教程結束時,你將會對自己只用幾行代碼就能完成的事情感到驚奇!
究竟什麼是線性回歸?
在我們深入 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
參數設置標題,xlab
和 ylab
為軸設置標籤,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