1. 程式人生 > >Logistic Regression--邏輯迴歸演算法彙總

Logistic Regression--邏輯迴歸演算法彙總

1.1邏輯迴歸模型

考慮具有p個獨立變數的向量clip_image002,設條件概率clip_image004為根據觀測量相對於某事件發生的概率。邏輯迴歸模型可表示為

clip_image006         (1.1)

上式右側形式的函式稱為稱為邏輯函式。下圖給出其函式圖象形式。

clip_image008

其中。如果含有名義變數,則將其變為dummy變數一個具有k個取值的名義變數,將變為k-1個dummy變數。這樣,有

(1.2)

  定義不發生事件的條件概率為

(1.3)

那麼,事件發生與事件不發生的概率之比為

clip_image016                                       (1.4)

這個比值稱為事件的發生比(the odds of experiencing an event),簡稱為odds。因為0<p<1,故odds>0。對odds取對數,即得到線性函式

      (1.5),

1.2極大似然函式

  假設有n個觀測樣本,觀測值分別為clip_image020clip_image022為給定條件下得到yi=1(原文clip_image024)的概率。在同樣條件下得到yi=0(clip_image026)的條件概率為clip_image028。於是,得到一個觀測值的概率為

                                                (1.6)     —–此公式實際上是綜合前兩個等式得出,並無特別之處

 因為各項觀測獨立,所以它們的聯合分佈可以表示為各邊際分佈的乘積。

                                     

上式稱為n個觀測的似然函式。我們的目標是能夠求出使這一似然函式的值最大的引數估計。於是,最大似然估計的關鍵就是求出引數clip_image034

,使上式取得最大值。

對上述函式求對數

   (1.8)

上式稱為對數似然函式。為了估計能使clip_image038取得最大的引數clip_image034[1]的值。

對此函式求導,得到p+1個似然方程。

           (1.9)

,j=1,2,..,p.—–p為獨立向量個數

 上式稱為似然方程。為了解上述非線性方程,應用牛頓-拉斐森(Newton-Raphson)方法進行迭代求解

1.3 牛頓-拉斐森迭代法

  對clip_image038[1]求二階偏導數,即Hessian矩陣為

clip_image045

clip_image047                                          (1.10)

如果寫成矩陣形式,以H表示Hessian矩陣,X表示

clip_image049                                                  (1.11)

                         (1.12)

clip_image053。再令clip_image055(注:前一個矩陣需轉置),即似然方程的矩陣形式。

牛頓迭代法的形式為

clip_image057                                                 (1.13)

注意到上式中矩陣H為對稱正定的,求解clip_image059為求解線性方程HX=U中的矩陣X。對H進行cholesky分解。

最大似然估計的漸近方差(asymptotic variance)和協方差(covariance)可以由資訊矩陣(information matrix)的逆矩陣估計出來。而資訊矩陣實際上是clip_image038[2]二階導數的負值,表示為clip_image062。估計值的方差和協方差表示為clip_image064,也就是說,估計值clip_image066的方差為矩陣I的逆矩陣的對角線上的值,而估計值clip_image066[1]clip_image068的協方差(clip_image066[1]clip_image068的協方差等於clip_image062?不解。。。)為除了對角線以外的值。然而在多數情況,我們將使用估計值clip_image066[2]的標準方差,表示為

clip_image070,for j=0,1,2,…,p                        (1.14)

———————————————————————————————————————————————–

.顯著性檢驗

下面討論在邏輯迴歸模型中自變數clip_image072是否與反應變數顯著相關的顯著性檢驗。零假設clip_image074clip_image076=0(表示自變數clip_image072[1]對事件發生可能性無影響作用)。如果零假設被拒絕,說明事件發生可能性依賴於clip_image072[2]的變化。

2.1 Wald test

對迴歸係數進行顯著性檢驗時,通常使用Wald檢驗,其公式為

clip_image078 (2.1)

其中, clip_image080clip_image082的標準誤差。這個單變數Wald統計量服從自由度等於1的clip_image084分佈。

  如果需要檢驗假設clip_image074[1]clip_image086=0,計算統計量

clip_image088 (2.2)

