這個(gè)案例展示如何運(yùn)用 MATLAB 中自帶的 Binning Explorer 小程序來創(chuàng)建信用評級中的評分卡。用 Binning Explorer 對樣本進(jìn)行分箱操作, 創(chuàng)建圖表來展示分箱信息,并將創(chuàng)建的對象”creditscorecard”導(dǎo)出。然后利用 creditscorecard 對象,結(jié)合 Financial Toolbox 中的函數(shù)來對邏輯回歸模型進(jìn)行擬合, 為樣本進(jìn)行評分并計(jì)算違約概率(PD),然后用三個(gè)不同的指標(biāo)對評分卡模型進(jìn)行驗(yàn)證。
步驟1 將樣本數(shù)據(jù)導(dǎo)入到 MATLAB 的工作區(qū)
步驟2 將數(shù)據(jù)導(dǎo)入到 Binning Explorer 小程序
步驟3 在 Binning Explorer 中對分箱做進(jìn)一步調(diào)整
步驟4 在 Binning Explorer 中將 creditscorecard 對象導(dǎo)出
步驟5 對邏輯回歸模型進(jìn)行擬合
步驟6 檢查并調(diào)整評分卡分?jǐn)?shù)的比例
步驟7 對樣本進(jìn)行評分
步驟8 計(jì)算違約概率 PD
步驟9 用 CAP,ROC,KS 檢驗(yàn)來對信用評分卡模型進(jìn)行驗(yàn)證
◆ ◆ ◆ ◆
步驟1. 將樣本數(shù)據(jù)導(dǎo)入到 MATLAB 的工作區(qū)將保存在 CreditCardData.mat 中的數(shù)據(jù)導(dǎo)入 MATLAB 工作區(qū) (使用 Refaat 2011 的數(shù)據(jù))。 運(yùn)行代碼如下:
load CreditCardData
disp(data(1:10,:))
步驟2. 將數(shù)據(jù)導(dǎo)入到 Binning Explorer 小程序方法一, 從 MATLAB 工具欄中打開 Binning Explorer : 在 Apps 菜單下, 找到計(jì)算金融學(xué)(Computational Finance), 點(diǎn)擊 Binning Explorer 的圖標(biāo)。 方法二, 在 MATLAB 中運(yùn)行如下命令行 。 binningExplorer(更多關(guān)于啟動(dòng) Binning Explorer 小程序的信息, 參見 Start from MATLAB Command Line Using Data or an Existing creditscorecard Object.) (鏈接如下)https://ww2.mathworks.cn/help/risk/common-binning-explorer-tasks.html#startbinningexplorercommandline在 Binning Explorer 的工具欄,點(diǎn)擊 Import Data 按鈕來打開導(dǎo)入數(shù)據(jù)的窗口。
在 Step 1(第一步)下, 選擇 data 為需要導(dǎo)入的數(shù)據(jù)在 Step 2(第二步)下, 可在 Variable Type 下為每個(gè)變量指定其類型。 缺省設(shè)置下,數(shù)據(jù)的最后一列(本例中為’status’)為‘Response’, 也就是因變量。因變量的值最好的樣本(本例中為“0“)被標(biāo)記為‘Good’。 所有其它的變量被歸為因變量。此外, 在這個(gè)例子中,‘CustID’(客戶的編號)不是一個(gè)包含信息的因變量, 因此把 Variable Type 下面的‘CustID’ 對應(yīng)設(shè)為 Do not include注意
如果導(dǎo)入的數(shù)據(jù)中有一列是各個(gè)因變量的權(quán)重,那么在 Step 2 的下面, 對應(yīng)的 Variable Type , 應(yīng)在下拉菜單中選中 Weights.
如果原始數(shù)據(jù)中有部分?jǐn)?shù)據(jù)缺失,那么在 Step 2 , 將 Bin missing data 設(shè)置為 Yes.
l在 Step 3, 選擇 Monotone 作為缺省的初始化的分箱算法。點(diǎn)擊 Import Data 完成這一導(dǎo)入數(shù)據(jù)的步驟。在數(shù)據(jù)導(dǎo)入的過程中,Binning Explorer 采用我們之前選中的算法自動(dòng)的對應(yīng)每個(gè)自變量對樣本進(jìn)行分箱。每個(gè)自變量對應(yīng)的樣本分箱的結(jié)果都單獨(dú)以柱狀圖的形式顯示如下。點(diǎn)擊其中一個(gè)因變量,對應(yīng)的分箱結(jié)果的詳細(xì)信息就會(huì)在左下角的 Bin Information 以及右下角的 Predictor Information 這兩個(gè)面板中顯示出來。Binning Explorer 對應(yīng)每個(gè)自變量,都對樣本自動(dòng)進(jìn)行分箱。采用的缺省算法是“Monotone”。
該算法是針對信用評分卡最理想的算法,因?yàn)橥ㄟ^該算法得出的樣本數(shù)據(jù)的分箱結(jié)果,對應(yīng)每個(gè)分箱的 WOE(Weight of Evidence)都是盡可能(完全或近似的)呈單調(diào)線性的趨勢(線性遞增或遞減)。
在本例中各個(gè)自變量的分箱圖中可以看到 WOE 這一單調(diào)性的趨勢。我們來看一下如何對數(shù)據(jù)進(jìn)行一些初步的分析。以‘ResStatus’(居住狀況)這個(gè)類別型變量(categorical variable)為例。點(diǎn)擊 ResStatus 的分箱圖。 在 Bin Information 面板中包含了不同分箱(分組)的好樣本和壞樣本的數(shù)量和其他的分箱信息如 WOE。以“Tenant”這一分箱(樣本人的居住狀況為“租房”)為例:在租房居住的樣本中,307 個(gè)為好樣本(沒有發(fā)生過違約),167 個(gè)壞樣本(有違約記錄)好樣本與壞樣本之比(Odds)為1.8383。對于數(shù)值型的變量, 以 CustIncome 為例,點(diǎn)擊 CustIncome 的分箱圖。則 Bin Information 的面板中的數(shù)據(jù)更新為 CustIncome 的分箱信息。
步驟3. 對分箱結(jié)果進(jìn)行手動(dòng)調(diào)整以 CustAge (客戶年齡) 為例,點(diǎn)擊 CustAge 這個(gè)變量的分箱圖。注意第一組和第二組分箱(年齡為 33 歲以下,以及 33 到 37 歲)的 WOE 非常接近,第五組和第六組分箱也是類似情況。 我們認(rèn)為這兩對相鄰的分組并沒有把樣本更好的區(qū)分開來,也就是說,這樣的分組并沒有給接下來的打分操作(以便區(qū)分好樣本和壞樣本)帶來可以明顯區(qū)分的信息。因此可以將這兩對分組分別合并。
要合并第一組和第二組分箱,我們進(jìn)行如下操作:在 Binning Explorer 菜單下, 點(diǎn)擊 Manual Binning 可將當(dāng)前選中的變量 CustAge 在一個(gè)新的窗口下打開(Manual Binning: CustAge)。 您也可以直接用鼠標(biāo)雙擊對應(yīng)變量的圖來打開 Manual Binning 窗口。 用 Ctrl + 鼠標(biāo)點(diǎn)擊來同時(shí)選中要合并的分箱 1 和 2,此時(shí)兩個(gè)分箱的柱狀圖會(huì)被藍(lán)色邊框圈起來。
在 Manual Binning 菜單下, Edges 右邊的兩個(gè)文本框顯示的是將要合并的兩個(gè)分箱所涵蓋的變量的取值的范圍,本例是從 0 到 37 歲(不含37歲)。
點(diǎn)擊 Merge 將前兩個(gè)分箱合并。此時(shí)在 Overview 窗口下面的 CustAge 的圖已經(jīng)更新為了合并后的新的分箱的圖例,同時(shí)在 Bin Information 和 Predictor Information 面板下的數(shù)據(jù)也會(huì)相應(yīng)更新。
接下來,合并初始的第 4 和第 5 分箱(上面合并步驟后的第 3 和第 4 分箱,即 46~48 歲組和 48 到 58 歲組), 因?yàn)檫@兩組的 WOE 也非常接近。
變量 CustAge 的分箱圖在前面兩個(gè)合并操作后已經(jīng)更新為了新的信息。Bin Information 和 Predictor Information 這兩個(gè)面板的信息也同樣更新了。(注: Predictor Information 在合并操作后沒有變化,是因?yàn)檫@兩次操作并沒有改變具體的樣本,因此沒有影響到該面板下的四個(gè)數(shù)據(jù)統(tǒng)計(jì)的信息)對下面這些有接近的 WOE 的分箱進(jìn)行類似的合并操作:
變量 CustIncome (客戶的收入情況), 合并分箱 3、4 和5.
變量 TmWBank (在該銀行的開戶時(shí)長), 合并分箱 2 和 3.
變量 AMBalance, (賬戶平均每月盈余),合并分箱 2 和 3.
現(xiàn)在所有變量的分箱顯示的 WOE 都為近似線性單調(diào)(遞增或遞減)的趨勢。步驟4. 將 creditscorecard 對象從 Binning Explorer 導(dǎo)出到工作區(qū)在完成所有分箱的操作之后,在 Binning Explorer 菜單下,點(diǎn)擊 Export Scorecard 然后給 creditscorecard 這個(gè)對象命名。 本例中將該對象命名為“sc”保存到工作區(qū) 。步驟5. 進(jìn)行邏輯回歸擬合通過 fitmodel 函數(shù)來對WOE數(shù)據(jù)進(jìn)行邏輯回歸的擬合。 (鏈接如下)https://ww2.mathworks.cn/help/finance/creditscorecard.fitmodel.htmlfitmodel 會(huì)對訓(xùn)練集的數(shù)據(jù)樣本進(jìn)行分箱,將其轉(zhuǎn)化成相應(yīng)的 WOE 的值,并與相應(yīng)因變量的值進(jìn)行映射,(即好樣本對應(yīng)的因變量值為1)然后做線性的邏輯回歸模型的擬合。缺省設(shè)置下,fitmodel 逐一將變量進(jìn)行測試來決定是否將其納入模型中作為自變量。 代碼運(yùn)行結(jié)果如下:
sc = fitmodel(sc);
1200 observations, 1192 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 89.7, p-value = 1.42e-16
步驟6. 檢查并調(diào)整評分卡的分?jǐn)?shù)
在進(jìn)行模型擬合之后,各個(gè)變量的分箱對應(yīng)評分卡的分?jǐn)?shù)尚未按照比例進(jìn)行調(diào)整,是直接以WOE 值和模型變量的系數(shù)的乘積得來的分?jǐn)?shù)。用 displaypoints 函數(shù)可以看到評分卡上所有的分箱和對分?jǐn)?shù)。 (鏈接如下)https://ww2.mathworks.cn/help/finance/creditscorecard.displaypoints.html代碼運(yùn)行結(jié)果如下:
p1 = displaypoints(sc);
disp(p1)
用 modifybins 函數(shù)來調(diào)整對變量的每個(gè)分箱的文字描述。
評分卡的分?jǐn)?shù)通常要按照一定的比例調(diào)整并四舍五入進(jìn)行取整。可用 formatpoints 函數(shù)來進(jìn)行這些操作。 (鏈接如下)https://ww2.mathworks.cn/help/finance/creditscorecard.formatpoints.html比如,可設(shè)定達(dá)到一定好壞樣本比例(odds ratio)的分箱可以獲得的分?jǐn)?shù),以及每次該比例翻倍時(shí)候可以增加的分?jǐn)?shù)。運(yùn)行代碼如下:
步驟7. 對樣本進(jìn)行評分用 score 函數(shù)來計(jì)算訓(xùn)練集中的樣本的分?jǐn)?shù)。(鏈接如下)https://ww2.mathworks.cn/help/finance/creditscorecard.score.html也可以用該函數(shù)來計(jì)算其它樣本的分?jǐn)?shù),比如預(yù)留的用來驗(yàn)證模型的測試集樣本。該函數(shù)也可以顯示每個(gè)客戶樣本在每個(gè)自變量上所獲得的分?jǐn)?shù)。運(yùn)行代碼如下:
[Scores,Points] = score(sc);
disp(Scores(1:10))
disp(Points(1:10,:))
528.2044
554.8861
505.2406
564.0717
554.8861
586.1904
441.8755
515.8125
524.4553
508.3169
步驟8. 計(jì)算違約概率PD用 probdefault 函數(shù)來計(jì)算違約概率 pd. (鏈接如下)https://ww2.mathworks.cn/help/finance/creditscorecard.probdefault.htmlpd = probdefault(sc);定義好樣本的概率,并將好壞樣本的比率 (odds) 和對應(yīng)的評分卡分?jǐn)?shù)畫圖顯示。圖中我們可以看出,樣本的分?jǐn)?shù)與對應(yīng)的好壞樣本比(odds)相吻合,并且滿足預(yù)定義的“odds翻倍則分?jǐn)?shù)增加50“。運(yùn)行代碼如下:
步驟 9. 利用 CAP、ROC 和 Kolmogorov-Smirnov 檢驗(yàn)來驗(yàn)證信用評分卡模型Creditscorecard 這個(gè)對象支持三種驗(yàn)證方式: CAP,ROC 和 K-S 檢驗(yàn)。 更多關(guān)于這三種檢驗(yàn)方式的信息,參見 validatemodel. 運(yùn)行代碼如下:
原文標(biāo)題:實(shí)用案例 | 用 Binning Explorer 小程序創(chuàng)建評分卡
文章出處:【微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
matlab
+關(guān)注
關(guān)注
185文章
2977瀏覽量
230573 -
小程序
+關(guān)注
關(guān)注
1文章
237瀏覽量
12149
原文標(biāo)題:實(shí)用案例 | 用 Binning Explorer 小程序創(chuàng)建評分卡
文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論