Logistic邏輯回歸

在日常學(xué)習(xí)或工作中經(jīng)常會(huì)使用線性回歸模型對(duì)某一事物進(jìn)行預(yù)測(cè)华匾,例如預(yù)測(cè)房?jī)r(jià)、身高揪荣、GDP筷黔、學(xué)生成績(jī)等,發(fā)現(xiàn)這些被預(yù)測(cè)的變量都屬于連續(xù)型變量仗颈。然而有些情況下佛舱,被預(yù)測(cè)變量可能是二元變量,即成功或失敗挨决、流失或不流失请祖、漲或跌等,對(duì)于這類問題脖祈,線性回歸將束手無策肆捕。這個(gè)時(shí)候就需要另一種回歸方法進(jìn)行預(yù)測(cè),即Logistic回歸盖高。

一慎陵、Logistic模型簡(jiǎn)介

Logistic回歸模型公式如下:

xn的情況下眼虱,興趣變量y=1時(shí)的概率。顯然席纽,該模型是一個(gè)非線性模型捏悬,具有S型分布

x<-seq(-10,10,0.01)

> y<-1/(1+exp(-x))

> library(ggplot2)

> ggplot(data=NULL,aes(x=x,y=y))+geom_line(col="red")

二、模型用途

Logistic模型主要有三大用途:

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

2)用于預(yù)測(cè)纺铭,可以預(yù)測(cè)某種情況發(fā)生的概率或可能性大锌芏ぁ;

3)用于判別舶赔,判斷某個(gè)新樣本所屬的類別扫倡。

三、模型應(yīng)用

下文使用Logistic模型對(duì)電信行業(yè)的客戶流失數(shù)據(jù)進(jìn)行建模顿痪,數(shù)據(jù)來源為R中C50包自帶數(shù)據(jù)集churnTrain和churnTest镊辕。

使用C50包中自帶的電信行業(yè)客戶流失數(shù)據(jù)

library(C50)

data(churn)

?train<-churnTrain

test<-churnTest

str(train)

數(shù)據(jù)集中包含了19個(gè)變量,其中變量洲(state)蚁袭、國(guó)際長(zhǎng)途計(jì)劃(international_plan)、信箱語(yǔ)音計(jì)劃(voice_mail_plan)和是否流失(churn)為因子變量石咬,其余變量均為數(shù)值變量揩悄,而且這里的區(qū)域編碼變量(area_code)沒有任何實(shí)際意義,故考慮排除該變量鬼悠。

剔除無意義的變量

train<-train[,-3]

test<-test[,-3]

由于模型中删性,更關(guān)心的是流失這個(gè)結(jié)果(churn=yes),所以對(duì)該因子進(jìn)行排序?

train$churn<-factor(train$churn,levels = c("no","yes"),order=TRUE)

test$churn <- factor(test$churn, ,levels = c('no','yes'), order = TRUE)?

構(gòu)建Logistic模型?

model<-glm(churn~.,data=train,family = "binomial")

> summary(model)

發(fā)現(xiàn)有很多變量并不顯著焕窝,故考慮剔除這些不顯著的變量蹬挺,這里使用逐步回歸法進(jìn)行變量的選擇(需要注意的是,Logistic為非線性模型它掂,回歸系數(shù)是通過極大似然估計(jì)方法計(jì)算所得)

step函數(shù)實(shí)現(xiàn)逐步回歸法?

model2 <- step(object = model, trace = 0)?

summary(model2)?

從結(jié)果中發(fā)現(xiàn)巴帮,所有變量的P值均小于0.05,通過顯著性檢驗(yàn)虐秋,保留了相對(duì)重要的變量榕茧。模型各變量通過顯著性檢驗(yàn)的同時(shí)還需確保整個(gè)模型是顯著的,只有這樣才能保證模型是正確的客给、有意義的用押,下面對(duì)模型進(jìn)行卡方檢驗(yàn)。

模型的顯著性檢驗(yàn)?

anova(object = model2, test = 'Chisq')?注意c大寫

從上圖中可知靶剑,隨著變量從第一個(gè)到最后一個(gè)逐個(gè)加入模型蜻拨,模型最終通過顯著性檢驗(yàn)池充,說明由上述這些變量組成的模型是有意義的,并且是正確的缎讼。

雖然模型的偏回歸系數(shù)和模型均通過顯著性檢驗(yàn)收夸,但不代表模型能夠非常準(zhǔn)確的擬合實(shí)際值,這就需要對(duì)模型進(jìn)行擬合優(yōu)度檢驗(yàn)休涤,即通過比較模型的預(yù)測(cè)值與實(shí)際值之間的差異情況來進(jìn)行檢驗(yàn)咱圆。

