R - 邏輯迴歸



邏輯迴歸是一種迴歸模型,其中響應變數(因變數)具有分類值,例如真/假或 0/1。它實際上是根據將響應變數與預測變數聯絡起來的數學方程,來衡量二元響應的機率。

邏輯迴歸的一般數學方程為:

y = 1/(1+e^-(a+b1x1+b2x2+b3x3+...))

以下是所用引數的描述:

  • y 是響應變數。

  • x 是預測變數。

  • ab 是係數,它們是數值常數。

用於建立迴歸模型的函式是glm()函式。

語法

邏輯迴歸中glm()函式的基本語法為:

glm(formula,data,family)

以下是所用引數的描述:

  • formula 是表示變數之間關係的符號。

  • data 是提供這些變數值的資料集。

  • family 是 R 物件,用於指定模型的詳細資訊。對於邏輯迴歸,其值為 binomial。

示例

內建資料集“mtcars”描述了不同型號汽車及其各種發動機規格。在“mtcars”資料集中,變速模式(自動或手動)由列 am 表示,它是一個二元值(0 或 1)。我們可以建立列“am”與其他三列之間的邏輯迴歸模型 - hp、wt 和 cyl。

# Select some columns form mtcars.
input <- mtcars[,c("am","cyl","hp","wt")]

print(head(input))

執行上述程式碼後,將產生以下結果:

                  am   cyl  hp    wt
Mazda RX4          1   6    110   2.620
Mazda RX4 Wag      1   6    110   2.875
Datsun 710         1   4     93   2.320
Hornet 4 Drive     0   6    110   3.215
Hornet Sportabout  0   8    175   3.440
Valiant            0   6    105   3.460

建立迴歸模型

我們使用glm()函式建立迴歸模型並獲取其摘要以進行分析。

input <- mtcars[,c("am","cyl","hp","wt")]

am.data = glm(formula = am ~ cyl + hp + wt, data = input, family = binomial)

print(summary(am.data))

執行上述程式碼後,將產生以下結果:

Call:
glm(formula = am ~ cyl + hp + wt, family = binomial, data = input)

Deviance Residuals: 
     Min        1Q      Median        3Q       Max  
-2.17272     -0.14907  -0.01464     0.14116   1.27641  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)  
(Intercept) 19.70288    8.11637   2.428   0.0152 *
cyl          0.48760    1.07162   0.455   0.6491  
hp           0.03259    0.01886   1.728   0.0840 .
wt          -9.14947    4.15332  -2.203   0.0276 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 43.2297  on 31  degrees of freedom
Residual deviance:  9.8415  on 28  degrees of freedom
AIC: 17.841

Number of Fisher Scoring iterations: 8

結論

在摘要中,由於最後一列中的 p 值對於變數“cyl”和“hp”都大於 0.05,因此我們認為它們對變數“am”的值貢獻不顯著。在這個迴歸模型中,只有重量 (wt) 影響“am”的值。

廣告