評分卡模型剖析之一(woe、IV、ROC、信息熵)

信用評分卡模型在國外是一種成熟的預測方法,尤爲在信用風險評估以及金融風險控制領域更是獲得了比較普遍的使用,其原理是將模型變量WOE編碼方式離散化以後運用logistic迴歸模型進行的一種二分類變量的廣義線性模型。html

       本文重點介紹模型變量WOE以及IV原理,爲表述方便,本文將模型目標標量爲1記爲違約用戶,對於目標變量爲0記爲正經常使用戶;ide

WOE(weight of Evidence 證據權重)其實就是自變量取某個值的時候對違約比例的一種影響函數

怎麼理解這句話呢?我下面經過一個圖標來進行說明。學習

Woe公式以下:編碼

評分卡模型剖析之一(woe、IV、ROC、信息熵)

Ageurl

#badspa

#good3d

Woeorm

0-10htm

50

200

=ln((50/100)/(200/1000))=ln((50/200)/(100/1000))

10-18

20

200

=ln((20/100)/(200/1000))=ln((20/200)/(100/1000))

18-35

5

200

=ln((5/100)/(200/1000))=ln((5/200)/(100/1000))

35-50

15

200

=ln((15/100)/(200/1000))=ln((15/200)/(100/1000))

50以上

10

200

=ln((10/100)/(200/1000))=ln((10/200)/(100/1000))

彙總

100

1000

 

    表中以age年齡爲某個自變量,因爲年齡是連續型自變量,須要對其進行離散化處理,假設離散化分爲5組(至於如何分組,會在之後專題中解釋),#bad和#good表示在這五組中違約用戶和正經常使用戶的數量分佈,最後一列是woe值的計算,經過後面變化以後的公式能夠看出,woe反映的是在自變量每一個分組下違約用戶對正經常使用戶佔比和整體違約用戶對正經常使用戶佔比之間的差別;從而能夠直觀的認爲woe蘊含了自變量取值對於目標變量(違約機率)的影響。再加上woe計算形式與logistic迴歸中目標變量的logistic轉換(logist_p=ln(p/1-p))如此類似,於是能夠將自變量woe值替代原先的自變量值;

講完WOE下面來講一下IV:

IV公式以下:

評分卡模型剖析之一(woe、IV、ROC、信息熵)

其實IV衡量的是某一個變量的信息量,從公式來看的話,至關因而自變量woe值的一個加權求和,其值的大小決定了自變量對於目標變量的影響程度;從另外一個角度來看的話,IV公式與信息熵的公式極其類似。

事實上,爲了理解WOE的意義,須要考慮對評分模型效果的評價。由於咱們在建模時對模型自變量的全部處理工做,本質上都是爲了提高模型的效果。在以前的一些學習中,我也總結了這種二分類模型效果的評價方法,尤爲是其中的ROC曲線。爲了描述WOE的意義,還真的須要從ROC提及。仍舊是先畫個表格。

評分卡模型剖析之一(woe、IV、ROC、信息熵)

數據來自於著名的German credit dataset,取了其中一個自變量來講明問題。第一列是自變量的取值,N表示對應每一個取值的樣本數,n1和n0分別表示了違約樣本數與正常樣本數,p1和p0分別表示了違約樣本與正常樣本佔各自整體的比例,cump1和cump0分別表示了p1和p0的累計和,woe是對應自變量每一個取值的WOE(ln(p1/p0)),iv是woe*(p1-p0)。對iv求和(能夠當作是對WOE的加權求和),就獲得IV(information value信息值),是衡量自變量對目標變量影響的指標之一(相似於gini,entropy那些),此處是0.666,貌似有點太大了,囧。

 

IV能夠稍後再講,首先須要有一個認識:上述過程研究了一個自變量對目標變量的影響,事實上也能夠當作是單個自變量的評分模型,更進一步地,能夠直接將自變量的取值當作是某種信用評分的得分,此時須要假設自變量是某種有序變量,也就是僅僅根據這個有序的自變量直接對目標變量進行預測

 

正是基於這種視角,咱們能夠將「模型效果的評價」與「自變量篩選及編碼」這兩個過程統一塊兒來。篩選合適的自變量,並進行適當的編碼,事實上就是挑選並構造出對目標變量有較高預測力(predictive power)的自變量,同時也能夠認爲,由這些自變量分別創建的單變量評分模型,其模型效果也是比較好的。

 

    上述過程研究了一個自變量對目標變量的影響,事實上也能夠當作是單個自變量的評分模型,更進一步地,能夠直接將自變量的取值當作是某種信用評分的得分,此時須要假設自變量是某種有序變量,也就是僅僅根據這個有序的自變量直接對目標變量進行預測。

正是基於這種視角,咱們能夠將「模型效果的評價」與「自變量篩選及編碼」這兩個過程統一塊兒來。篩選合適的自變量,並進行適當的編碼,事實上就是挑選並構造出對目標變量有較高預測力(predictive power)的自變量,同時也能夠認爲,由這些自變量分別創建的單變量評分模型,其模型效果也是比較好的。

就以上面這個表格爲例,其中的cump1和cump0,從某種角度看就是咱們作ROC曲線時候的TPR與FPR。例如,此時的評分排序爲A12,A11,A14,A13,若以A14爲cutoff,則此時的TPR=cumsum(p1)[3]/(sum(p1)),FPR=cumsum(p0)[3]/(sum(p0)),就是cump1[3]和cump0[3]。因而咱們能夠畫出相應的ROC曲線。

