邏輯回歸算法的原理及實現(LR)


Logistic回歸雖然名字叫”回歸” ,但卻是一種分類學習方法。使用場景大概有兩個:第一用來預測,第二尋找因變量的影響因素。邏輯回歸(Logistic Regression, LR)又稱為邏輯回歸分析,是分類和預測算法中的一種。通過歷史數據的表現對未來結果發生的概率進行預測。例如,我們可以將購買的概率設置為因變量,將用戶的特征屬性,例如性別,年齡,注冊時間等設置為自變量。根據特征屬性預測購買的概率。邏輯回歸與回歸分析有很多相似之處,在開始介紹邏輯回歸之前我們先來看下回歸分析。

回歸分析用來描述自變量x和因變量Y之間的關系,或者說自變量X對因變量Y的影響程度,並對因變量Y進行預測。其中因變量是我們希望獲得的結果,自變量是影響結果的潛在因素,自變量可以有一個,也可以有多個。一個自變量的叫做一元回歸分析,超過一個自變量的叫做多元回歸分析。

下面是一組廣告費用和曝光次數的數據,費用和曝光次數一一對應。其中曝光次數是我們希望知道的結果,費用是影響曝光次數的因素,我們將費用設置為自變量X,將曝光次數設置為因變量Y,通過一元線性回歸方程和判定系數可以發現費用(X)對曝光次數(Y)的影響。

一元回歸原始數據表

以下為一元回歸線性方式,其中y是因變量,X是自變量,我們只需求出截距b0和斜率b1就可以獲得費用和曝光次數之間的關系,並對曝光次數進行預測。這里我們使用最小二乘法來計算截距b0和斜率b1。最小二乘法通過最小化誤差的平方尋找數據的最佳函數匹配。

一元回歸

下表中是使用最小二乘法計算回歸方程的一些必要的計算過程。在表中最左側的兩列分別為自變量X和因變量Y,我們首先計算出自變量和因變量的均值,然后計算每一個觀測值與均值的差,以及用於計算回歸方程斜率b1所需的數據。

最小二乘法

根據表中的數據按公式計算出了回歸方程的斜率b1,計算過程如下。斜率表示了自變量和因變量間的關系,斜率為正表示自變量和因變量正相關,斜率為負表示自變量和因變量負相關,斜率為0表示自變量和因變量不相關。

b1公式1

求得斜率b1后,按下面的公式可以求出Y軸的截距b0。

b0公式1

將斜率b1和截距b0代入到回歸方程中,通過這個方程我們可以獲得自變量和因變量的關系,費用每增加1元,曝光次數會增長7437次。以下為回歸方程和圖示。

一元回歸代入

 

費用與曝光次數1

在回歸方程的圖示中,還有一個R^2,這個值叫做判定系數,用來衡量回歸方程是否很好的擬合了樣本的數據。判定系數在0-1之間,值越大說明擬合的越好,換句話說就是自變量對因變量的解釋度越高。判定系數的計算公式為SST=SSR+SSE,其中SST是總平方和,SSR是回歸平方和,SSE是誤差平方和。下表為計算判定系數所需三個指標的一些必要的計算過程。

R平方

根據前面求得的回歸平方和(SSR)和總平方和(SST)求得判定系數為0.94344。

R平方公式1

以上為回歸方程的計算過程,在根據費用預測曝光數量的場景下,我們可以通過回歸方程在已知費用的情況下計算出曝光數量。邏輯回歸與回歸方程相比在線性回歸的基礎上增加了一個邏輯函數。例如通過用戶的屬性和特征來判斷用戶最終是否會進行購買。其中購買的概率是因變量Y,用戶的屬性和特征是自變量X。Y值越大說明用戶購買的概率越大。這里我們使用事件發生的可能性(odds)來表示購買與未購買的比值。

inodds

使用E作為購買事件,P(E)是購買的概率,P(E’)是未購買的概率,Odds(E)是事件E(購買)發生的可能性。