Logistic回歸模型的擬合優(yōu)度檢驗(yàn)一般使用偏差卡方檢驗(yàn)、皮爾遜卡方檢驗(yàn)和HL統(tǒng)計(jì)量檢驗(yàn)三種方法功氨,其中前兩種檢驗(yàn)適合模型中只有離散的自變量序苏,而后一種適合模型中包含連續(xù)的自變量。擬合優(yōu)度檢驗(yàn)的原假設(shè)為“模型的預(yù)測(cè)值與實(shí)際值不存在差異”捷凄。

模型對(duì)樣本外數(shù)據(jù)(測(cè)試集)的預(yù)測(cè)精度?

prob<-predict(object =model2,newdata=test,type = "response")?

pred<-ifelse(prob>=0.5,"yes","no")

> pred<-factor(pred,levels = c("no","yes"),order=TRUE)

> f<-table(test$churn,pred)

> f

pred

no? ? ? yes

yes? 182? ? 42

no? 1408? ? 35

從上圖中我們發(fā)現(xiàn):

1).模型對(duì)非流失客戶(no)的預(yù)測(cè)還是非常準(zhǔn)確的(1408/(1408+35)=97.6%);

2).模型對(duì)流失客戶(yes)的預(yù)測(cè)非常不理想(42/(182+42)=18.8%)

3).模型的整體預(yù)測(cè)準(zhǔn)確率為87.0%((1408+42)/(1408+35+182+42))忱详,還算說得過去。

模型對(duì)非流失客戶預(yù)測(cè)精準(zhǔn)跺涤,而對(duì)流失客戶預(yù)測(cè)非常差匈睁,我認(rèn)為的可能原因是模型對(duì)非平衡數(shù)據(jù)非常敏感。即構(gòu)建模型的訓(xùn)練集中流失客戶為483例桶错,而非流失客戶為2850例航唆,兩者相差非常大。

上文對(duì)模型偏回歸系數(shù)院刁、模型整體和模型擬合優(yōu)度進(jìn)行了顯著性檢驗(yàn)糯钙,結(jié)果均表明模型比較理想,同時(shí)也對(duì)模型的預(yù)測(cè)精度進(jìn)行驗(yàn)證退腥,也說明了模型的整體預(yù)測(cè)能力比較理想任岸。接下來我們通過另一種可視化的方法衡量模型的優(yōu)劣,即ROC曲線狡刘,該曲線的橫坐標(biāo)和縱坐標(biāo)各表示1-反例的覆蓋率正例的覆蓋率享潜。

繪制ROC曲線?

library(pROC)

roc_curve <- roc(test$churn,prob)

names(roc_curve)

x <- 1-roc_curve$specificities

y <- roc_curve$sensitivities

library(ggplot2)

p <- ggplot(data = NULL, mapping = aes(x= x, y = y))

p + geom_line(colour = 'red') +geom_abline(intercept = 0, slope = 1)

+ annotate('text', x = 0.4, y = 0.5, label =paste('AUC=',round(roc_curve$auc,2)))

+ labs(x = '1-specificities',y = 'sensitivities', title = 'ROC Curve')

這里的AUC為ROC曲線和y=x直線之間的面積。在實(shí)際應(yīng)用中嗅蔬,多個(gè)模型的比較可以通過面積大小來選擇更佳的模型剑按,選擇標(biāo)準(zhǔn)是AUC越大越好。對(duì)于一個(gè)模型而言购城,一般AUC大于0.8就能夠說明模型是比較合理的了吕座。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市瘪板,隨后出現(xiàn)的幾起案子吴趴,更是在濱河造成了極大的恐慌,老刑警劉巖侮攀,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锣枝,死亡現(xiàn)場(chǎng)離奇詭異厢拭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)撇叁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門供鸠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人陨闹,你說我怎么就攤上這事楞捂。” “怎么了趋厉?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵寨闹,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我君账,道長(zhǎng)繁堡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任乡数,我火速辦了婚禮椭蹄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘净赴。我一直安慰自己绳矩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布玖翅。 她就那樣靜靜地躺著埋酬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪烧栋。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天拳球,我揣著相機(jī)與錄音审姓,去河邊找鬼。 笑死祝峻,一個(gè)胖子當(dāng)著我的面吹牛魔吐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播莱找,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼酬姆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了奥溺?” 一聲冷哼從身側(cè)響起辞色,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎浮定,沒想到半個(gè)月后相满,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體层亿,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年立美,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了匿又。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡建蹄,死狀恐怖碌更,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情洞慎,我是刑警寧澤痛单,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站拢蛋,受9級(jí)特大地震影響桦他,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谆棱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一快压、第九天 我趴在偏房一處隱蔽的房頂上張望诅愚。 院中可真熱鬧岛蚤,春花似錦、人聲如沸吭产。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至嗦锐,卻和暖如春嫌松,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奕污。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工萎羔, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人碳默。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓贾陷,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親嘱根。 傳聞我的和親對(duì)象是個(gè)殘疾皇子髓废,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容