評分卡模型剖析之一(woe、IV、ROC、信息熵)

    能夠看得出來這個ROC不怎麼好看。以前也學習過了,ROC曲線有能夠量化的指標AUC,指的就是曲線下方的面積。這種面積其實衡量了TPR與FPR之間的距離。根據上面的描述,從另外一個角度看TPR與FPR,能夠理解爲這個自變量(也就是某種評分規則的得分)關於0/1目標變量的條件分佈,例如TPR,即cump1,也就是當目標變量取1時,自變量(評分得分)的一個累積分佈。當這兩個條件分佈距離較遠時,說明這個自變量對目標變量有較好的辨識度。  

    既然條件分佈函數可以描述這種辨識能力,那麼條件密度函數行不行呢?這就引出了IV和WOE的概念。事實上,咱們一樣能夠衡量兩個條件密度函數的距離,這就是IV。這從IV的計算公式裏面能夠看出來,IV=sum((p1-p0)*log(p1/p0)),其中的p1和p0就是相應的密度值。IV這個定義是從相對熵演化過來的,裏面仍然能夠看到x*lnx的影子。

   至此應該已經能夠總結到:評價評分模型的效果能夠從「條件分佈函數距離」與「條件密度函數距離」這兩個角度出發進行考慮,從而分別獲得AUC和IV這兩個指標。這兩個指標固然也能夠用來做爲篩選自變量的指標,IV彷佛更加經常使用一些。而WOE就是IV的一個主要成分。 

    那麼,到底爲何要用WOE來對自變量作編碼呢?主要的兩個考慮是:提高模型的預測效果,提升模型的可理解性 

    首先,對已經存在的一個評分規則,例如上述的A12,A11,A14,A13,對其作各類函數變化,能夠獲得不一樣的ROC結果。可是,若是這種函數變化是單調的,那麼ROC曲線事實上是不發生變化的。所以,想要提升ROC,必須寄但願於對評分規則作非單調的變換。傳說中的NP引理證實了,使得ROC達到最優的變換就是計算現有評分的一個WOE,這彷佛叫作「條件似然比」變換。

用上述例子,咱們根據計算出的WOE值,對評分規則(也就是第一列的value)作排序,獲得新的一個評分規則。

評分卡模型剖析之一(woe、IV、ROC、信息熵)
   此處按照WOE作了逆序排列(由於WOE越大則違約機率越大),照例能夠畫出ROC線。

評分卡模型剖析之一(woe、IV、ROC、信息熵)

    能夠看出來,通過WOE的變化以後,模型的效果好多了。事實上,WOE也能夠用違約機率來代替,二者沒有本質的區別。用WOE來對自變量作編碼的一大目的就是實現這種「條件似然比」變換,極大化辨識度。 

    同時,WOE與違約機率具備某種線性關係,從而經過這種WOE編碼能夠發現自變量與目標變量之間的非線性關係(例如U型或者倒U型關係)。在此基礎上,咱們能夠預料到模型擬合出來的自變量係數應該都是正數,若是結果中出現了負數,應當考慮是不是來自自變量多重共線性的影響。

    另外,WOE編碼以後,自變量其實具有了某種標準化的性質,也就是說,自變量內部的各個取值之間均可以直接進行比較(WOE之間的比較),而不一樣自變量之間的各類取值也能夠經過WOE進行直接的比較。進一步地,能夠研究自變量內部WOE值的變異(波動)狀況,結合模型擬合出的係數,構造出各個自變量的貢獻率及相對重要性。通常地,係數越大,woe的方差越大,則自變量的貢獻率越大(相似於某種方差貢獻率),這也可以很直觀地理解。 

總結起來就是,作信用評分模型時,自變量的處理過程(包括編碼與篩選)很大程度上是基於對單變量模型效果的評價。而在這個評價過程當中,ROC與IV是從不一樣角度考察自變量對目標變量的影響力,基於這種考察,咱們用WOE值對分類自變量進行編碼,從而可以更直觀地理解自變量對目標變量的做用效果及方向,同時提高預測效果。

這麼一總結,彷佛信用評分的建模過程更多地是分析的過程(而不是模型擬合的過程),也正所以,咱們對模型參數的估計等等內容彷佛並不作太多的學習,而把主要的精力集中於研究各個自變量與目標變量的關係在此基礎上對自變量作篩選和編碼,最終再次評估模型的預測效果,而且對模型的各個自變量的效用做出相應的評價。

 轉自:http://blog.sina.com.cn/s/blog_8813a3ae0102uyo3.html

 

R語言實現WOE轉化+變量細篩

 

R語言中有一個woe包,能夠實現WOE轉化的同時,經過WOE值進行y~x的決策樹創建,應用決策樹的重要性來進行變量細篩。

library(woe)          
IV<-iv.mult(step2_2,"y",TRUE) #原理是以Y做爲被解釋變量,其餘做爲解釋變量,創建決策樹模型
iv.plot.summary(IV)

summary(step2_3)

不能只看統計量,還要仔細的察看每一個變量的取值狀況。通常WOE建模數據是通過抽樣的,所以可能須要多建模幾回,看看不一樣的變量特徵變化,再來進行變量細篩。

相關文章
相關標籤/搜索