信貸評分卡--開發流程篇

一、評分卡介紹

信用評分是通過統計模型對潛在客戶和已有客戶在貸款時的風險通過打分的方式進行評估的一種方法。比如:年齡變量,25歲以下打分120,25-35歲打分150,35-50歲打分180,50歲以上則打分150。通過對申請人特徵打分,相加之和再進行決策。評分卡模型建立可做多種決策,如:是否同意放款;是否同意其提升信用額度;給其發放哪一種信用卡;以及客戶逾期後,如何催討。

 評分卡開發流程:

  1. 數據收集
  2. 數據準備
  3. 變量篩選
  4. 粗分類
  5. 模型開發
  6. 模型驗證(很重要!很多模型開發好後,並不代表是好的模型)
  7. 評分卡拉伸
  8. 部署模型

模型部署完成後,不代表項目就可以安枕無憂了,後續要需要做模型的監控,隨着時間的推移(因爲市場的變動,又或者黑中介對模型的檢測),模型的表現力會慢慢的的下降。

二、數據收集

數據收集分爲:內部數據源和外部數據源。內部數據源:①、申請數據(Application Data):身份證、年齡三要素等;②、行爲數據(Behavioural Data):貸款後還款情況等。外部數據源:芝麻分、同盾分等第三方大數據。

                                                                                          數據收集流程
第一階段 原始數據(Origination):貸前收集的申請數據
第二階段 行爲數據(Behaviour):用戶還款歷史、產品使用情況
第三階段 催收數據(Collection):逾期的客戶的行爲數據,推測成爲呆賬壞賬的概率

根據數據的收集流程,我們也可以將評分卡分爲三類卡:A卡、B卡、C卡

               評分卡名稱                                                                     評分卡概述
A卡(Application scorecard) 貸前審批階段對借款申請人的量化評估
B卡 (Behaviour scorecard) 貸後管理,通過借款人的還款行爲,及其他維度,預測借款人未來的還款能力和意願
C卡(Collection scorecard) 催收管理,借款人當前逾期前提下,預測該筆貸款未來變爲壞賬的概率,由此衍生出:滾動率、還款率、失聯率等細分模型

 注意:不同的產品要開發不同的評分卡,數據不能混合着用。(比如:信用貸和抵押貸產品對逾期寬容程度是不同的,開發抵押貸產品C卡時,不能將信用貸數據並在一起開發。)

數據獲取方法:①、購買(同盾、聚信立、公安OCR);②、爬蟲(法院執行名單、黑名單);③、和第三方公司合作

三、數據準備

3.1. 數據準備包括:處理異常值、缺失值、定義好壞客戶、樣本量、定義樣本窗口期等。

  • 定義好壞客戶是靈活的,需要和業務線緊密溝通,一般逾期M1+(M:months,逾期超過1個月或30天以上)爲壞客戶,基本逾期M3+客戶還款率極低。但如何定義好壞客戶最重要還是要結合產品特性及業務,不同產品的逾期寬容度是不一樣的,開發模型倉促也會受到影響。
  • 樣本量多少適合做模型?這個取決於數據質量和算法選取,參考某谷歌工程師說的,模型開發訓練數據量需求是模型參數的10倍以上。如模型開發有10個維度,則需要100條數據量。亦可參考信貸行業公認經驗,1000條以上好客戶和1000條壞客戶。剛上線的模型準確率不高有可能是因爲壞客戶數太少,前期強規則和反欺詐規則過濾掉大量的壞客戶,導致模型會由偏差,這段期間模型可不做決策,用來累計收集數據。又或者我們可以先開發模型再進行測試,如果測試結果準確性高,表現力好,穩定性良好,也是一個好的模型。
  • 樣本的觀察期和表現期:①、觀察期:蒐集特徵的時間窗口,通常爲3年內;②、表現期:預估客戶表現時間段,通常6個月、12個月或18個月。觀察點不一定是哪天,可以是某個時間段。如2019年1月1日有個客戶過來申請貸款,機構用模型評估他未來1年的還款情況再決定是否貸款。那麼應該選取哪個時間段的數據來建模呢?我們要評估1年的表現期,那麼可以用2018年1月1日前貸款的客戶,在2018年至2019年還款行爲來預測他未來行爲。而2018年1月1日前貸款客戶有很多,我們可以設個觀察期3年,即可選取2015年1月1日至2018年1月1日貸款客戶的特徵(X)在2018年至2019年還款行爲(Y)建模。由此可看評分卡模型是有滯後性的,我們需要對其進行實時監控。
  • 異常值處理:在建模的時候可剔除異常值,而在分析問題和改善決策契機的時候需要保留異常值。尋找異常值的方法:①、K-mean(無監督學習方法);②、箱型圖(上下限以外的數據點即是異常值)
  • 缺失值處理方法:①、平均值填充(會帶來比較大的波動);②、中位數填充;③衆數填充(常用);④、根據現有特徵建簡單迴歸預測缺失值(複雜)。缺失值處理比較靈活,更多要根據業務知識和經驗來填充。

