温岭新站seo,国外好用的网站,网站首页页面,企业管理10大系统这个案例展示如何运用 MATLAB 中自带的 Binning Explorer 小程序来创建信用评级中的评分卡。
用 Binning Explorer 对样本进行分箱操作, 创建图表来展示分箱信息#xff0c;并将创建的对象”creditscorecard”导出。
然后利用 creditscorecard 对象#xff0c;结合 Financi…
这个案例展示如何运用 MATLAB 中自带的 Binning Explorer 小程序来创建信用评级中的评分卡。
用 Binning Explorer 对样本进行分箱操作, 创建图表来展示分箱信息并将创建的对象”creditscorecard”导出。
然后利用 creditscorecard 对象结合 Financial Toolbox™ 中的函数来对逻辑回归模型进行拟合, 为样本进行评分并计算违约概率(PD)然后用三个不同的指标对评分卡模型进行验证。 步骤1 将样本数据导入到 MATLAB 的工作区 步骤2 将数据导入到 Binning Explorer 小程序 步骤3 在 Binning Explorer 中对分箱做进一步调整 步骤4 在 Binning Explorer 中将 creditscorecard 对象导出 步骤5 对逻辑回归模型进行拟合 步骤6 检查并调整评分卡分数的比例 步骤7 对样本进行评分 步骤8 计算违约概率 PD 步骤9 用 CAPROCKS 检验来对信用评分卡模型进行验证
◆ ◆ ◆ ◆
步骤1. 将样本数据导入到 MATLAB 的工作区
将保存在 CreditCardData.mat 中的数据导入 MATLAB® 工作区 (使用 Refaat 2011 的数据). 运行代码如下:
load CreditCardDatadisp(data(1:10,:)) 步骤2. 将数据导入到 Binning Explorer 小程序
方法一, 从 MATLAB 工具栏中打开 Binning Explorer : 在 Apps 菜单下, 找到计算金融学(Computational Finance), 点击 Binning Explorer 的图标.
方法二, 在 MATLAB 中运行如下命令行 .
binningExplorer
(更多关于启动 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 的工具栏点击 Import Data 按钮来打开导入数据的窗口. 在 Step 1第一步下, 选择 data 为需要导入的数据
在 Step 2第二步下, 可在 Variable Type 下为每个变量指定其类型. 缺省设置下数据的最后一列(本例中为’status’)为‘Response’, 也就是因变量。因变量的值最好的样本本例中为“0“被标记为Good. 所有其它的变量被归为因变量。此外 在这个例子中CustID客户的编号不是一个包含信息的因变量, 因此把 Variable Type 下面的CustID 对应设为 Do not include 注意 如果导入的数据中有一列是各个因变量的权重那么在 Step 2 的下面, 对应的 Variable Type , 应在下拉菜单中选中 Weights. 关于在creditscorecard 对象中应用样本的权重, 参见 Credit Scorecard Modeling Using Observation Weights (链接如下). https://ww2.mathworks.cn/help/finance/credit-scorecard-using-weights.html
如果原始数据中有部分数据缺失那么在 Step 2 , 将 Bin missing data 设置为 Yes. 关于这部分的更详尽信息参见 Credit Scorecard Modeling with Missing Values (链接如下).
https://ww2.mathworks.cn/help/finance/credit-scorecard-modeling-with-missing-values.html
在 Step 3, 选择 Monotone 作为缺省的初始化的分箱算法。
点击 Import Data 完成这一导入数据的步骤。在数据导入的过程中Binning Explorer 采用我们之前选中的算法自动的对应每个自变量对样本进行分箱。
每个自变量对应的样本分箱的结果都单独以柱状图的形式显示如下。点击其中一个因变量对应的分箱结果的详细信息就会在左下角的 Bin Information 以及右下角的 Predictor Information 这两个面板中显示出来。 Binning Explorer 对应每个自变量都对样本自动进行分箱。采用的缺省算法是“Monotone”。该算法是针对信用评分卡最理想的算法因为通过该算法得出的样本数据的分箱结果对应每个分箱的 WOE(Weight of Evidence)都是尽可能完全或近似的呈单调线性的趋势(线性递增或递减)。在本例中各个自变量的分箱图中可以看到 WOE 这一单调性的趋势。
我们来看一下如何对数据进行一些初步的分析。以ResStatus居住状况这个类别型变量(categorical variable)为例。
点击 ResStatus 的分箱图. 在 Bin Information 面板中包含了不同分箱分组的好样本和坏样本的数量和其他的分箱信息如 WOE。以“Tenant”这一分箱(样本人的居住状况为“租房”)为例在租房居住的样本中307 个为好样本没有发生过违约167 个坏样本有违约记录好样本与坏样本之比(Odds)为1.8383。 对于数值型的变量, 以 CustIncome 为例点击 CustIncome 的分箱图。则 Bin Information 的面板中的数据更新为 CustIncome 的分箱信息。 步骤3. 对分箱结果进行手动调整
以 CustAge (客户年龄) 为例点击 CustAge 这个变量的分箱图。注意第一组和第二组分箱年龄为 33 岁以下以及 33 到 37 岁的 WOE 非常接近第五组和第六组分箱也是类似情况. 我们认为这两对相邻的分组并没有把样本更好的区分开来也就是说这样的分组并没有给接下来的打分操作以便区分好样本和坏样本带来可以明显区分的信息。因此可以将这两对分组分别合并。 要合并第一组和第二组分箱我们进行如下操作
在 Binning Explorer 菜单下, 点击 Manual Binning 可将当前选中的变量 CustAge 在一个新的窗口下打开Manual Binning: CustAge. 您也可以直接用鼠标双击对应变量的图来打开 Manual Binning 窗口. 用 Ctrl 鼠标点击来同时选中要合并的分箱 1 和 2此时两个分箱的柱状图会被蓝色边框圈起来。 在 Manual Binning 菜单下, Edges 右边的两个文本框显示的是将要合并的两个分箱所涵盖的变量的取值的范围本例是从 0 到 37 岁不含37岁。 点击 Merge 将前两个分箱合并。此时在 Overview 窗口下面的 CustAge 的图已经更新为了合并后的新的分箱的图例同时在 Bin Information 和 Predictor Information 面板下的数据也会相应更新。 接下来合并初始的第 4 和第 5 分箱上面合并步骤后的第 3 和第 4 分箱即 46~48 岁组和 48 到 58 岁组, 因为这两组的 WOE 也非常接近. 变量 CustAge 的分箱图在前面两个合并操作后已经更新为了新的信息。Bin Information 和 Predictor Information 这两个面板的信息也同样更新了。注: Predictor Information 在合并操作后没有变化是因为这两次操作并没有改变具体的样本因此没有影响到该面板下的四个数据统计的信息
对下面这些有接近的 WOE 的分箱进行类似的合并操作: 变量 CustIncome 客户的收入情况, 合并分箱 3、4 和5. 变量 TmWBank (在该银行的开户时长), 合并分箱 2 和 3. 变量 AMBalance, 账户平均每月盈余合并分箱 2 和 3.
现在所有变量的分箱显示的 WOE 都为近似线性单调递增或递减的趋势.
步骤4. 将 creditscorecard 对象从 Binning Explorer 导出到工作区
在完成所有分箱的操作之后在 Binning Explorer 菜单下点击 Export Scorecard 然后给 creditscorecard 这个对象命名. 本例中将该对象命名为“sc”保存到工作区 .
步骤5. 进行逻辑回归拟合
通过 fitmodel 函数来对WOE数据进行逻辑回归的拟合. (链接如下)
https://ww2.mathworks.cn/help/finance/creditscorecard.fitmodel.html
fitmodel 会对训练集的数据样本进行分箱将其转化成相应的 WOE 的值并与相应因变量的值进行映射即好样本对应的因变量值为1然后做线性的逻辑回归模型的拟合。缺省设置下fitmodel 逐一将变量进行测试来决定是否将其纳入模型中作为自变量. 代码运行结果如下:
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. 检查并调整评分卡的分数
在进行模型拟合之后各个变量的分箱对应评分卡的分数尚未按照比例进行调整是直接以WOE 值和模型变量的系数的乘积得来的分数。用 displaypoints 函数可以看到评分卡上所有的分箱和对分数. (链接如下)
https://ww2.mathworks.cn/help/finance/creditscorecard.displaypoints.html
代码运行结果如下
p1 displaypoints(sc);
disp(p1) 用 modifybins 函数来调整对变量的每个分箱的文字描述. (链接如下)
https://ww2.mathworks.cn/help/finance/creditscorecard.modifybins.html 评分卡的分数通常要按照一定的比例调整并四舍五入进行取整。可用 formatpoints 函数来进行这些操作. (链接如下)
https://ww2.mathworks.cn/help/finance/creditscorecard.formatpoints.html
比如可设定达到一定好坏样本比例(odds ratio)的分箱可以获得的分数以及每次该比例翻倍时候可以增加的分数。运行代码如下 步骤7. 对样本进行评分
用 score 函数来计算训练集中的样本的分数。(链接如下)
https://ww2.mathworks.cn/help/finance/creditscorecard.score.html
也可以用该函数来计算其它样本的分数比如预留的用来验证模型的测试集样本。该函数也可以显示每个客户样本在每个自变量上所获得的分数。运行代码如下
[Scores,Points] score(sc);
disp(Scores(1:10))
disp(Points(1:10,:)) 528.2044554.8861505.2406564.0717554.8861586.1904441.8755515.8125524.4553508.3169 步骤8. 计算违约概率PD
用 probdefault 函数来计算违约概率 pd. (链接如下)
https://ww2.mathworks.cn/help/finance/creditscorecard.probdefault.html
pd probdefault(sc);
定义好样本的概率并将好坏样本的比率 (odds) 和对应的评分卡分数画图显示。图中我们可以看出样本的分数与对应的好坏样本比odds相吻合并且满足预定义的“odds翻倍则分数增加50“。运行代码如下: 步骤 9. 利用 CAP、ROC 和 Kolmogorov-Smirnov 检验来验证信用评分卡模型
Creditscorecard 这个对象支持三种验证方式: CAPROC 和 K-S 检验. 更多关于这三种检验方式的信息参见 validatemodel. 运行代码如下: (链接如下)
https://ww2.mathworks.cn/help/finance/creditscorecard.validatemodel.html 免费分享一些我整理的人工智能学习资料给大家整理了很久非常全面。包括一些人工智能基础入门视频AI常用框架实战视频、图像识别、OpenCV、NLP、YOLO、机器学习、pytorch、计算机视觉、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文等。 下面是部分截图加我免费领取 目录 一、人工智能免费视频课程和项目 二、人工智能必读书籍 三、人工智能论文合集 四、机器学习计算机视觉基础算法教程 最后我想说的是自学人工智能并不是一件难事。只要我们有一个正确的学习方法和学习态度并且坚持不懈地学习下去就一定能够掌握这个领域的知识和技术。让我们一起抓住机遇迎接未来
上面这份完整版的Python全套学习资料已经上传至CSDN官方朋友如果需要可以点击链接领取
二维码详情