[R]Logistic Regression 羅吉斯迴歸

by wenwu
0 comment

[R]Logistic Regression 羅吉斯迴歸

讓你一次就搞懂 R羅吉斯迴歸的output!

當我們遇到依變項(Y)是二元的類別變項時,我們可以使用羅吉斯迴歸(Logistic regression)
羅吉斯迴歸是甚麼呢? 羅吉斯迴歸(英語:Logistic regression,又譯作對數機率迴歸羅吉斯迴歸)是一種對數機率模型是離散模型之一,屬於多重變數分析。


Logistic regression(羅吉斯迴歸) vs Linear regression(線性迴歸)

如果你有學過這兩個的話,就會發現羅吉斯迴歸和線性迴歸的很像,他們都要找到一條線,但是意義上完全不同。
羅吉斯迴歸主要是找到一條線,讓資料可以分成兩類(分類);而線性迴歸主要是找到一條線,使我們的每一點資料都盡量靠近這條線(誤差小)。羅吉斯迴歸主要是分類,而線性迴歸主要是預測。

線性迴歸的依變項(Y)通常為連續型變數,且可以超過 (0,1)
羅吉斯迴歸的依變項(Y)主要為二元的類別變項(亦即是或否,0或1)

而羅吉斯迴歸的自變項(X),可以是類別變數,也可以是連續變數。
羅吉斯迴歸中,自變數(X)對依變數(Y)的影響是以指數的方式做變動,因此不需要常態分配的假設


勝算比的計算

勝算比基本上就是事件成功與失敗的比值,我們使用下圖來解釋

實驗組成功的機率= A/N1,失敗的機率= B/N1
實驗組的勝算為 (A/N1)/(B/N1) = A/B = 5/19

控制組成功的機率= C/N2,失敗的機率= D/N2
控制組的勝算為 (C/N2)/(D/N2) = C/D = 3/24

勝算比就是兩個勝算的相除,勝算比=(A/B)/(C/D) = A*D/B*C = 2.11
表示實驗組相對控制組,成功的勝算比=2.11
表示實驗組成功的勝算(非機率)是控制組的2.11倍


example for R

接下來我們使用這組糖尿病的資料
總共有768位病人的資料,每一項變數的意思如下:

1.懷孕次數
2.口服葡萄糖耐量測試中2小時的血漿葡萄糖濃度
3.舒張壓(mm Hg)
4.三頭肌皮膚褶皺厚度(毫米)
5. 2小時血清胰島素(mu U / ml)
6.體重指數(體重(千克)/(身高(米))^2)
7.糖尿病譜系功能
8.年齡(年)
9.糖尿病(0或1)

第九個糖尿病為二元的類別變項,1表示病人有糖尿病,0表示沒有

diabete <-read.csv(“https://gist.githubusercontent.com/chaityacshah/899a95deaf8b1930003ae93944fd17d7/raw/3d35de839da708595a444187e9f13237b51a2cbe/pima-indians-diabetes.csv")
colnames(diabete) <- c(“pregnant”,”glucose”,”blood_pressure”,”triceps”,”serum_insulin”,”mass”,”pedigree”,”age”,”diabetes” )

我們的目標是使用 pregnant 、glucose、triceps、mass 欄位預測 diabetes
模型如下:

MODEL <- glm(diabetes ~ pregnant + glucose + triceps + mass,
 data=diabete,family = “binomial”)

使用glm function ,~的左邊是依變項(Y),羅吉斯迴歸的依變項(Y)一定要是二元的類別變項,~的右邊就是自變項(X),可以是類別變數,也可以是連續變數,而且也可以放多個。我們使用的資料集是diabete。

最後一定要記得加上 family = “binomial” ,這樣跑出來才是羅吉斯迴歸!!

我們來看一下模型:
印出MODEL 就可以看到,每一個變項以及截距的coefficients 
intercept (截距)\ pregnant \ glucose \ triceps \ mass 的coefficients 分別為:
-8.154 \ 0.136 \ 0.034 \ -0.004 \ 0.085

而我們可以將邏輯迴歸模式寫為下:
 logit(p)=-8.154+0.136 pregnant +0.034 glucose -0.004 triceps+ 0.085 mass

輸入 summary(MODEL)
可以在coefficients的地方看到Pr(>|z|) 也就是各個變項的 p-value
這邊只有 triceps 沒有顯著之外,其他三個變項都有顯著,代表這三個變項與Y有關係

而勝算比(OR)=exp(b)

就 pregnant 而言,勝算比=exp(0.136)=1.1457
表示每增加一次懷孕次數,得到糖尿病的勝算提高1.1459倍;
就 glucose而言,勝算比=exp(0.034)=1.0346 
表示每增加一血漿葡萄糖濃度,得到糖尿病的勝算提高1.0346倍;
就 mass 而言,勝算比=exp(0.085)=1.0887
表示每增加一體重指數,得到糖尿病的勝算提高1.0887倍;


2020/6/10 更新: 這篇文章默默成為我最受歡迎的文章,此外我也寫了一篇 [SAS]Logistic regression 羅吉斯迴歸 ,裡面有提及單變項與多變項的羅吉斯迴歸,主要使用SAS 講解,但是也有講到如何使用R操作喔,歡迎大家來看看 →[SAS]Logistic regression 羅吉斯迴歸

Related Articles

發表迴響