如何利用R語言實現(xiàn)logistic逐步回歸


導 語

在日常學習或工作中經(jīng)常會使用線性回歸模型對某一事物進行預測,例如預測房價、身高、GDP、學生成績等,發(fā)現(xiàn)這些被預測的變量都屬于連續(xù)型變量。然而有些情況下,被預測變量可能是二元變量,即成功或失敗、流失或不流失、漲或跌等,對于這類問題,線性回歸將束手無策。這個時候就需要另一種回歸方法進行預測,即Logistic回歸。歡迎關注我的個人微信公眾號:全哥的學習生涯,獲取更多R語言與數(shù)據(jù)分析學習知識。

在實際應用中,Logistic模型主要有三大用途:

1)尋找危險因素,找到某些影響因變量的"壞因素",一般可以通過優(yōu)勢比發(fā)現(xiàn)危險因素;

2)用于預測,可以預測某種情況發(fā)生的概率或可能性大??;

3)用于判別,判斷某個新樣本所屬的類別。

Logistic模型實際上是一種回歸模型,但這種模型又與普通的線性回歸模型又有一定的區(qū)別:

1)Logistic回歸模型的因變量為二分類變量;

2)該模型的因變量和自變量之間不存在線性關系;

3)一般線性回歸模型中需要假設獨立同分布、方差齊性等,而Logistic回歸模型不需要;

4)Logistic回歸沒有關于自變量分布的假設條件,可以是連續(xù)變量、離散變量和虛擬變量;

5)由于因變量和自變量之間不存在線性關系,所以參數(shù)(偏回歸系數(shù))使用最大似然估計法計算。


而逐步回歸的基本思想是將變量逐個引入模型,每引入一個解釋變量后都要進行F檢驗,并對已經(jīng)選入的解釋變量逐個進行t檢驗,當原來引入的解釋變量由于后面解釋變量的引入變得不再顯著時,則將其刪除。以確保每次引入新的變量之前回歸方程中只包含顯著性變量。這是一個反復的過程,直到既沒有顯著的解釋變量選入回歸方程,也沒有不顯著的解釋變量從回歸方程中剔除為止。以保證最后所得到的解釋變量集是最優(yōu)的。

依據(jù)上述思想,可利用逐步回歸篩選并剔除引起多重共線性的變量,其具體步驟如下:先用被解釋變量對每一個所考慮的解釋變量做簡單回歸,然后以對被解釋變量貢獻最大的解釋變量所對應的回歸方程為基礎,再逐步引入其余解釋變量。經(jīng)過逐步回歸,使得最后保留在模型中的解釋變量既是重要的,又沒有嚴重多重共線性。


在這里,我應用了以前實驗時的一個數(shù)據(jù)集向大家展示,該實驗的目的是探究哪些因素會對疾病的發(fā)生產(chǎn)生影響,在本數(shù)據(jù)集中,Diseases即為要研究的變量,即此疾病是否會發(fā)生,分類為0-未患病,1-患病;Diabetes為病人是否罹患糖尿病,分類為0-未患病,1-患?。?Acharacter為是否為A型性格,分類為0-否,1-是;Smoke為是否吸煙,分類為0-否,1-是;Nation為是否漢族,分類為0-否,1-是;Sex為性別,分類為0-男,1-女,以上各變量均為二分類變量,同時因為研究的指標Diseases也為二分類變量,故這里不能使用線性回歸,而應使用logistic回歸。其余變量,Age年齡,Height升高,Weight體重,Pressure血壓以及BMI指數(shù)均為連續(xù)型變量,需要注意的是,本數(shù)據(jù)集已對原始數(shù)據(jù)進行了清洗,現(xiàn)在呈現(xiàn)的是標準化后的數(shù)據(jù)。需要原始數(shù)據(jù)集自己進行練手分析的讀者請在公眾號(全哥的學習生涯)內回復“邏輯回歸”獲得。


1. 載入數(shù)據(jù)

data<-read.csv(“C:/Users/Desktop/data.csv”)

head(data,10)

本數(shù)據(jù)的前10行如圖1所示。


圖1

2. 轉換變量類型

由于性別,是否吸煙,是否患有糖尿病等二分類變量的“1”和“0”并非代表一個數(shù)值,而其真正意義是代表一個水平(level),且它們只是一個名義型變量而非連續(xù)型的數(shù)值變量,因此在R語言中,我們需要將其轉換為因子(factor)類型。因子轉換的代碼如圖2所示。


圖2

3. logistic回歸分析

在R中,構建Logistic回歸模型只需要一步,即glm()命令,需要分析的因變量指標Diseases放在最前面,后面依次為要分析的自變量,代碼如圖3所示。結果如圖4所示。歡迎關注我的個人微信公眾號:全哥的學習生涯,獲取更多R語言與統(tǒng)計分析學習知識。


圖3


圖4

4. 逐步回歸分析

在這里以AIC信息統(tǒng)計量為準則,通過選擇最小的AIC信息統(tǒng)計量來實現(xiàn)增加變量的目的,并得到最優(yōu)化的模型。

代碼為:

logit.step <- step(md,direction=”both”)

summary(logit.step)

在此處應注意:若改為direction=”forward”即為前進法,反之backward為后退法,但是前進法和后退法都有明顯的不足。前進法可能存在這樣的問題:它不能反映引進新的自變量值之后的變化情況。因為某個自變量開始被引入后得到回歸方程對應的AIC最小,但是當再引入其他變量后,可能將其從回歸方程中提出會是的AIC值變小,但是使用前進法就沒有機會將其提出,即一旦引入就會是終身制的。這種只考慮引入而沒有考慮剔除的做法顯然是不全面的。類似的,后退法中一旦某個自變量被剔除,它就再也沒有機會重新進入回歸方程。根據(jù)前進法和后退法的思想及方法,人們比較自然地想到將兩種方法結合起來,這就產(chǎn)生了逐步回歸,也就是direction=”both”。

結果如圖5所示。逐步回歸篩選的最優(yōu)子集即為我用黃色方框標注的各個指標,我們可以看出,并未去掉任一變量,而是包含了所有。但在顯著水平為0.05時,我用紅色方框,即Age,Height,Weight,Pressure以及BMI的回歸系數(shù)Pr均不顯著。所以由AIC選出的模型整體最優(yōu),但可能包含不顯著的變量,需要刪去不顯著的變量(即紅色方框的值),得到新的回歸結果。


圖5

5. 最終結果

最優(yōu)模型的代碼如圖6所示,最終結果如圖7所示,可以看出納入的各變量回歸系數(shù)均顯著。

最后,如果屏幕前的你如果對R語言學習還有什么問題或看法,以及想獲取更多的R語言學習與數(shù)據(jù)分析知識,歡迎關注公眾號:全哥的學習生涯。

圖6
圖7
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容