3.2. 變量可視化:可助於尋找特徵數據之間的關係和發現問題。

標準化繪圖公式:某分組壞客戶比例 = 某分組壞客戶數 ÷ 某分組總客戶數

年齡段 總客戶 壞客戶數 好客戶數 壞客戶比例
<21 10 5 5 0.5
21-30 2500 1000 1500 0.4
31-40 5000 1500 3500 0.3
41-50 3500 700 2800 0.2
51-60 2000 300 1700 0.15
>=60 20 2 18 0.1

(數據不是真實數據,做個例子)從上圖可看,年齡越大,逾期率越低。

四、變量篩選

變量篩選步驟(適合邏輯迴歸):1.原始變量集 —> 2.計算變量預測能力 —> 3.篩選預測能力強的變量 (數據預處理可以省掉很多步驟,可看:https://blog.csdn.net/weixin_41712808/article/details/85323417 中的特徵相關性和預處理

具體方法:①、初步篩選:iv(適合邏輯迴歸評分卡);②、第二次篩選:相關性分析

其他方法有:F score 、信息增益等

4.1. IV和WOE

公式:

  1. odds:是指某事件發生的可能性(概率)與不發生的可能性(概率)之比。  公式:odds_i=\frac{p_i}{1-p_i}  (p_i:發生i事情概率)
  2. OR :Odds rate 比值比,風險比,優勢比。其計算公式爲壞客戶組與好客戶組兩個odds之比。 公式:OR=\frac{odds_1}{odds_2}
  3. WOE:Weight of Evidence 證據權重值  公式:woe_i=ln(\frac{P_{good}}{P_{bad}})*100=ln(\frac{g_i/g_s}{b_i/b_s})*100  (i:第i組,b_i=第i組壞客戶數,b_s=總壞客戶數,g_i=第i組好客戶數,g_s=總好客戶數,P_{good},P_{bad})
  4. IV:Information Value 信息價值   公式:IV=\sum_{i}^{n}IV_i=\sum_{i}^{n}(P_{good}-P_{bad})*ln(\frac{P_{good}}{P_{bad}})

例子:計算各組年齡的woe及年齡IV值

Age good bad WOE_i IV_i
<18 50 40 ln(\frac{50/330}{40/220})*100 (\frac{50}{330}-\frac{40}{220})*ln(\frac{50/330}{40/220})
18-30 100 60 ln(\frac{100/330}{60/220})*100 (\frac{100}{330}-\frac{60}{220})*ln(\frac{100/330}{60/220})
30-60 100 80 ln(\frac{100/330}{80/220})*100 (\frac{100}{330}-\frac{80}{220})*ln(\frac{100/330}{80/220})
>60 80 40 ln(\frac{80/330}{40/220})*100 (\frac{80}{330}-\frac{40}{220})*ln(\frac{80/330}{40/220})
All 330 220   \sum_{i}^{n}IV_i=0.0372

年齡IV是將各組的IV_i相加之和,等於0.0372。根據經驗:

  • IV<0.02時,該變量對預測目標變量(預測好壞客戶)幾乎無幫助(建模時可剔除該變量)
  • 0.02 ≦ IV <0.1,該變量對預測目標變量有微弱幫助
  • 0.1 ≦ IV < 0.3,該變量對預測目標變量有一定幫助
  • 0.3 ≦ IV ≦ 0.5,該變量對預測目標變量有很大幫助
  • IV>0.5, 該變量對目標變量有過度預測傾向,應該仔細檢查是否選了和目標變量有很強因果關係的變量,再結合實際場景是否可用該變量來預測目標變量。

由例子來看,年齡這個變量用來預測是否好壞客戶有幫助的,可用做建模特徵。

拓展:從其他帖子和課程中有提到,odds和woe的關係,大多講的不是很清楚,都是說woe=ln(odds)。但我翻閱了一些資料,odds是機率,可能發生概率除以不發生概率,公式:odds=\frac{P_i}{1-P_i},前後思考和woe並無關係呀,後來找呀,發現了比值比(OR)的東西。我的推斷是這樣的,某變量分3組預測好壞客戶是否有幫助:

  好客戶(個數) 壞客戶(個數)
1組 a d C_3
2組 b e C_4
3組 c f C_5
C_1 C_2  

假設odds_1是1組好壞客戶比率,odds_2是總好壞客戶比率。

odds_1=\frac{P_{good}}{1-P_{bad}}=\frac{a/C_3}{d/C_3}=\frac{a}{d}

odds_2=\frac{P_{good}}{1-P_{bad}}=\frac{C_1/(C_1+C_2)}{C_2/(C_1+C_2)}=\frac{C_1}{C_2}

OR=\frac{odds_1}{odds_2}=\frac{a/d}{C_1/C_2}=\frac{a}{d}*\frac{C_2}{C_1}=\frac{a}{C_1}*\frac{C_2}{d}=\frac{a}{C_1}\div \frac{d}{C_2}=\frac{a/C_1}{d/C_2}

有木有發現這個結果很眼熟呢,就是我們之前寫的WOE公式,\frac{a}{C_1}就是1組好客戶佔比,\frac{d}{C_2}則是1組壞客戶佔比。so,WOE_1=ln(\frac{a/C_1}{d/C_2})*100

另一個心得:IV公式其實就是各組woe加權後累加之和。

4.2. 第二次篩選:相關性分析

變量之間相關性分析,如果兩兩之間相關性顯著,會影響模型的預測效果。我們希望選擇的變量是該變量和預測目標變量儘可能高度相關,而和其他信息維度儘可能低度相關。計算變量之間相關性有兩個方法:皮爾斯和斯皮爾曼。皮爾斯方法計算相關性準確性更高,但這個方法只適合服從正態分佈的變量,而斯皮爾曼則沒有這個要求。如果使用皮爾斯方法,還需要檢驗變量是否服從正態分佈,工作是比較繁瑣的,所以折中可以用斯皮爾曼方法。(之前寫過一篇用python處理特徵相關性,用corr函數亦可:https://blog.csdn.net/weixin_41712808/article/details/85323417

4.3. 衍生變量(組合變量)

衍生變量就是由兩個或兩個以上的變量變換所得,使得衍生出來的新變量和其他變量相關性較低,避免發生多重共線性問題。比如:我們發現年齡和收入的相關係數是0.76,相關性是較高的。而固定債務和收入比率(FOIR)和年齡相關性只有0.18,我們可以用收入和債務變量變換後的變量來代替收入和債務,從而可降低變量間相關性。

如何處理變量轉換需要由良好的領域知識和開發模型的經驗,我個人心得是,多問風控人員,和業務線緊密溝通。比如上面說的FOIR是不是很像風控員做的負債表中一個指標。

五、變量分箱

爲了信用評分模型的結果形式是可以打分的,需要將變量分類。變量分兩種:連續變量和離散變量,對連續型變量進行分段再統計學上稱爲分箱。離散型變量取值較少(如:性別只有兩類)可不需要對其處理,如果離散變量取值較多時,需要對其類別歸併,歸併方法,可以按woe值接近原則,woe相近歸一類(如:職業有很多,外科醫生和內科醫生可以歸爲一類)。

前面用IV值篩選變量,我們判斷變量對預測目標變量是否重要的同時,可以分析分箱是否合理。分箱一般遵循以下原則:

  1. 分箱數應當適中,不宜過多或過少,一般3-6個。
  2. 每個分箱數據量合理,一般是總量5%以上,且目標變量取值都有。(如:客戶量共2000條,若想要年齡20-25歲爲一段分箱,這段數據量需100條以上,且既有好客戶也有壞客戶。)
  3. 結合目標變量,分箱應該能表現出明顯的趨勢特徵,趨勢可以單調上升(或下降),亦可表現出中間低(或高),兩頭高(或低)的U(倒U)型趨勢。
  4. 鄰近的分箱woe差值較大(亦可看作,鄰近的分箱目標變量分佈差異較大)(鄰近分箱:如20-25歲,25-30歲就是鄰近的) 

從上圖可看,作圖的分箱是不合理的,而右圖是優化後的分箱。通過右圖可得違約率(woe)隨着年齡的增加而下降,但60歲以後違約率又開始上升。

分箱優化方法:①、卡方;②、kmean;③、平均法

好的分箱可以提高變量IV值,從而增大變量對目標變量的預測能力。

六、建立模型

數據處理後,我們可以終於可以進行建模了,建模的算法有很多,比如神經網絡、決策樹、邏輯迴歸等。我們這裏選用的是邏輯迴歸。Logistic迴歸常用於預測離散型目標變量,它的優點:穩定,廣泛用於評分卡開發;解釋性強,評分卡易於理解。Logistict迴歸的模型形式爲:logit(p)=\beta _0+\beta _1x_1+\beta _2x_2+......+\beta _kx_k

 

 

 

 

 

 


lz寫的《信貸評分卡》這系列博文是根據肥貓和大熊熊老師授課內容結合個人實踐經驗所得,感謝老師經驗傳授。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章