其中,clip_image090為去掉clip_image092所在的行和列的估計值,相應地,clip_image094為去掉clip_image092[1]所在的行和列的標準誤差。這裡,Wald統計量服從自由度等於p的clip_image084[1]分佈。如果將上式寫成矩陣形式,有

clip_image097 (2.3)

矩陣Q是第一列為零的一常數矩陣。例如,如果檢驗clip_image099,則clip_image101

  然而當迴歸係數的絕對值很大時,這一系數的估計標準誤就會膨脹,於是會導致Wald統計值變得很小,以致第二類錯誤的概率增加。也就是說,在實際上會導致應該拒絕零假設時卻未能拒絕。所以當發現迴歸係數的絕對值很大時,就不再用Wald統計值來檢驗零假設,而應該使用似然比檢驗來代替。

2.2 似然比(Likelihood ratio test)檢驗

  在一個模型裡面,含有變數clip_image103與不含變數clip_image103[1]的對數似然值乘以-2的結果之差,服從clip_image106分佈。這一檢驗統計量稱為似然比(likelihood ratio),用式子表示為

clip_image108 (2.4)

計算似然值採用公式(1.8)。

倘若需要檢驗假設clip_image074[2]clip_image086[1]=0,計算統計量

    (2.5)

式中,clip_image112表示clip_image114=0的觀測值的個數,而clip_image116表示clip_image114[1]=1的觀測值的個數,那麼n就表示所有觀測值的個數了。實際上,上式的右端的右半部分clip_image118表示只含有clip_image120的似然值。統計量G服從自由度為p的clip_image106[1]分佈

2.3 Score檢驗

  在零假設clip_image074[3]clip_image076[1]=0下,設引數的估計值為clip_image122,即對應的clip_image076[2]=0。計算Score統計量的公式為

clip_image124          (2.6)

上式中,clip_image126表示在clip_image076[3]=0下的對數似然函式(1.9)的一價偏導數值,而clip_image128表示在clip_image076[4]=0下的對數似然函式(1.9)的二價偏導數值。Score統計量服從自由度等於1的clip_image084[2]分佈。

2.4 模型擬合資訊

  模型建立後,考慮和比較模型的擬合程度。有三個度量值可作為擬合的判斷根據。

(1)-2LogLikelihood

    (2.7)

(2) Akaike資訊準則(Akaike Information Criterion,簡寫為AIC)

clip_image132 (2.8)

 其中K為模型中自變數的數目,S為反應變數類別總數減1,對於邏輯迴歸有S=2-1=1。-2LogL的值域為0至clip_image134,其值越小說明擬合越好。當模型中的引數數量越大時,似然值也就越大,-2LogL就變小。因此,將2(K+S)加到AIC公式中以抵銷引數數量產生的影響。在其它條件不變的情況下,較小的AIC值表示擬合模型較好。

(3)Schwarz準則

  這一指標根據自變數數目和觀測數量對-2LogL值進行另外一種調整。SC指標的定義為

clip_image136 (2.9)

其中ln(n)是觀測數量的自然對數。這一指標只能用於比較對同一資料所設的不同模型。在其它條件相同時,一個模型的AIC或SC值越小說明模型擬合越好。

3.迴歸係數解釋

3.1發生比

odds=[p/(1-p)]clip_image138,即事件發生的概率與不發生的概率之比。而發生比率(odds ration),即clip_image140

(1)連續自變數。對於自變數clip_image072[3],每增加一個單位,odds ration為

clip_image143 (3.1)

(2)二分類自變數的發生比率。變數的取值只能為0或1,稱為dummy variable。當clip_image072[4]取值為1,對於取值為0的發生比率為

clip_image145 (3.2)

亦即對應係數的冪。

(3)分類自變數的發生比率。

如果一個分類變數包括m個類別,需要建立的dummy variable的個數為m-1,所省略的那個類別稱作參照類(reference category)。設dummy variable為clip_image072[5],其係數為clip_image076[5],對於參照類,其發生比率為clip_image148

3.2 邏輯迴歸係數的置信區間

  對於置信度1-clip_image150,引數clip_image076[6]的100%(1-clip_image150[1])的置信區間為

