評分卡的建立方法——分箱、WOE、IV、分值分配
本文主要講“變數選擇”“模型開發”“評分卡建立和刻度”
變數分析
首先,需要確定變數之間是否存在共線性,若存在高度相關性,只需儲存最穩定、預測能力最高的那個。需要通過 VIF(variance inflation factor)也就是 方差膨脹因子進行檢驗。
變數分為連續變數和分類變數。在評分卡建模中,變數分箱(binning)是對連續變數離散化(discretization)的一種稱呼。要將logistic模型轉換為標準評分卡的形式,這一環節是必須完成的。信用評分卡開發中一般有常用的等距分段、等深分段、最優分段。
單因子分析,用來檢測各變數的預測強度,方法為WOE、IV;
WOE
WOE(weight of Evidence)字面意思證據權重,對分箱後的每組進行。假設good為好客戶(未違約),bad為壞客戶(違約)。
WOEi=ln(pgoodpbad)=ln(good佔比bad佔比)=ln(#goodi#goodT#badi#badT)
#good(i)表示每組中標籤為good的數量,#good(T)為good的總數量;bad相同。
IV
IV(information value)衡量的是某一個變數的資訊量,公式如下:
IV=∑i=1N(good佔比−bad佔比)∗WOEi
N為分組的組數;
IV可用來表示一個變數的預測能力。
IV | 預測能力 |
---|---|
<0.03 | 無預測能力 |
0.03~0.09 | 低 |
0.1~0.29 | 中 |
0.3~0.49 | 高 |
>=0.5 | 極高 |
根據IV值來調整分箱結構並重新計算WOE和IV,直到IV達到最大值,此時的分箱效果最好。
分組一般原則
- 組間差異大
- 組內差異小
- 每組佔比不低於5%
- 必須有好、壞兩種分類
舉例說明
例如按年齡分組,一般進行分箱,我們都喜歡按照少年、青年、中年、老年幾大類進行分組,但效果真的不一定好:
Age | good | bad | WOE |
---|---|---|---|
<18 | 50 | 40 |
ln(50/33040/220)=−0.182321556793955 |
18~30 | 100 | 60 |
ln(100/33060/220)=0.105360515657826 |
30~60 | 100 | 80 |
ln(100/33080/220)=−0.182321556793955 |
>60 | 80 | 40 |
ln(80/33040/220)=0.287682072451781 |
ALL | 330 | 220 |
IV=(50330−40220)∗ln(50/33040/220)+(100330−60220)∗ln(100/33060/220)+(100330−80220)∗ln(100/33080/220)+(80330−40220)∗ln(80/33040/220)=0.0372027069982804
根據IV值可以看出,預測能力低,建議重新調整分箱。
建立模型
先進行資料劃分,一般70%訓練集、30%測試集。訓練集用於訓練模型,測試集用於檢測訓練後的模型。
一般採用Logistic Regression建立模型,訓練模型。將建好的模型對待測樣本進行預測。
評分卡
評分卡計算方法
odds為good使用者概率(p)與bad使用者概率(1-p)的比值。
odds=p1−p
評分卡設定的分值刻度可以通過將分值表示為比率對數的現行表示式來定義。公式如下:
score總=A+B∗ln(odds)
注:若odds是 壞客戶概率好客戶概率,odds應取倒數,再經過ln轉換則B前面是減號。所以有的地方此公式B前為負號。
設定比率為θ0
(也就是odds)的特定點分值為P0,比率為2θ0的點的分值為P0+PDO
。帶入上面公式可得到:
{P0P0+PDO=A+Bln(θ0)=A+Bln(2θ0)
求解上述公式,可以得到A、B值:
{BA=PDOln2=P0−Bln(θ0)
P0
和 PDO 的值都是已知常數,可計算出A、B值帶入score公式,得到不同θ0下的評分卡分值。
而θ0也就是odds,可由Logistic Regression模型評估的結果 p
計算得到。
到這個地方,一個樣本的評分結果已經計算得到。
分值分配
在實際的應用中,我們會計算出每個變數的各分箱對應的分值。新使用者產生時,對應到每個分箱的值,將這些值相加,最後加上初始基礎分,得到最終的結果。
如果使用者某個變數發生改變,由一個分箱變成另一個,只需將更新後所在分箱的值做替換,再重新相加即可得到新的總分。
我們都知道,假設模型結果為p,根據Logistic Regression計算公式有:
p=11+e−θTx
經過轉換得到
ln(p1−p)=θTx
所以
score總=A+B∗(θTx)=A+B∗(w0+w1x1+···+wnxn)=(A+B∗w0)+B∗w1x1+···+B∗wnxn
這裡w1,w2,...,wn是Logistic Regression中的x1,x2,...,xn的係數。
(A+B∗w0)為基礎分數,B∗w1x1,···,B∗wnxn為每個變數對應分配到的分數。
之前步驟中每個變數都有進行分箱操作,分為若干類。所以下一步的話,把每個變數對應的分數,分別乘以變數中每個分箱的WOE,得到每個分箱的評分結果。
變數 | 分箱類別 | 分值 |
---|---|---|
基礎分數 | - | (A+B∗w0) |
x1 |
1 2 … i |
(B∗w1)∗WOE11 |
(B∗w1)∗WOE12
···
(B∗w1)∗WOE1i
x2 |
1 2 … j |
(B∗w2)∗WOE21 |
(B∗w2)∗WOE22
···
(B∗w2)∗WOE2j
··· | ··· | ··· |
xn |
1 2 … k |
(B∗wn)∗WOEn1 |
(B∗wn)∗WOEn2
···
(B∗wn)∗WOEnk
以上步驟都完成後,假如新產生一個使用者,我們只需將此使用者每個變數對應到各分箱中得到其對應的WOE值,再根據上面的公式計算出這個樣本在每個變數下的分數。最後將所有變數對應的分數相加,即為最終評分結果。
最後說一下,特徵選擇方面,並不是維度越多越好。一個評分卡中,一般不超過15個維度。可根據Logistic Regression模型係數來確定每個變數的權重,保留權重高的變數。相關係數大於0.7的變數一般只保留一個。