odds

Odds是一個從0到無窮的數字,Odds的值越大,表明事件發生的可能性越大。下面我們要將Odds轉化為0-1之間的概率函數。首先對Odds取自然對數,得到logit方程,logit是一個范圍在負無窮到正無窮的值。

logit1

基於上面的logit方程,獲得以下公式:

logit2

其中使用π替換了公式中的P(E),π=P(E)。根據指數函數和對數規則獲得以下公式:

odds1

並最終獲得邏輯回歸方程:

邏輯回歸公式

下面根據邏輯回歸方程來計算用戶購買的概率,下表是用戶注冊天數和是否購買的數據,其中注冊天數是自變量X,是否購買是自變量Y。我們將購買標記為1,將未購買標記為0。

 

 

接下來我們將在Excel中通過8個步驟計算出邏輯回歸方程的斜率和截距。並通過方程預測新用戶是否會購買

一元邏輯回歸數據

  • 第一步,使用Excel的排序功能對原始數據按因變量Y進行排序,將已購買和未購買的數據分開,使得數據特征更加明顯。
  • 第二步,按照Logit方程預設斜率b1和截距b0的值,這里我們將兩個值都預設為0.1。后續再通過Excel求最優解
  • 第三步,按照logit方程,使用之前預設的斜率和截距值計算出L值

step1

  • 第四步,將L值取自然對數
  • 第五步,計算P(X)的值,P(X)為事件發生的可能性(Odds)。
  • 具體的計算步驟和過程見下圖。

step2

  • 第六步,計算每個值的對數似然函數估計值(Log-Likelihood)。方法和過程見下圖。
  • 第七步,將對數似然函數值進行匯總

step3

  • 第八步,使用Excel的規划求解功能,計算最大對數似然函數值。方法和過程見下圖。設置匯總的對數似然函數值LL為最大化的目標,預設的斜率b1和截距b0是可變單元格,取消”使無約束變量為非負數”的選項。進行求解。

規划求解

Excel將自動求出邏輯回歸方程中斜率和截距的最優解,結果如下圖所示。

step4

求得邏輯回歸方程的斜率和截距以后,我們可以將值代入方程,獲得一個注冊天數與購買概率的預測模型,通過這個模型我們可以對不同注冊天數(X)用戶的購買概率(Y)進行預測。以下為計算過程。

step5

  • 第一步,輸入自變量注冊天數(X)的值,這里我們輸入50天。
  • 第二步,將輸入的X值,以及斜率和截距套入Logit方程,求出L值。
  • 第三步,對L值取自然對數。
  • 第四步,求時間發生可能性P(X)的概率值。

注冊天數為50天的用戶購買的概率約為17.60%。

我們將所有注冊天數的值代入到購買概率預測模型中,獲得了一條注冊天數對購買概率影響的曲線。從曲線中可以發現,注冊天數在較低和較高天數的用戶購買概率較為平穩。中間天數用戶的購買概率變化較大。

注冊天數對購買概率的影響

我們繼續在上面的計算結果中增加新的自變量“年齡”。以下是原始數據的截圖。現在有年齡和注冊天數兩個自變量和一個因變量。

多元邏輯回歸數據

依照前面的方法計算斜率和截距的最優解,並獲得邏輯回歸方程,將不同的年齡和注冊天數代入到方程中,獲得了用戶年齡和注冊天數對購買的預測模型。我們通過Excel的三維圖表來繪制年齡和注冊天數對購買概率的影響。

年齡和注冊天數對購買概率的影響

從圖中可以看出,購買概率隨着注冊天數的增加而增長,並且在相同的注冊天數下,年齡較小的用戶購買概率相對較高。

轉載於: http://bluewhale.cc/2016-05-18/logistic-regression.html#ixzz4RbUh8R3T

一 從線性回歸到Logistic回歸

