邏輯斯蒂回歸
- 基本思想
- 數學推導
- 基于R的案例
- 結論
基本思想
這一講給大家介紹一下,廣義線性回歸模型當中的一個最為典型的模型,邏輯斯底回歸(logistic regression)。估計大家都見過。我們最長用到的是二值邏輯斯底回歸,多項邏輯斯底書裡邊介紹的少。今天我們重點說一下,二項邏輯斯底回歸和多項邏輯斯底回歸。我們先簡單聊聊傳統的線性回歸,我們說線性回歸就是 y=k0+k1x ,這個時候呢,因變量 y 有要求,最起碼得是連續的變量。如果y是離散的比如它隻能取 0,1 兩個變量,那麼此時傳統回歸就不行了。大家想想,如果在 y=k0+k1x 當中,左邊是離散的變量,範圍隻有 (0,1) ,而右邊呢,是連續的而且右邊整體的變化範圍是 (+∞,−∞) .要想讓等式在這種情況下成立,必須做個變化,要麼就是把左邊變成 (+∞,−∞) 。要麼就是把右邊變成 (0,1) ,最好是用個連續的函數作為變換函數,如果太複雜的變化也不好。不利于後面的計算。如果大家稍微思考一下,就發現直接變化不行,為啥呢,比如我們想把右邊變成 0,1 兩個值不行,但是可以将其變成 (0,1) 内的數。比如任何一個數,經過 exex+1 變換就小了很多了。是以,我們先把左邊給改造一下,但是改造還必須得有含義。不能說改造完了之後意義變了。這裡我們想到了二項分布,二項分布是把 0,1 兩個值與機率 p,1−p 對應起來。如果我們構造一個 p1−p ,那麼它的變化範圍是 (0,+∞) ,這樣構造有意義嗎,很有意義,這個比例越大說明 1 這種情況越容易發生,0這種情況不容易發生,滿足了越大越代表一種情況。越小又代表另一種情況。這樣呢,我們先把左邊變成了 (0,+∞) .而右邊呢,是 (+∞,−∞) 。再經過一次變換就好了。哪個函數可以做到呢。對數函數 log 可以。這樣的話,我們就得到下式:
log(p1−p)∈(+∞,−∞)
.于是我們建立下面的回歸方程。
log(p1−p)=k0+k1x
這就是邏輯斯蒂回歸方程了。這樣呢,每個個體實際上現在與一個機率 p 對應起來了。通過簡單變換,我們可以看到,pi=ek0+k1xiek0+k1xi+1,這樣的話,就可以按極大似然的方式進行計算參數 k0,k1 了。當然具體計算過程還是比較複雜的。這個是從統計的角度來看待logistic regression回歸的。還可以從機器學習的角度來看待,用随機梯度下降進行求解。後面我們在介紹。
一旦方程建立了,回歸系數也已經求出,那麼我們需要了解回歸系數的意義。在傳統回歸當中,回歸系數比較容易了解,比如一機關 x 的變化可以帶來多少y的變化。而在logistic 回歸當中代表的是一機關x的變化,帶來 ep1−p 的變化,這個變化還是表示1發生的機率相對增加了多少。是以,通俗地說,就是 k 大于0時,有利于發生,k小于0時,不利于發生。
系數的解釋是一個方面,另一個方面就是拟合優度(goodness of fit),我們傳統回歸是根據 R2 或者是調整 R2 進行判斷,但是呢。在logistic 回歸當中無法計算。是以又提出個新的名額,地位和 R2 一樣的,叫deviance。deviance越小,越好,後面我們專門會個大家介紹一下。
基于R的logistic regression
下面給大家帶來一個小小的案例
#廣義線性回歸模型
#logistic 回歸
#清楚空間變量
rm(list = ls())
#讀取資料
pass.df <- read.csv("D:/Rdata/data/rintro-chapter9.csv")
#檢視前五行
head(pass.df)
Channel Promo Pass
Mail Bundle YesPass
Mail Bundle YesPass
Mail Bundle YesPass
Mail Bundle YesPass
Mail Bundle YesPass
Mail Bundle YesPass
#檢視資料類型
str(pass.df)
'data.frame': obs. of variables:
$ Channel: Factor w/ levels "Email","Mail",..: ...
$ Promo : Factor w/ levels "Bundle","NoBundle": ...
$ Pass : Factor w/ levels "NoPass","YesPass": ...
#進行回歸
pass.m1 <- glm(Pass ~Promo, data=pass.df, family=binomial)
#檢視結果
summary(pass.m1)
Call:
glm(formula = Pass ~ Promo, family = binomial, data = pass.df)
Deviance Residuals:
Min 1Q Median 3Q Max
- -
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) ***
PromoNoBundle - - ***
---
Signif. codes: ‘***’ ‘**’ ‘*’ ‘.’ ‘ ’
(Dispersion parameter for binomial family taken to be )
Null deviance: on degrees of freedom
Residual deviance: on degrees of freedom
AIC:
Number of Fisher Scoring iterations:
結論
這一節我們講了logistic regression,主要是從轉換的角度講的,首先是通過構造比例,也就是 p1−p ,在此基礎上進行回歸分析。