前面的博客有介紹過對連續的變量進行線性回歸分析,從而達到對因變量的預測或者解釋作用。那么如果因變量是離散變量呢?在做行為預測的時候通常只有“做”與“不做的區別”、“0”與“1”的區別,這是我們就要用到logistic分析(邏輯回歸分析,非線性模型)。
參數解釋(對變量的評價)
發生比(odds): ODDS=事件發生概率/事件不發生的概率=P/(1-P)
發生比率(odds ratio):odds ratio=oddsB/oddsA (組B相對於組A更容易發生的比率)
注:odds ratio大於1或者小於1都有意義,代表自變量的兩個分組有差異性,對因變量的發生概率有作用。若等於1的話,該組變量對事件發生概率沒有任何作用。
參數估計方法
線性回歸中,主要是采用最小二乘法進行參數估計,使其殘差平方和最小。同時在線性回歸中最大似然估計和最小二乘發估計結果是一致的,但不同的是極大似然法可以用於非線性模型,又因為邏輯回歸是非線性模型,所以邏輯回歸最常用的估計方法是極大似然法。
極大似然公式:L(Θ)=P(Y1)P(Y2)...p(YN) P為事件發生概率PI=1/(1+E-(α+βXI))
在樣本較大時,極大似然估計滿足相合性、漸進有效性、漸進正太性。但是在樣本觀測少於100時,估計的風險會比較大,大於100可以介紹大於500則更加充分。
模型評價
這里介紹擬合優度的評價的兩個標准:AIC准則和SC准則,兩統計量越小說明模型擬合的越好,越可信。
若事件發生的觀測有n條,時間不發生的觀測有M條,則稱該數據有n*m個觀測數據對,
在一個觀測數據對中,P>1-P,則為和諧對(concordant)。P<1-P,則為不和諧對(discordant)。P=1-P,則稱為結。
在預測准確性有一個統計量C=(NC-0.5ND+0.5T)/T,其中NC為和諧對數,ND為不和諧對數,這里我們就可以根據C統計量來表明模型的區分度,例如C=0.68,則表示事件發生的概率比不發生的概率大的可能性為0.68。
使用假設條件
①數據來自隨機樣本
②共線性敏感,自變量之間是非線性關系
③因變量只能取0、1
接下來看案例
PROC LOGISTIC DATA=EX.LOAN PLOTS(ONLY)=(EFFECT(CLBAND X=(DELINQ DEBTINC REASON)) ODDSRATIO (TYPE=HORIZONTALSTAT RANGE=CLIP)); CLASS EDUCATION(REF="college") REASON(REF="car")/PARAM=REFERENCE; MODEL BAD(EVENT="1")=DELINQ DEBTINC YROPEN EDUCATION REASON DELINQ*DEBTINC DEBTINC*EDUCATION/CLODDS=PL STB PARMLABEL; UNITS DEBTINC=5 -5; ODDSRATIO EDUCATION/DIFF=ALL CL=PL; ODDSRATIO REASON/DIFF=ALL CL=PL; TITLE "BAD LOAN MODEL"; RUN;
PROC LOGISTIC可以用的常見的選項是noprint 、plots、namelen=n 分別對應功能為:不打印結果、輸出畫圖、變量名長度為N(20~200)。其中plots語句中有ONLY表明指輸出接下來指定圖形。
后面跟着個effect選項,括號中的自選項有CLBAND和showobs指定在圖形中表明預測概率的置信區域和觀測,后面還有子選項X=變量1 變量2.....表明畫出多個自變量的預測效應圖(假設其余變量都取均值,只考慮指定自變量的因變量預測情況)。這里指定了三個變量,就會輸出三個預測效果圖。注:因變量分類大於2則effect失效。
PROC LOGISTIC的選項ODDSRATIO,后面跟着兩個子選項TYPE和range,type=horizontalstat表明圖形有段顯示發生比率和置信區間,range=clip表明圖形橫坐標的范圍是計算到的最小發生比率到最大發生比率。
語句CLASS,選項PARAM=可以去三個值:EFFECT \REFERENCE\ORDINAL,分別對應了三種不同將一個自變量分解成K-1個新變量的不同取值方法(一個變量有K個水平第 k個水平為參考水平!)三種方法的不同在於對參考水平變量取值分別去-1、0、按水平的升序取值(用於順序變量)。
選項REF=‘’的作用為指定變量中的某個取值作為參考水平。
MODEL語句有且只能有一個。這里的因變量BAD后面跟着選項event=“1”表明bad值為1時代表事件發生,此模型是計算BAD=1發生的概率。然后等號后面跟着可能進入模型的自變量,其中還有兩個交互的自變量,為了研究兩個變量是否有交互作用。
model 后面跟着選項CLODDS=表示輸出事件發生比率的執行區間(PL表示用剖面函數計算, wald表示根據wald檢驗計算,both表示兩種方法都計算一遍)。
model后面的選項STB表示對輸出標准化,此選項是針對不同變量的度量單位可能不一致作用的,標准化后能更加客觀的對比不同變量對預測因變量的作用的大小。
model后面還有選項parmlabel表明為極大似然估計的表中輸出標簽。
UNITS語句:上代碼中表示DEBTINNC的值增加或者減少5個單位時計算一次發生比率。(默認變化一個單位計算一次,變化非常微小,步長跨度大一些會更有意義)。
ODSSRATIO語句,計算某一自變量的水平相對於參考水平的發生比率,選項DIFF=ALL表示比較所有水平間的發生比率,DIFF=REF表明相對參考水平的發生比率。選項CL=WALD\PL\BOTH和上文中講的一致。
一下是輸出結果:
先輸出一些基本情況,因變量水平數,觀測數,以及頻數,重要的是以什么條件建模(BAD=1)
表一為根據兩個變量的取不同水平,創建的新變量的取值
表二為模型的擬合優度判斷,幾個統計量是用於同一數據不同模型之間的比較才有意義,這里可以暫時忽略。
表三原假設為無線性關系(全局0假設),而根據三個統計量判斷均是拒絕原假設,表示logit於自變量的線性關系顯著。
上表為變量的聯合檢驗,也成為三效應檢驗,分別表示各個自變量對模型的顯著性,即對因變量事件的發生有沒有顯著性。
以0.05的置信水平上有EDUCATION和DEBTINC*EDUCAION變量對模型沒有顯著性,其余的都有顯著性。
各個變量的參數估計包括截距的估計,還有標准化的參數估計(因為用了STB選項)。標准化后的估計值一般用來衡量不同自變量對因變量影響的大小(僅限於連續自變量,對於分類自變量標准化參數估計無意義)。還有一個統計量用於檢查參數非零的顯著性。
需要注意的是這里有兩個變量EDUCATION和REASON的不同水平單獨作為了一個變量進入模型。
注:以上是對所有變量都進行的參數估計,若在model后面再加一個選項SELECTION=FORWARD\BCKWARD\STEPWISE\SCORE指明一個模型選擇法,則最終的結果就想之前的博客中一樣,一步一步選擇變量,最終得到一個類似於上表的表,區別在於不能進如模型的變量會不存在表中,如下圖是向前選擇的最終結果:
(一下為插入別的代碼結果)
可見對變量進行篩選之后和不篩選是有區別的,一般認為篩選過的模型更加准確。
(以上為插入)
(以下為接着插入前的結果分析)
表一能衡量預測的准確性,一致部分的百分比即和觀測於預測相同的占比有85.7,不一致的有14.1,不能確定的有0.2.。比較有價值的統計量是發生比率C=0.858,表明事件發生的概率比事件不發生的概率大的可能性有0.858。證明模型的有效。
表二,由於程序用了oddsratio語句,最用對象為EDUCATION和REASON,系統對兩個變量的不同水平進行了求發生比率估計,即表二。前文說了發生比率不能等於1,而其中有兩個新變量的置信區間包含了1,說明不同水平間對於發生比是無差別的,即新變量對發生不顯著的。所以該模型中只有REASON 中BUSINESS和car兩個水平的發生比是顯著的,還有一個reason中house和business兩水平的發生比是顯著的。
還可以從圖中看出相同結果:
跟之前同理。
以上三圖為自變量的預測效應圖,分別控制別的自變量為均值或者參考水平是,單獨看指定自變量和對因變量的預測效果。DEBTINC取值越大,預測概率越大。DELINQ取值越大,預測概率越大。對於分類變量得出business的預測概率最大。