R語言邏輯回歸

邏輯回歸是一種回歸模型,其回應變數(因變數)具有分類值,如True/False0/1。 它實際上是根據與預測變數相關的數學方程,來衡量二進位回應的概率作為回應變數的值。

邏輯回歸的一般數學方程為 -

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

以下是使用的參數的描述 -

  • y - 是回應變數。
  • x - 是預測變數。
  • ab 是數字常數的係數。

用於創建回歸模型的函數是glm()函數。

語法

用於計算邏輯回歸的glm()函數的基本語法是 -

glm(formula,data,family)

以下是使用的參數的描述 -

  • formula - 是呈現變數之間關係的符號。
  • data - 是給出這些變數值的數據集。
  • family - 是R對象來指定模型的概述,對於邏輯回歸,它的值是二項式。

示例

內置數據集“mtcars”描述了具有各種發動機規格的汽車的不同型號。在“mtcars”數據集中,傳輸模式(自動或手動)由列am(其為二進位值(01))描述。我們可以在“am”列和另外3列 - hpwtcyl之間創建邏輯回歸模型。參考以上示例代碼 -

# 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

總結:

對於變數“cyl”“hp”,最後一列的p值大於0.05,可認為它們對變數“am”的值有微不足道的作用。這個回歸模型中只有體重(wt)才會影響“am”值。


上一篇: R語言多元(多重)回歸 下一篇: R語言基礎語法