clip_image154 (3.3)

  上式中,clip_image156為與正態曲線下的臨界Z值(critical value), clip_image158為係數估計clip_image160的標準誤差,clip_image162clip_image164兩值便分別是置信區間的下限和上限。當樣本較大時,clip_image150[2]=0.05水平的係數clip_image160[1]的95%置信區間為

clip_image168 (3.4)

———————————————————————————————————————————————–

4.變數選擇

4.1前向選擇(forward selection):在截距模型的基礎上,將符合所定顯著水平的自變數一次一個地加入模型。

  具體選擇程式如下

(1) 常數(即截距)進入模型。

(2) 根據公式(2.6)計算待進入模型變數的Score檢驗值,並得到相應的P值。

(3) 找出最小的p值,如果此p值小於顯著性水平clip_image170,則此變數進入模型。如果此變數是某個名義變數的單面化(dummy)變數,則此名義變數的其它單面化變理同時也進入模型。不然,表明沒有變數可被選入模型。選擇過程終止。

(4) 回到(2)繼續下一次選擇。

4.2 後向選擇(backward selection):在模型包括所有候選變數的基礎上,將不符合保留要求顯著水平的自變數一次一個地刪除。

具體選擇程式如下

(1) 所有變數進入模型。

(2) 根據公式(2.1)計算所有變數的Wald檢驗值,並得到相應的p值。

(3) 找出其中最大的p值,如果此P值大於顯著性水平clip_image172,則此變數被剔除。對於某個名義變數的單面化變數,其最小p值大於顯著性水平clip_image172[1],則此名義變數的其它單面化變數也被刪除。不然,表明沒有變數可被剔除,選擇過程終止。

(4) 回到(2)進行下一輪剔除。

4.3逐步迴歸(stepwise selection)

(1)基本思想:逐個引入自變數。每次引入對Y影響最顯著的自變數,並對方程中的老變數逐個進行檢驗,把變為不顯著的變數逐個從方程中剔除掉,最終得到的方程中既不漏掉對Y影響顯著的變數,又不包含對Y影響不顯著的變數。

(2)篩選的步驟:首先給出引入變數的顯著性水平clip_image170[1]和剔除變數的顯著性水平clip_image172[2],然後按下圖篩選變數。

(3)逐步篩選法的基本步驟

逐步篩選變數的過程主要包括兩個基本步驟:一是從不在方程中的變數考慮引入新變數的步驟;二是從迴歸方程中考慮剔除不顯著變數的步驟。

假設有p個需要考慮引入迴歸方程的自變數.

① 設僅有截距項的最大似然估計值為clip_image175。對p個自變數每個分別計算Score檢驗值,

設有最小p值的變數為clip_image177,且有clip_image179,對於單面化(dummy)變數,也如此。若clip_image181,則此變數進入模型,不然停止。如果此變數是名義變數單面化(dummy)的變數,則此名義變數的其它單面化變數也進入模型。其中clip_image183為引入變數的顯著性水平。

② 為了確定當變數clip_image177[1]在模型中時其它p-1個變數也是否重要,將clip_image186分別與clip_image177[2]進行擬合。對p-1個變數分別計算Score檢驗值,其p值設為clip_image188。設有最小p值的變數為clip_image190,且有clip_image192.若clip_image194,則進入下一步,不然停止。對於單面化變數,其方式如同上步。

③ 此步開始於模型中已含有變數clip_image177[3]clip_image190[1]。注意到有可能在變數clip_image190[2]被引入後,變數clip_image177[4]不再重要。本步包括向後刪除。根據(2.1)計算變數clip_image177[5]clip_image190[3]的Wald檢驗值,和相應的p值。設clip_image196為具有最大p值的變數,即clip_image198=max(clip_image188[1]),clip_image201.如果此p值大於clip_image203,則此變數從模型中被刪除,不然停止。對於名義變數,如果某個單面化變數的最小p值大於clip_image203[1],則此名義變數從模型中被刪除。

④ 如此進行下去,每當向前選擇一個變數進入後,都進行向後刪除的檢查。迴圈終止的條件是:所有的p個變數都進入模型中或者模型中的變數的p值小於clip_image172[3],不包含在模型中的變數的p值大於clip_image183[1]。或者某個變數進入模型後,在下一步又被刪除,形成迴圈。