R - 負二項回歸:初學者指南
Hello there, 優秀的數據科學家們!今天,我們將踏上一段令人興奮的旅程,使用R語言來探索負二項回歸的世界。別擔心如果你從未編程過——我會成為你親切的導遊,我們會一步一步地進行。在這個教學結束時,你將對你能夠達成的成就感到驚奇!
負二項回歸是什麼?
在我們深入代碼之前,讓我們先了解一下負二項回歸是什麼。想像你在計算每天收到的電子郵件數量。有些日子你可能有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