線性回歸和Logistic回歸都是廣義線性模型的特例。

假設有一個因變量y和一組自變量x1, x2, x3, ... , xn,其中y為連續變量,我們可以擬合一個線性方程:

y =β1*x2*x3*x+...+βn*xn

並通過最小二乘法估計各個β系數的值。

如果y為二分類變量,只能取值0或1,那么線性回歸方程就會遇到困難: 方程右側是一個連續的值,取值為負無窮到正無窮,而左側只能取值[0,1],無法對應。為了繼續使用線性回歸的思想,統計學家想到了一個變換方法,就是將方程右邊的取值變換為[0,1]。最后選中了Logistic函數:

y = 1 / (1+e-x)

這是一個S型函數,值域為(0,1),能將任何數值映射到(0,1),且具有無限階可導等優良數學性質。

我們將線性回歸方程改寫為:

y = 1 / (1+e-z),

其中,z =β1*x2*x3*x+...+βn*xn

此時方程兩邊的取值都在0和1之間。

進一步數學變換,可以寫為:

Ln(y/(1-y)) =β1*x2*x3*x+...+βn*xn

Ln(y/(1-y))稱為Logit變換。我們再將y視為y取值為1的概率p(y=1),因此,1-y就是y取值為0的概率p(y=0),所以上式改寫為:

p(y=1) = ez/(1+ez),

p(y=0) = 1/(1+ez),

其中,z =β1*x2*x3*x+...+βn*xn.

接下來就可以使用”最大似然法”估計出各個系數β。

 

二 odds與OR復習

      odds: 稱為幾率、比值、比數,是指某事件發生的可能性(概率)與不發生的可能性(概率)之比。用p表示事件發生的概率,則:odds = p/(1-p)。

      OR:比值比,為實驗組的事件發生幾率(odds1)/對照組的事件發生幾率(odds2)。 

 

