『金融筆記』新金融科技下,風險決策與大數據挖掘:WOE理論

【風險決策&數據挖掘】——《WOE評分卡--WOE理論》

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

『金融筆記』新金融科技下,風險決策與大數據挖掘:WOE理論

1、評分卡概述

最常見的用於信用評分的模型就是logistic迴歸,這是一種處理二分類因變量的廣義線性模型。這種模型的理論基礎比較紮實,但是對於不同的問題當然也存在一些特殊的處理方式.

由於製作評分卡的某些需要,通常會在建立評分模型時將自變量做離散化處理(等寬切割,等高切割,或者利用決策樹來切割),但是模型本身沒辦法很好地直接接受分類自變量的輸入,因此需要對自變量進行再次的處理。比較常規的做法有兩種:做dummy變量,做基於目標的變量編碼。

dummy變量是比較順其自然的操作,例如某個自變量m有3種取值分別為m1,m2,m3,那麼可以構造兩個dummy變量M1,M2:當m取m1時,M1取1而M2取0;當m取m2時,M1取0而M2取1;當m取m3時,M1取0且M2取0。這樣,M1和M2的取值就確定了m的取值。之所以不構造M3變量,是基於信息冗餘和多重共線性之類的考慮。但是,構造dummy變量也存在一些缺點,例如無法對自變量的每一個取值計算其信用得分,並且迴歸模型篩選變量時可能出現某個自變量被部分地捨棄的情況。

另一種處理分類變量的方法是基於目標對其進行編碼,在信用評分中比較常見的就是用WOE編碼。WOE叫做證據權重(Weightof Evidence),表示的其實是自變量取某個值的時候對違約比例的一種影響。

『金融筆記』新金融科技下,風險決策與大數據挖掘:WOE理論

2、WOE原理

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

數據重編碼——WOE轉換

由於製作評分卡的某些需要,通常會在建立評分模型時將自變量(連續+離散都可以)做離散化處理(等寬切割,等高切割,或者利用決策樹來切割),但是模型本身沒辦法很好地直接接受分類自變量的輸入。所以信用評分卡中常用的WOE轉換。

WOE的公式就是:WOE=ln(好客戶佔比/壞客戶佔比)*100%=優勢比

好客戶佔比=數量(x︱y=好)/總人數

例如:WOE解釋起來還蠻拗口的,先畫個表。

在這個表格中,ID就是我們考慮的某個自變量,他有三種取值。1和0分別代表了違約樣本與正常樣本的數量,最後一列就是相應的WOE。用比較複雜的中文來解釋:ID取值為A1時,計算此時違約樣本佔總體違約樣本的比例pp1,再計算此時正常樣本佔總體正常樣本的比例pp0,然後求這兩個比例的比值的自然對數ln(pp1/pp0),所得即為與A1相對應的WOE。事實上經過簡單變化,可以認為WOE衡量了自變量取Ai時的違約險算比(oddsratio)與總體違約險算比之間的某種差異。正因為如此,直觀地可以認為WOE蘊含了自變量取值對目標變量(違約概率)的某種影響,因此可以自然地將自變量重新編碼:當自變量取值Ai時,編碼為相應的WOEi。

事實上,為了理解WOE的意義,需要考慮對評分模型效果的評價。因為我們在建模時對模型自變量的所有處理工作,本質上都是為了提升模型的效果。在之前的一些學習中,我也總結了這種二分類模型效果的評價方法,尤其是其中的ROC曲線。為了描述WOE的意義,還真的需要從ROC說起。仍舊是先畫個表格。

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

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

正是基於這種視角,我們可以將“模型效果的評價”與“自變量篩選及編碼”這兩個過程統一起來。篩選合適的自變量,並進行適當的編碼,事實上就是挑選並構造出對目標變量有較高預測力(predictivepower)的自變量,同時也可以認為,由這些自變量分別建立的單變量評分模型,其模型效果也是比較好的。

就以上面這個表格為例,其中的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曲線。

可以看得出來這個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就是相應的密度值。

總結:評價評分模型的效果可以從“條件分佈函數距離”與“條件密度函數距離”這兩個角度出發進行考慮,從而分別得到AUC和IV這兩個指標。這兩個指標當然也可以用來作為篩選自變量的指標,IV似乎更加常用一些。而WOE就是IV的一個主要成分。

『金融筆記』新金融科技下,風險決策與大數據挖掘:WOE理論

3、為什麼要用WOE來對自變量做編碼呢?

主要的兩個考慮是:提升模型的預測效果,提高模型的可理解性。

首先,對已經存在的一個評分規則,例如上述的A12,A11,A14,A13,對其做各種函數變化,可以得到不同的ROC結果。但是,如果這種函數變化是單調的,那麼ROC曲線事實上是不發生變化的。因此,想要提高ROC,必須寄希望於對評分規則做非單調的變換。傳說中的NP引理證明了,使得ROC達到最優的變換就是計算現有評分的一個WOE,這似乎叫做“條件似然比”變換。

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

此處按照WOE做了逆序排列(因為WOE越大則違約概率越大),照例可以畫出ROC線。

可以看出來,經過WOE的變化之後,模型的效果好多了。事實上,WOE也可以用違約概率來代替,兩者沒有本質的區別。用WOE來對自變量做編碼的一大目的就是實現這種“條件似然比”變換,極大化辨識度。

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

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

好像似乎還沒講完,但是基本也就這些了。總結起來就是,做信用評分模型時,自變量的處理過程(包括編碼與篩選)很大程度上是基於對單變量模型效果的評價。而在這個評價過程中,ROC與IV是從不同角度考察自變量對目標變量的影響力,基於這種考察,我們用WOE值對分類自變量進行編碼,從而能夠更直觀地理解自變量對目標變量的作用效果及方向,同時提升預測效果。

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

4、、WOE轉化的優勢:提升模型的預測效果,提高模型的可理解性。

1)WOE與違約概率具有某種線性關係

從而通過這種WOE編碼可以發現自變量與目標變量之間的非線性關係(例如U型或者倒U型關係)。提升預測效果

2)WOE變量出現負值情況

在此基礎上,我們可以預料到模型擬合出來的自變量係數應該都是正數,如果結果中出現了負數,應當考慮是否是來自自變量多重共線性的影響。

3)標準化的功能。

WOE編碼之後,自變量其實具備了某種標準化的性質,也就是說,自變量內部的各個取值之間都可以直接進行比較(WOE之間的比較),而不同自變量之間的各種取值也可以通過WOE進行直接的比較。

4)WOE能反映自變量的貢獻情況。

自變量內部WOE值的變異(波動)情況,結合模型擬合出的係數,構造出各個自變量的貢獻率及相對重要性。一般地,係數越大,woe的方差越大,則自變量的貢獻率越大(類似於某種方差貢獻率),這也能夠很直觀地理解。

5)異常值處理。

很多極值變量通過WOE可以變為非異常值.

原載地址:http://blog.csdn.net/goodhuajun/article/details/39582761


分享到:


相關文章: