信用評分卡模型分析(基於Python)--理論部分

信用風險計量體系包括主體評級模型和債項評級兩部分。主體評級和債項評級均有一系列評級模型組成,其中主體評級模型可用「四張卡」來表示,分別是A卡、B卡、C卡和F卡;債項評級模型一般按照主體的融資用途,分爲企業融資模型、現金流融資模型和項目融資模型等。 咱們主要討論主體評級模型的開發過程。

在互金公司等各類貸款業務機構中,廣泛使用信用評分,對客戶實行打分制,以期對客戶有一個優質與否的評判。主要有反欺詐評分模型和信用評分卡模型(千元左右的小額短時間貸款風控業務的重點工做是信用評分方面),針對已知用戶的每一個特徵進行打分,最後求和與閾值分數對比,以此作出判斷,生成的不一樣變量的不一樣特徵的分數體系即打分卡模型。

信用評分卡:
A卡,Application scorecard。即申請評分卡,用於貸前審批階段對借款申請人的量化評估;
B卡,Behavior scorecard。即行爲評分卡,用於貸後管理,經過借款人的還款及交易行爲,結合其餘維度的數據預測借款人將來的還款能力和意願,推測用戶是否會逾期;例如用戶在某銀行貸款後,又去其餘多家銀行申請了貸款,那能夠認爲此人資金短缺,可能還不上錢,若是再申請銀行貸款,就要慎重放款。
C卡,Collection scorecard。催收評分卡,用於催收管理,在借款人當前還款狀態爲逾期的狀況下,預測將來該筆貸款變爲壞帳的機率。
三種評分卡使用的時間不一樣,分別側重貸前、貸中、貸後(已經逾期以後);另外數據要求不一樣,A卡通常可作貸款0-1年的信用分析,B卡則是在申請人有了必定行爲後,有了較大數據進行的分析,通常爲3-5年,C卡則對數據要求更大,需加入催收後客戶反應等屬性數據。現金貸行業經過率10%至30%,首逾15%至40%,壞賬4%至15%不等,相關指標根據不一樣時期市場環境和企業風控水平浮動。另外,風控不是風險越低越好,而是要控制在一個合理水平,根據不一樣風險對客戶(額度,期限,費率)進行訂價,風險管理是手段,盈利最大化纔是目的。
不一樣的評分卡,對數據的要求和所應用的建模方法會不同。前端

 

總結下風控機審打分模型創建與分析流程:python

項目流程

典型的信用評分模型如圖1-1所示。信用風險評級模型的主要開發流程以下:
(1) 數據獲取,包括獲取存量客戶及潛在客戶的數據。存量客戶是指已經在證券公司開展相關融資類業務的客戶,包括我的客戶和機構客戶;潛在客戶是指將來擬在證券公司開展相關融資類業務的客戶,主要包括機構客戶,這也是解決證券業樣本較少的經常使用方法,這些潛在機構客戶包括上市公司、公開發行債券的發債主體、新三板上市公司、區域股權交易中心掛牌公司、非標融資機構等。
(2) 數據預處理,主要工做包括數據清洗、缺失值處理、異常值處理,主要是爲了將獲取的原始數據轉化爲可用做模型開發的格式化數據。
(3) 探索性數據分析,該步驟主要是獲取樣本整體的大概狀況,描述樣本整體狀況的指標主要有直方圖、箱形圖等。
(4) 變量選擇,該步驟主要是經過統計學的方法,篩選出對違約狀態影響最顯著的指標。主要有單變量特徵選擇方法和基於機器學習模型的方法 。
(5) 模型開發,該步驟主要包括變量分段、變量的WOE(證據權重)變換和邏輯迴歸估算三部分。
(6) 模型評估,該步驟主要是評估模型的區分能力、預測能力、穩定性,並造成模型評估報告,得出模型是否可使用的結論。
(7) 信用評分,根據邏輯迴歸的係數和WOE等肯定信用評分的方法。將Logistic模型轉換爲標準評分的形式。
(8) 創建評分系統,根據信用評分方法,創建自動信用評分系統。算法

 

 
1、 數據準備

數據方面包含借款申請人填寫的基本資料,通信錄,通話記錄和其餘運營商數據,以及在其餘第三方平臺提供的黑名單和其餘借貸平臺借貸還款數據,和app抓取的手機數據,有些還包含人行徵信,社保公積金工資銀行流水等數據,針對不一樣額度和客羣須要用戶填寫和受權的資料不同。
收集須要的數據後,經過SQL提取相關變量特徵構造建模用的寬表。後端


 
 
2、數據預處理

主要工做包括數據清洗、缺失值處理、異常值處理,主要是爲了將獲取的原始數據轉化爲可用做模型開發的格式化數據。app

3、變量分析

該步驟主要是獲取樣本整體的大概狀況,描述樣本整體狀況的指標主要有直方圖、箱形圖等。
單變量的分佈要大體呈正態分佈,纔可以知足後續分析的條件。多變量之間的相關性要儘量低。
檢查完後切分數據集,將訓練數據切分,用於檢驗dom

4、模型開發

模型方法常見的有邏輯迴歸和決策樹等,在信用評分卡中通常使用邏輯迴歸做爲主要的模型。過程主要包括變量分箱、變量的WOE(證據權重)變換和變量選擇(IV值)、邏輯迴歸估算。
(1)分類數據根據類別進行WOE變換,連續數據要先進行變量分箱再進行WOE變換。
(2)特徵處理階段主要有兩個概念:WOE和IV。
WOE(Weight of Evidence)
即證據權重,WOE是對原始自變量的一種編碼形式。要對一個變量進行WOE編碼,須要首先把這個變量進行分箱處理(也叫離散化、分箱等等,說的都是一個意思)。
分組後,對於第i組,WOE的計算公式以下:
機器學習

 
 

其中,pyi是這個組中壞客戶(此處風險模型中判別的是好壞客戶)佔全部樣本中全部壞客戶的比例,pni是這個組中好客戶佔樣本中全部好客戶的比例,#yi是這個組中壞客戶的數量,#ni是這個組中好客戶的數量,#yT是樣本中全部壞客戶的數量,#nT是樣本中全部好客戶的數量。
從這個公式中咱們能夠體會到,WOE表示的其實是「當前分組中壞客戶佔全部壞客戶的比例」和「當前分組中好客戶佔全部好客戶的比例」的差別。
對這個公式作一個簡單變換,能夠獲得:
 
 

變換之後咱們能夠看出,WOE也能夠這麼理解,他表示的是當前這個組中壞客戶和好客戶的比值,和全部樣本中這個比值的差別。這個差別是用這兩個比值的比值,再取對數來表示的。WOE越大,這種差別越大,這個分組裏的樣本是壞客戶的可能性就越大,WOE越小,差別越小,這個分組裏的樣本是壞客戶的可能性就越小。
WOE的基本特色:
a、當前分組中,壞客戶的比例越大,WOE值越大;
b、當前分組WOE的正負,由當前分組壞用戶和好用戶的比例,與樣本總體是壞用戶和好用戶的比例的大小關係決定。當前分組的比例小於樣本總體比例時,WOE爲負,變量當前取值對判斷個體是不是壞用戶起到的負向的影響;當前分組的比例大於總體比例時,WOE爲正,變量當前取值對判斷個體是不是壞用戶起到的正向的影響;當前分組的比例和總體比例相等時,WOE爲0。
分箱策略:進行分箱操做時,通常會按每一個變量的個數平均分箱,通常設置3~5組,平均分箱以後,爲了更好的適應邏輯迴歸模型,再進一步微調分段範圍使woe值儘量的保持單調性,保持單調性可使連續數據轉化爲離散時數據之間能有必定的聯繫和趨勢而不是孤立的幾個數據(另外單調從係數的正負上也反映的單變量對結果的影響趨勢),固然woe不必定要徹底遞增或者遞減,符合邏輯事實便可。另外對於沒法平均分箱的變量,好比說存在一個數值佔比很高,能夠直接參考woe單調性進行分箱。
IV (Information Value)
信息價值或信息量,用來衡量自變量的預測能力。
在用邏輯迴歸、決策樹等模型方法構建分類模型時,常常須要對自變量進行篩選。挑選入模變量過程須要考慮的因素不少,好比:變量的預測能力,變量之間的相關性,變量的簡單性(容易生成和使用),變量的強壯性(不容易被繞過),變量在業務上的可解釋性(被挑戰時能夠解釋的通)等等。其中最主要的衡量標準是變量的預測能力。
經過IV去衡量變量預測能力:假設在一個分類問題中,目標變量的類別有兩類:Y1,Y2。對於一個待預測的個體A,要判斷A屬於Y1仍是Y2,咱們是須要必定的信息的,假設這個信息總量是I,而這些所須要的信息,就蘊含在全部的自變量C1,C2,C3,……,Cn中,那麼,對於其中的一個變量Ci來講,其蘊含的信息越多,那麼它對於判斷A屬於Y1仍是Y2的貢獻就越大,Ci的信息價值就越大,Ci的IV就越大,它就越應該進入到入模變量列表中。其中計算IV值須要先求出WOE值。
IV值,計算公式以下:
 
 

有了一個變量各分組的IV值,咱們就能夠計算整個變量的IV值,方法很簡單,就是把各分組的IV相加:
 
 

其中,n爲變量分組個數。
IV的特色:
a、對於變量的一個分組,這個分組的好用戶和壞用戶的比例與樣本總體響應和未響應的比例相差越大,IV值越大,不然,IV值越小;
b、極端狀況下,當前分組的好用戶和壞用戶的比例和樣本總體的好用戶和壞用戶的比例相等時,IV值爲0;
c、IV值的取值範圍是[0,+∞),且,噹噹前分組中只包含好用戶或者壞用戶時,IV = +∞。
IV值判斷變量預測能力的標準
< 0.02: unpredictive,0.02 to 0.1: weak,0.1 to 0.3: medium,0.3 to 0.5: strong,>0.5: suspicious,通常選取大於0.02的

 

解析下IV計算公式中的(pyi-pni)

假設咱們上面所說的營銷響應模型中,還有一個變量A,其取值只有兩個:0,1,數據以下:
ide

 
 

從上表能夠看出,當變量A取值1時,其響應比例達到了90%,很是的高,可是咱們可否說變量A的預測能力很是強呢?不能。爲何呢?緣由就在於,A取1時,響應比例雖然很高,但這個分組的客戶數太少了,佔的比例過低了。雖然,若是一個客戶在A這個變量上取1,那他有90%的響應可能性,可是一個客戶變量A取1的可能性自己就很是的低。因此,對於樣本總體來講,變量的預測能力並無那麼強。咱們分別看一下變量各分組和總體的WOE,IV。
 
 

從這個表咱們能夠看到,變量取1時,響應比達到90%,對應的WOE很高,但對應的IV卻很低,緣由就在於IV在WOE的前面乘以了一個係數,而這個係數取絕對值能夠近似看作是這個分組中樣本數佔總體樣本數的大小,這個係數越小,分組數據對預測起的做用就越小。
總結
WOE其實描述了變量當前這個分組,對判斷個體是不是壞用戶(分子是壞用戶)所起到影響方向和大小,當WOE爲正時,變量當前取值對判斷個體是不是壞用戶起到的正向的影響,當WOE爲負時,起到了負向影響。而WOE值的大小,則是這個影響的大小的體現。
IV因爲乘以係數(pyi-pni),因此沒有了影響方向,只是經過大小反映變量對預測結果的貢獻大小,即衡量自變量的預測能力。
(3)利用以上的基礎,經過IV選擇變量,將自變量中的值替換成對應分組的woe值
(4)邏輯迴歸估算:將替換成woe數值以後的變量做爲訓練數據,使用邏輯迴歸算法將借款人特徵轉化爲一個標準的評分卡。當輸入這些變量的具體值的時候,能夠獲得相應的分數。
風控分類的主要模型:
 
 

 
 

其中主要用到的算法有:
 
 

 

5、模型評估

該步驟主要是評估模型的預測f分辨能力(ROC/AUC 、K-S值、GINI係數)、穩定性(PSI),並造成模型評估報告,得出模型是否可使用的結論。
(1)ROC(receiver operating characteristic curve)
ROC全稱是「受試者工做特徵」(Receiver Operating Characteristic)。ROC曲線的面積就是AUC(Area Under the Curve)。AUC用於衡量「二分類問題」機器學習算法性能。
首先看下python中評估的sklearn函數
分類模型評估:
函數

 
 

混淆矩陣,假設有一批test樣本,這些樣本只有兩種類別:正例和反例。機器學習算法預測類別以下圖(左半部分預測類別爲正例,右半部分預測類別爲反例),而樣本中真實的正例類別在上半部分,下半部分爲真實的反例。
 
 

預測值爲正例,記爲P(Positive)
預測值爲反例,記爲N(Negative)
預測值與真實值相同,記爲T(True)
預測值與真實值相反,記爲F(False)
TP:預測類別是P(正例),真實類別也是P
FP:預測類別是P,真實類別是N(反例)
TN:預測類別是N,真實類別也是N
FN:預測類別是N,真實類別是P
TP+FP=P
FN+TN=N
TP+TN=T
FP+FN=F
決策類評估——混淆矩陣指標:
正確率(Accuracy Rate):(TP+TN)/(P+N)。
召回率(靈敏度,TPR,True Positive Rate):TP/(TP+FN)。在全部實際是正樣本中有多少被正確識別爲正樣本。
查準率(命中率,Precision Rate):TP/P。被識別成正樣本的樣本中有多少是真的正樣本。欺詐分析中,命中率(不低於20%),看模型預測識別的能力。
誤報率(FPR,False Positive Rate):FP/(FP+TN)。在全部實際爲負樣本中有多少被錯誤識別爲正樣本。
排序類評估——ROC指標:
還有一個概念叫」截斷點」。機器學習算法對test樣本進行預測後,能夠輸出各test樣本對某個類別的類似度機率。好比t1是P類別的機率爲0.3,通常咱們認爲機率低於0.5,t1就屬於類別N。這裏的0.5,就是」截斷點」。
總結一下,對於計算ROC,最重要的三個概念就是TPR, FPR, 截斷點。
截斷點取不一樣的值,TPR和FPR的計算結果也不一樣。將截斷點不一樣取值下對應的TPR和FPR結果畫於二維座標系中獲得的曲線,就是ROC曲線。橫軸用FPR表示,以TPR爲縱座標,而曲線下方的面積就是AUC(Area Under Curve)。
ROC曲線,好比圖中的A點。A點對應的是,給定一個劃分好壞客戶的分數線(好比600分以上是好人),而後使用這個模型進行預測。預測的結果是,實際上爲壞客戶且預測結果是壞客戶的機率是0.8,而實際是好客戶卻被預測爲壞客戶的機率是0.1。因爲咱們能夠設定不一樣的分數線,所以經過這種方式能夠產生不一樣的點,這些點也就連成了ROC曲線。
 
 

按照上面的理解,那咱們確定但願被準確預測爲壞人的機率越高越好,而被誤判爲好人的機率越低越好,因此一個越好的分類模型,ROC曲線越接近左上方,AUC也愈來愈接近1;反之,若是這個分類模型得出的結果基本上至關於隨機猜想,那麼畫出的圖像就很接近於左下角和右上角的對角線(即圖中標註的「random chance」),那麼這個模型也就沒什麼意義了。
 
ROC圖

 

AUC=A+C
(2)K-S值
性能

 
 

在完成一個模型後,將測試模型的樣本平均分紅10組,以好樣本佔比降序從左到右進行排列,其中第一組的好樣本佔比最大,壞樣本佔比最小。這些組別的好壞樣本佔比進行累加後獲得每一組對應的累計的佔比。好壞樣本的累計佔比隨着樣本的累計而變化(圖中Good/Bad兩條曲線),而二者差別最大時就是咱們要求的K-S值
KS值的取值範圍是[0,1]。一般來講,值越大,代表正負樣本區分的程度越好。通常,KS值>0.2就可認爲模型有比較好的預測準確性。
(3)GINI係數
 
 

使用洛倫茨曲線,能夠描述預期違約客戶的分佈。
對於基尼係數,例如將一個國家全部的人口按最貧窮到最富有進行排列,隨着人數的累計,這些人口所擁有的財富的比例也逐漸增長到100%,按這個方法獲得圖中的曲線,稱爲洛倫茲曲線。基尼係數就是圖中A/B的比例。能夠看到,假如這個國家最富有的那羣人佔據了越多的財富,貧富差距越大,那麼洛倫茨曲線就會越彎曲,基尼係數就越大。
一樣的,假設咱們把100我的的信用評分按照從高到低進行排序,以橫軸爲累計人數比例,縱軸做爲累計壞樣本比例,隨着累計人數比例的上升,累計壞樣本的比例也在上升。若是這個評分的區分能力比較好,那麼越大比例的壞樣本會集中在越低的分數區間,整個圖像造成一個凹下去的形狀。因此洛倫茲曲線的弧度越大,基尼係數越大,這個模型區分好壞樣本的能力就越強。
在ROC圖中,GINI=A/(A+B)=A/C=(A+C)/C-1=AUC/C-1
其中,C=1/2 因此, GINI=2AUC-1
(4)PSI
羣體穩定性指標(population stability index),
公式: psi = sum((實際佔比-預期佔比)* ln(實際佔比/預期佔比))
舉個例子解釋下,好比訓練一個logistic迴歸模型,預測時候會有個機率輸出p。你測試集上的輸出設定爲p1吧,將它從小到大排序後10等分,如0-0.1,0.1-0.2,......。
如今用這個模型去對新的樣本進行預測,預測結果叫p2,按p1的區間也劃分爲10等分。
實際佔比就是p2上在各區間的用戶佔比,預期佔比就是p1上各區間的用戶佔比。
意義就是若是模型跟穩定,那麼p1和p2上各區間的用戶應該是相近的,佔比不會變更很大,也就是預測出來的機率不會差距很大。
通常認爲psi小於0.1時候模型穩定性很高,0.1-0.25通常,大於0.25模型穩定性差,建議重作。

 

6、模型監控

模型監控與模型效果評測同樣,也是從兩個方面去監控,一是有效性,主要看過件樣本在後續的逾期表現,這種逾期不須要和建模樣本那麼嚴格,能夠放鬆一些。二是穩定性,一樣是變量穩定性和模型穩定性,評測的方式與模型效果評價部分相似。監測能夠分爲前端、後端監控。


 
 

(1)前端監控,授信以前,別的客戶來了,這個模型能不能用?
長期使用的模型,其中的變量必定不能波動性較大。
好比,收入這個指標,雖然很重要,可是波動性很大,不適合用在長期建模過程當中。若是硬要把收入放到模型之中,能夠改爲收入的百分位制(排名)。
(2)後端監控,建模授信以後,打了分數,看看一年以後,分數是否發生了改變。
主要監控模型的正確性以及變量選擇的有效性。出現了不平滑的問題,須要從新考慮


 
 
 
總結:
本文主要介紹了信用評分模型開發過程當中的數據預處理、探索性分析和變量選擇。數據預處理主要針對缺失值用隨機森林法和直接剔除法進行處理,對於異常值主要根據實際狀況和箱形圖的數據分佈,對異常值進行剔除;探索性分析主要對各變量的分佈狀況進行初始的探究;變量選擇主要考慮了變量的分箱方法,根據分箱結果計算WOE值,而後檢查變量之間的相關性,根據各變量的IV值來選擇對數據處理有好效果的變量。
接下來會基於python進行信用評分模型的模型開發、模型評估和信用評分等。




相關文章
相關標籤/搜索