R - 負二項回歸:初學者指南

Hello there, 優秀的數據科學家們!今天,我們將踏上一段令人興奮的旅程,使用R語言來探索負二項回歸的世界。別擔心如果你從未編程過——我會成為你親切的導遊,我們會一步一步地進行。在這個教學結束時,你將對你能夠達成的成就感到驚奇!

R - Poisson Regression

負二項回歸是什麼?

在我們深入代碼之前,讓我們先了解一下負二項回歸是什麼。想像你在計算每天收到的電子郵件數量。有些日子你可能有5封,其他日子可能是10封,甚至20封。這種計數數據通常遵循我們所謂的負二項分佈,而負二項回歸幫助我們建模和預測這樣的計數數據。

R語言入門

首先,我們需要設置R環境。如果你還沒有安裝R,請前往R專案網站下載。安裝後,如果你有RStudio(一個對R友善的界面),請打開它,或者直接打開R。

創建負二項回歸模型

現在,讓我們來親自編寫一些代碼!

步驟1:準備數據

我們將從創建一些樣本數據開始。假設我們正在研究根據溫度銷售的冰淇淋數量。

# 創建樣本數據
temperature <- c(20, 22, 25, 28, 30, 32, 35)
ice_cream_sales <- c(10, 15, 20, 30, 40, 50, 60)

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

# 檢視數據
print(ice_cream_data)

當你運行這段代碼時,你會看到我們的數據集被打印出來。是不是很興奮?我們剛創建了我們的第一個R數據框!

步驟2:建立負二項回歸模型

現在,讓我們來創建我們的負二項回歸模型:

# 創建負二項回歸模型
poisson_model <- glm(ice_cream_sales ~ temperature,
family = poisson(link = "log"),
data = ice_cream_data)

# 檢視模型摘要
summary(poisson_model)

讓我們來分解這段代碼:

  • glm() 代表廣義線性模型,負二項回歸是其類型之一。
  • ice_cream_sales ~ temperature 告訴R我們想根據溫度來預測冰淇淋銷售。
  • family = poisson(link = "log") 指定我們使用負二項回歸。

summary() 函數會給你很多關於模型的資訊。如果它看起來讓人眼花繚亂——別擔心,我們會關注關鍵部分。

步驟3:解釋結果

在摘要輸出中尋找 "Coefficients" 部分的内容。你會看到類似這樣的東西:

Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.123456   0.123456   9.999   <2e-16 ***
temperature 0.098765   0.004321  22.857   <2e-16 ***

溫度的 "Estimate" 告訴我們對數的冰淇淋銷售隨著溫度每增加一度會增加多少。如果它是正數(就像我們的例子),那意味著冰淇淋銷售隨著溫度的增加而增加——這有道理,對吧?

步驟4:進行預測

現在,讓我們預測一個新溫度的冰淇淋銷售:

# 預測27°C時的冰淇淋銷售
new_temp <- data.frame(temperature = 27)
predicted_sales <- predict(poisson_model, newdata = new_temp, type = "response")
print(paste("27°C時預測的冰淇淋銷售:", round(predicted_sales)))

這段代碼創建了一個新的數據點(27°C),使用我們的模型來預測銷售,並打印結果。

結論

恭喜你!你剛在R中創建了你自己的第一個負二項回歸模型。我們已經涉足了從設置數據到進行預測的很多內容。記住,熟練來自練習,所以不要害怕嘗試你自己的數據集。

這裡是我們使用的方法的快速總結:

方法 描述
data.frame() 創建一個數據框
glm() 拟合一個廣義線性模型
summary() 提供模型的摘要
predict() 使用模型進行預測

繼續探索,繼續提問,最重要的是,繼續在R中享受樂趣!也許有一天,你會為了預測冰淇淋銷售而工作。

未來的數據科學家們,快樂編程!

Credits: Image by storyset