位置:首頁 > 大數據教學 > R語言教學 > R語言邏輯回歸

R語言邏輯回歸

邏輯回歸是回歸模型,其中響應變量(因變量)具有明確的值,如:True/False或0/1。 它實際測量二元響應作為響應變量,是基於與預測變量有關它的數學方程的值的概率。

邏輯回歸一般的數學公式是:

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

以下是所使用的參數的說明:

  • y 是響應變量。
  • x 是預測變量。
  • a 和 b 是數字常量係數。

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

語法

glm()函數在邏輯回歸的基本語法是:

glm(formula,data,family)

以下是所使用的參數的說明:

  • formula 是呈現所述變量之間的關係的標誌。
  • data 在數據集給出這些變量的值.
  • family 為R對象以指定模型的細節。它的值是二項分布邏輯回歸。

示例

在內置的數據集“mtcars”描述了他們不同的發動機規格的不同型號汽車。在“mtcars”數據集,傳輸模式(自動或手動)由列點它是一個二進製值描述(0或1)。我們可以創建列“am”和另外3列之間的邏輯回歸模型- 馬力(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值大於0.05為變量"cyl" 和 "hp",我們認為它們是微不足道地促進變量“am”的值。隻有重量(wt)在影響這個回歸模型“am”的值。