三 Logistic回歸結果的解讀

      我們用一個例子來說明,這個例子中包含200名學生數據,包括1個自變量和4個自變量:

      因變量:  hon,表示學生是否在榮譽班(honors class),1表示是,0表示否;

      自變量:

      female :性別,分類變量,1=女,0=男

      read: 閱讀成績,為連續變量

      write: 寫作成績,為連續變量

      math:數學成績,為連續變量 

 

      1、不包含任何變量的Logistic回歸

      首先擬合一個不包含任何變量的Logistic回歸,

      模型為 ln(p/(1-p) =β0

      回歸結果如下(結果經過編輯):

hon

系數β

標准誤

P

截距

-1.12546

0.164

0.000

      這里的系數β就是模型中的β= -1.12546,

      我們用p表示學生在榮譽班的概率,所以有ln(p/(1-p) =β= -1.12546,

      解方程得:p = 0.245。

      odds = p/1-p = 0.3245

      這里的p是什么意思呢?p就是所有數據中hon=1的概率。

      我們來統計一下整個hon的數據:

hon

例數

百分比

0

151

75.5%

1

49

24.5%

      hon取值為1的概率p為49/(151+49) = 24.5% = 0.245,我們可以手動計算出ln(p/(1-p) = -1.12546,等於系數β0。可以得出關系:

      β0=ln(odds)

 

      2、包含一個二分類因變量的模型

      擬合一個包含二分類因變量female的Logistic回歸,

      模型為 ln(p/(1-p)  =β1* female.

      回歸結果如下(結果經過編輯):

hon

系數β

標准誤

P

female

0.593

.3414294

0.083

截距

-1.47

.2689555

0.000

      在解讀這個結果之前,先看一下hon和female的交叉表:

hon

female

Total

Male

Female

0

74

77

151

1

17

32

49

Total

91

109

 

根據這個交叉表,對於男性(Male),其處在榮譽班級的概率為17/91,處在非榮譽班級的概率為74/91,所以其處在榮譽班級的幾率odds1=(17/91)/(74/91) = 17/74 = 0.23;相應的,女性處於榮譽班級的幾率odds2 = (32/109)/(77/109)=32/77 = 0.42。女性對男性的幾率之比OR = odds2/odds1 = 0.42/0.23 = 1.809。我們可以說,女性比男性在榮譽班的幾率高80.9%。

回到Logistic回歸結果。截距的系數-1.47是男性odds的對數(因為男性用female=0表示,是對照組),ln(0.23) = -1.47。變量female的系數為0.593,是女性對男性的OR值的對數,ln(1.809) = 0.593。所以我們可以得出關系: OR = exp(β),或者β= ln(OR)(exp(x)函數為指數函數,代表e的x次方)。 

      3、包含一個連續變量的模型

      擬合一個包含連續變量math的Logistic回歸,

      模型為 ln(p/(1-p)  =β1* math.

      回歸結果如下(結果經過編輯):

hon

系數β

標准誤

P

math

.1563404

.0256095

0.000

截距

-9.793942

1.481745

0.000

      這里截距系數的含義是在榮譽班中math成績為0的odds的對數。我們計算出odds = exp(-9.793942) = .00005579,是非常小的。因為在我們的數據中,沒有math成績為0的學生,所以這是一個外推出來的假想值。

      怎么解釋math的系數呢?根據擬合的模型,有:

      ln(p/(1-p)) =  - 9.793942  + .1563404*math

      我們先假設math=54,有:

      ln(p/(1-p))(math=54) = - 9.793942 + .1563404 *54

      然后我們把math提高提高一個單位,令math=55,有:

      ln(p/(1-p))(math=55) = - 9.793942 + .1563404 *55

      兩者之差:

      ln(p/(1-p))(math=55) - ln(p/1-p))(math = 54) = 0.1563404.

      正好是變量math的系數。

      由此我們可以說,math每提高1個單位,odds(即p/(1-p),也即處於榮譽班的幾率)的對數增加0.1563404。

      那么odds增加多少呢?根據對數公式:

      ln(p/(1-p))(math=55) - ln(p/1-p))(math = 54) = ln((p/(1-p)(math=55)/ (p/(1-p)(math=54))) = ln(odds(math=55)/ odds(math=54)) = 0.1563404.

      所以:

      odds(math=55)/ odds(math=54)  =  exp(0.1563404) = 1.169.

      因此我們可以說,math每升高一個單位,odds增加16.9%。且與math的所處的絕對值無關。

      聰明的讀者肯定發現,odds(math=55)/ odds(math=54)不就是OR嘛!

      4、包含多個變量的模型(無交互效應)

      擬合一個包含female、math、read的Logistic回歸,

      模型為 ln(p/(1-p) = β1* math+β2* female+β3* read.

      回歸結果如下(結果經過編輯):

hon

系數β

標准誤

P

math

.1229589

0.000

female

0.979948

0.020

read

.0590632

0.026

截距

-11.77025

0.000

      該結果說明:

     (1) 性別:在math和read成績都相同的條件下,女性(female=1)進入榮譽班的幾率(odds)是男性(female=0)的exp(0.979948) = 2.66倍,或者說,女性的幾率比男性高166%。

     (2) math成績:在female和read都相同的條件下,math成績每提高1,進入榮譽班的幾率提高13%(因為exp(0.1229589) = 1.13)。

     (3)read的解讀類似math。

 

      5、包含交互相應的模型

      擬合一個包含female、math和兩者交互相應的Logistic回歸,

      模型為 ln(p/(1-p)  =β1* female+β2* math+β3* female *math.

      所謂交互效應,是指一個變量對結果的影響因另一個變量取值的不同而不同

      回歸結果如下(結果經過編輯):

hon

系數β

標准誤

P

female

-2.899863

0.349

math

.1293781

0.000

female*math

.0669951

0.210

截距

-8.745841

0.000

      注意:female*math項的P為0.21,可以認為沒有交互相應。但這里我們為了講解交互效應,暫時忽略P值,姑且認為他們是存在交互效應的。

      由於交互效應的存在,我們就不能說在保持math和female*math不變的情況下,female的影響如何如何,因為math和female*math是不可能保持不變的!

      對於這種簡單的情況,我們可以分別擬合兩個方程,

      對於男性(female=0):

      log(p/(1-p))= β0 + β2*math.

      對於女性(female=1):

      log(p/(1-p))= (β0 + β1) + (β2 + β3 )*math.

      然后分別解釋。

分類變量(啞變量)的處理及解讀

一、啞變量的設置方法


Logistic回歸中分類變量需要使用啞變量(也叫虛擬變量)來操作。
一般的,n個分類需要設置n-1個啞變量(為什么不是n個?請繼續看)。
舉個例子,有一個“年齡”變量,分為:青年,中年,老年三類,那么我們可以用兩個啞變量來代替:
 年齡  變量1 變量2 
 青年 1
 中年 1
 老年 0 0
變量1 = 1代表青年,0代表非青年
變量2 = 1代表中年,0代表非中年
變量1和變量2都等於0代表老年
所以用2個變量就可以表示3個類別。
 
二、分類變量在SPSS中的操作及結果解讀
 
SPSS中能自動設置啞變量,只需要把變量標記為分類變量即可。
 
假設我們要分析年齡和病程對某種疾病預后的影響,采用Logistic回歸分析。
變量賦值如下(數據均為人造,非真實數據):
預后 :因變量,為二分類變量,0=預后差,1=預后好
年齡:自變量,為多分類變量,1=青年,2=中年,3=老年
病程:自變量,為連續變量
 
(1)首先將年齡設置為分類變量,對比方式默認為“指示符”,參考類別默認為“最后一個”(后面解釋為什么)。見下圖。
深入解讀Logistic回歸結果(二):分類變量(啞變量)的處理及解讀

深入解讀Logistic回歸結果(二):分類變量(啞變量)的處理及解讀
 
(2)結果輸出,有兩個主要的表格。
 
深入解讀Logistic回歸結果(二):分類變量(啞變量)的處理及解讀

這是分類變量的編碼表格,可以看出,年齡被替換為兩個新的變量:年齡(1)和年齡(2)。年齡(1)代表青年人,年齡(2)代表中年人,他們的取值都為0表示老年人,作為青年和中年的參考對象。
 
深入解讀Logistic回歸結果(二):分類變量(啞變量)的處理及解讀

這是回歸表格,出現了年齡(1)和年齡(2)兩個新的變量。可以看出年齡(1)的P為0.000,有統計學意義,年齡(2)的P為0.135,沒有統計學意義。
 
兩者不一致,怎么解釋?
 
因為年齡(1)和(2)都是以老年人來作為參照的,所以可以解釋為:
(1)青年人相對於老年人,預后更好
(2)中年人相對於老年人,預后沒有統計學差異
(3)青年人比中年人看起來預后好,但需要進一步假設檢驗。
 
三、參照方式的選擇
 
分類變量都需要一個參考對象,也就是說跟誰比。
SPSS中提供了多種對比方式,如指示符,簡單,差值等等,如下圖:
 
深入解讀Logistic回歸結果(二):分類變量(啞變量)的處理及解讀

其中默認的“指示符”使用最多,這里僅介紹這一個。
 
指示符”表示將每一個類別與參考類別對比。那么哪一個是參考類別呢?SPSS有兩個選項:“最后一個”與“第一個”。這里的“最后一個”和“第一個”順序與上文“分類變量編碼表”中的順序是一樣的。如果設置為最后一個,就是以老年為參考類別,如果設置為第一個,就是以青年為參考類別。具體使用哪一個,需要根據分析目的來確定。

 來源於:http://blog.sina.com.cn/wjyhumor


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM