validatemodel

验证信用记分卡模型的质量

描述

例子

统计数据= validatemodel (sc的质量creditscorecard模型。

默认情况下,用于构建的数据creditscorecard对象。您还可以提供用于验证的输入数据。

例子

统计数据= validatemodel (sc数据的质量creditscorecard使用可选参数指定的给定数据集的模型数据

例子

统计数据T= validatemodel(sc名称,值的质量creditscorecard使用可选的名称-值对参数进行建模,并返回统计数据而且T输出。

例子

统计数据T高频= validatemodel(sc名称,值的质量creditscorecard使用可选的名称-值对参数进行建模,并返回图形句柄高频到CAP、ROC、KS地块。

例子

全部折叠

创建一个creditscorecard对象使用CreditCardData.mat文件来加载数据(使用Refaat 2011的数据集)。

负载CreditCardDataSc =信用记分卡(数据,“IDVar”“CustID”
sc = creditscorecard与属性:GoodLabel: 0 responseval: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]

使用默认选项执行自动分箱。默认情况下,autobinning使用单调算法。

Sc = autobinning(Sc);

拟合模型。

Sc = fitmodel(Sc);
1.添加CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08添加TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-063 .添加AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601。5.添加EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257。添加CustAge, Deviance = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306添加ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078。添加OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769广义线性回归模型:状态~[7个预测因子中有8项的线性公式]分布=二项式估计系数:估计SE tStat pValue ________ ________ ______ __________(拦截)0.70239 0.064001 10.975 5.0538e-28 CustAge 0.60833 0.24932 2.44 0.014687 ResStatus 1.377 0.65272 2.1097 0.034888 EmpStatus 0.88565 0.293 3.0227 0.0025055 CustIncome 0.70164 0.21844 3.2121 0.0013179 TmWBank 1.1074 0.23271 4.7589 1.9464e-06 OtherCC 1.0883 0.52912 2.0569 0.039696 AMBalance 1.045 0.32214 3.2439 0.0011792 1200观测值,1192误差自由度离散度:1 Chi^2统计与常数模型:89.7, p-value = 1.4e-16

格式化未缩放的点。

Sc = formatpoints(Sc,“PointsOddsAndPDO”, 500, 2, 50);

对数据进行评分。

分数=分数(sc);

通过生成CAP、ROC和KS图来验证信用记分卡模型。

[Stats,T] = validatemodel(sc,“阴谋”,{“帽子”“中华民国”“KS”});

disp(统计)
测量值  ________________________ _______ {' 精度比0.32258”}{ROC曲线下面积的}0.66129{“KS统计”}0.2246 499.62{“k值”}
disp (T (1:15)):
Scores ProbDefault TrueBads FalseBads TrueGoods FalseGoods Sensitivity FalseAlarm PctObs ______ ___________ ________ _________ _________ __________ ___________ __________ __________ 369.54 0.75313 01 802 397 0 0.0012453 0.00083333 378.19 0.73016 1 1 802 396 0.0025189 0.0012453 0.0016667 380.28 0.72444 2 1 802 395 0.0050378 0.0012453 0.0012453 0.0033333 395.57 0.68017 41 802 393 0.010076 0.0012453 0.0041667 396.14 0.67846 4 2 801 393 0.010076 0.0100760.0024907 0.005 396.45 0.67752 - 5 801 392 0.012594 0.0024907 0.0058333 398.61 0.67094 6 2 801 391 0.015113 0.0024907 0.0066667 398.68 0.67072 801 390 0.017632 0.0024907 0.0075 401.33 0.66255 389 801 0.020151 0.0024907 0.0083333 402.66 0.65842 8 3 800 389 0.020151 0.003736 0.0091667 404.25 0.65346 9 3 800 388 0.02267 0.003736 0.01 404.73 0.65193 9 4 799 388 0.02267 0.0049813 0.010833 405.53 0.64941 11 4 799 386 0.027708 0.0049813 0.0125 405.7 0.64887 11 5 798 386 0.027708 - 0.00622670.013333

使用CreditCardData.mat文件以载入数据(dataWeights),其中包含一个列(RowWeights)的权重(使用Refaat 2011的数据集)。

负载CreditCardData

创建一个creditscorecard的可选名称-值对参数“WeightsVar”

sc =信用记分卡(dataWeights,“IDVar”“CustID”“WeightsVar”“RowWeights”
sc = creditscorecard与属性:GoodLabel: 0 responseval: 'status' WeightsVar: 'RowWeights' VarNames: {1x12 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x12 table]

执行自动装箱。

Sc = autobinning(Sc)
sc = creditscorecard与属性:GoodLabel: 0 responseval: 'status' WeightsVar: 'RowWeights' VarNames: {1x12 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x12 table]

拟合模型。

Sc = fitmodel(Sc);
1.添加CustIncome, Deviance = 764.3187, Chi2Stat = 15.81927, PValue = 6.968927e-05添加TmWBank, Deviance = 751.0215, Chi2Stat = 13.29726, PValue = 0.0002657942加AMBalance, Deviance = 743.7581, Chi2Stat = 7.263384, PValue = 0.007037455广义线性回归模型:logit(status) ~ 1 + CustIncome + TmWBank + AMBalance分布=二项估计系数:估计SE tStat pValue ________ ________ ______ __________(拦截)0.70642 0.088702 7.964 1.6653e-15 CustIncome 1.0268 0.25758 3.9862 6.7132e-05 TmWBank 1.0973 0.31294 3.5063 0.0004543 AMBalance 1.0039 0.37576 2.6717 0.0075464 1200观测值,1196误差自由度离散度:1 Chi^2统计与常数模型:36.4,p值= 6.22e-08

格式化未缩放的点。

Sc = formatpoints(Sc,“PointsOddsAndPDO”, 500, 2, 50);

对数据进行评分。

分数=分数(sc);

通过生成CAP、ROC和KS图来验证信用记分卡模型。当可选的名称-值对参数“WeightsVar”用于指定观察(样本)权重,T表使用加权计数的统计信息、总和和累积总和。

[Stats,T] = validatemodel(sc,“阴谋”,{“帽子”“中华民国”“KS”});

统计数据
统计=4×2表测量值  ________________________ _______ {' 精度比0.28972”}{ROC曲线下面积的}0.64486{“KS统计”}0.23215 505.41{“k值”}
T (1:10,:)
ans =10×9表Scores ProbDefault TrueBads FalseBads TrueGoods FalseGoods Sensitivity FalseAlarm PctObs ______ ___________ ________ _________ _________ __________ ___________ __________ _________ 401.34 0.66253 1.0788 0 411.95 201.95 0.0053135 0 0.0017542 407.59 0.64289 4.8363 1.2768 410.67 198.19 0.023821 0.0030995 0.0099405 413.79 0.2292 6.9469 4.6942 407.25 196.08 0.034216 0.011395 0.018929 420.04 0.60236 18.459 9.3899 402.56 184.57 0.090918 0.022794 0.045285 437.27 0.544 18.459 10.514 401.43 184.570.090918 0.025523 0.047113 442.83 0.52481 18.973 12.794 399.15 184.06 0.093448 0.031057 0.051655 446.19 0.51319 22.396 14.15 397.8 180.64 0.11031 0.034349 0.059426 449.08 0.50317 24.325 14.405 397.54 178.71 0.11981 0.034968 0.062978 449.73 0.50095 28.246 18.049 393.9 174.78 0.13912 0.043813 0.075279 452.44 0.49153 31.511 23.565 388.38 171.52 0.1552 0.057204 0.089557

此示例描述当数据丢失时为缺失数据分配的点“BinMissingData”选项设置为真正的,并计算相应的模型验证统计量。

  • 训练集中缺少数据的预测器有一个显式的bin< >失踪在最后的记分卡上有相应的分数。的证据权重(WOE)值计算这些点< >失踪Bin和logistic模型系数。为了评分的目的,这些点被分配给缺失值和超出范围的值,最终的分数用于计算模型验证统计信息validatemodel

  • 训练集中没有缺失数据的预测器没有< >失踪bin,因此从训练数据中无法估计WOE。默认情况下,缺失值和超出范围值的点被设置为,这就导致了分数运行时分数.对于没有显式的预测器< >失踪Bin,使用name-value参数“失踪”formatpoints说明如何处理缺失数据以达到评分目的。最后的分数用于计算模型验证统计信息validatemodel

创建一个creditscorecard对象使用CreditCardData.mat文件来加载dataMissing缺少值。

负载CreditCardData.mat头(dataMissing, 5)
ans =5×11表CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate status ______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______ 1 53 62  Unknown 50000 55 Yes 1055.9 0.22 0 2 61 22 Home Owner Employed 52000 25 Yes 1161.6 0.24 0 3 47 30 Tenant Employed 37000 61 No 877.23 0.29 0 4 NaN 75 Home Owner Employed 53000 20 Yes 157.37 0.08 05 68 56 Home Owner Employed 53000 14 Yes 561.84 0.11 0

使用creditscorecard使用name-value参数“BinMissingData”设置为真正的将缺失的数字或类别数据收纳到单独的收纳箱内。应用自动装箱。

sc =信用记分卡(数据丢失,“IDVar”“CustID”“BinMissingData”,真正的);Sc = autobinning(Sc);disp (sc)
带属性的creditscorecard: GoodLabel: 0 responsear: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 1 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]

的最小值设置为零CustAge而且CustIncome.这样,任何消极的年龄或收入信息都变得无效或“超出范围”。对于默认计算的评分和概率,超出范围的值与缺失值给予相同的分数。

Sc = modifybins(Sc,“CustAge”“MinValue”, 0);Sc = modifybins(Sc,“CustIncome”“MinValue”, 0);

显示数值数据的bin信息“CustAge”这包括丢失的数据在一个单独的箱子标记< >失踪

Bi = bininfo(sc,“CustAge”);disp (bi)
Bin Good Bad Odds WOE InfoValue _____________ _____________ ________ __________ {'[0,33)'} 69 52 1.3269 -0.42156 0.018993 {'[33,37)'} 63 45 1.4 -0.36795 0.012839 {'[37,40)'} 72 47 1.5319 -0.2779 0.0079824 {'[40,46)'} 172 89 1.9326 -0.04556 0.0004549 {'[44,51)'} 59 25 2.36 0.15424 0.0016199 {'[44,51)'} 99 41 2.4146 0.17713 0.0035449 {'[51,58)'} 157 62 2.5323 0.22469 0.0088407 {''} 19 11 1.7273 -0.15787 0.00063885{'合计'}803 3972.0227 NaN 0.087112

显示分类数据的bin信息“ResStatus”这包括丢失的数据在一个单独的箱子标记< >失踪

Bi = bininfo(sc,“ResStatus”);disp (bi)
Bin Good Bad Odds WOE InfoValue ______________ _____________ _________ __________ {'Tenant'} 296 161 1.8385 -0.095463 0.0035249 {'Home Owner'} 352 171 2.0585 0.017549 0.00013382 {'Other'} 128 52 2.4615 0.19637 0.0055808 {''} 27 13 2.0769 0.026469 2.3248e-05 {'Totals'} 803 397 2.0227 NaN 0.0092627

“CustAge”而且“ResStatus”预测者,有缺失的数据(年代和<定义>),分箱过程估计的WOE值为-0.15787而且0.026469分别为这些预测器中缺失的数据,如上所示。

EmpStatus而且CustIncome对于缺失值,没有显式的bin,因为训练数据对于这些预测器没有缺失值。

Bi = bininfo(sc,“EmpStatus”);disp (bi)
本好不好悲哀InfoValue几率  ____________ ____ ___ ______ ________ _________ {' 未知的}396 239 1.6569 -0.19947 0.021715{“雇佣”}407 158 2.5759 0.2418 0.026323{“总数”}803 397 0.048038 2.0227南
Bi = bininfo(sc,“CustIncome”);disp (bi)
Bin Good Bad Odds WOE InfoValue _________________ ______________ _________ __________ {'[0,29000)'} 53 58 0.91379 -0.79457 0.06364 {'[29000,33000)'} 74 49 1.5102 -0.29217 0.0091366 {'[33000,35000)'} 68 36 1.8889 -0.06843 0.00041042 {'[35000,40000)'} 193 98 1.9694 -0.026696 0.00017359 {'[40000,42000)'} 68 34 2 -0.011271 1.0819e-05 {'[42000,47000)'} 164 66 2.4848 0.20579 0.0078175 {'[47000,Inf]'} 183 56 3.2679 0.47972 0.041657 NaN 0.12285

使用fitmodel利用证据权重(WOE)数据拟合逻辑回归模型。fitmodel内部将所有预测变量转换为WOE值,使用自动装箱过程中找到的箱子。fitmodel然后使用逐步方法(默认)拟合逻辑回归模型。对于缺少数据的预测器,有一个显式的< >失踪bin,并从数据中计算出相应的WOE值。当使用fitmodel,当执行WOE转换时, bin对应的WOE值将被应用。

[sc,mdl] = fitmodel(sc);
1.添加CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08添加TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-063 .添加AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601。5.添加EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257。添加CustAge, Deviance = 1442.8477, Chi2Stat = 4.4974731, PValue = 0.0339449797.添加ResStatus, Deviance = 1438.9783, Chi2Stat = 3.86941, PValue = 0.049173805。添加OtherCC, Deviance = 1434.9751, Chi2Stat = 4.0031966, PValue = 0.045414057广义线性回归模型:状态~[7个预测因子中有8项的线性公式]分布=二项估计系数:估计SE tStat pValue ________ ________ ______ __________(拦截)0.70229 0.063959 10.98 4.7498e-28 CustAge 0.57421 0.25708 2.2335 0.025513 ResStatus 1.3629 0.66952 2.0356 0.04179 EmpStatus 0.88373 0.2929 3.0172 0.002551 CustIncome 0.73535 0.2159 3.406 0.00065929 TmWBank 1.1065 0.23267 4.7556 1.9783e-06 OtherCC 1.0648 0.52826 2.0156 0.043841 AMBalance 1.0446 0.32197 3.2443 0.0011775 1200观测值,1192误差自由度离散度:1 Chi^2统计与常量模型:88.5, p-value = 2.55e-16

通过“分数、赔率和使赔率翻倍的分数(PDO)”方法缩放记分卡分数“PointsOddsAndPDO”的观点formatpoints.假设你想要500分的概率是2(好概率是坏概率的两倍),并且概率每50分翻一番(所以550分的概率是4)。

显示计分卡,显示拟合模型中保留的预测因子的缩放点。

Sc = formatpoints(Sc,“PointsOddsAndPDO”,[500 2 50]);积分信息= displaypoints(sc)
PointsInfo =38×3表预测本点  _____________ ______________ ______ {' CustAge’}{[0,33)的54.062}{‘CustAge}{[33岁,37)的56.282}{‘CustAge}{[37、40)的60.012}{‘CustAge}{[40岁,46)的69.636}{‘CustAge}{[46岁,48)的77.912}{‘CustAge}{[48, 51)的78.86}{‘CustAge}{[51岁,58)的80.83}{‘CustAge}{[58岁的Inf]的}96.76{‘CustAge}{‘失踪> <}64.984{‘ResStatus}{“租户”}62.138{‘ResStatus}{‘业主’}73.248{‘ResStatus}{‘其他’}90.828{‘ResStatus}{“失踪> <”}74.125{'EmpStatus'} {'Unknown'} 58.807 {'EmpStatus'} {'Employed'} 86.937 {'EmpStatus'} {''} NaN `

注意这些点< >失踪本为CustAge而且ResStatus显式显示(如64.9836而且74.1250分别)。的WOE值计算这些点< >失踪Bin和logistic模型系数。

对于训练集中没有缺失数据的预测器,没有显式的< >失踪箱子默认情况下,这些点被设置为因为数据丢失,结果是运行时分数.对于没有显式的预测器< >失踪Bin,使用name-value参数“失踪”formatpoints说明如何处理缺失数据以达到评分目的。

出于说明的目的,从原始数据中选取几行作为测试数据,并引入一些缺失的数据。还要引入一些无效的或超出范围的值。对于数字数据,低于允许的最小值(或高于允许的最大值)的值被认为是无效的,例如年龄的负值(回想一下“MinValue”是否设置为0CustAge而且CustIncome).对于分类数据,无效值是没有明确包含在记分卡中的类别,例如,先前没有映射到记分卡类别的居住状态,如“House”,或无意义的字符串,如“abc123”。

这是一个非常小的验证数据集,仅用于说明缺少值和超出范围值的行的评分及其与模型验证的关系。

tdata = dataMissing(11:18, mll . predictornames);只保留模型中保留的预测因子tdata。status = dataMissing.status(11:18);复制响应变量值,用于验证设置一些缺失的值tdata.CustAge(1) = NaN;tdata.ResStatus (2) =' <定义> ';tdata.EmpStatus (3) =' <定义> ';tdata.CustIncome(4) = NaN;设置一些无效值tdata.CustAge(5) = -100;tdata.ResStatus (6) =“房子”;tdata.EmpStatus (7) =“自由职业者”;tdata.CustIncome(8) = -1;disp (tdata)
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance地位  _______ ___________ ___________ __________ _______ _______ _________ ______ 南租户未知34000 44是的119.8 - 1 48 <定义>未知44000 14是的403.62 0 65房主<定义> 48000年6没有其它未知南35 111.88 0 44 436.41 0 -100其他雇用了46000名16岁是的162.21 0 33家雇佣了36000 36是的845.02 0 39租户自由职业者34000 40是的756.26 - 1 24业主雇佣1 19是的449.61 0

对新数据进行评分,并查看如何为缺失分配分数CustAge而且ResStatus,因为我们有一个显式的bin< >失踪.然而,对于EmpStatus而且CustIncome分数函数将点设置为

验证结果不可靠,分数与值被保留(参见验证表)ValTable),但目前还不清楚这些影响是什么验证统计信息中的值(ValStats).这是一个很小的验证数据集,但是分数仍然可能影响更大数据集上的验证结果。

[Scores,Points] = score(sc,tdata);disp(分数)
481.2231 520.8353 NaN NaN 551.7922 487.9588 NaN NaN
disp(分)
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance _______ _________ _________ __________ _______ _______ _________ 64.984 62.138 58.807 67.893 61.858 75.622 89.922 74.125 82.439 61.061 75.622 96.922 73.248 NaN 96.969 51.132 50.914 89.922 69.636 90.828 58.807 NaN 61.858 50.914 89.922 64.984 90.828 86.937 82.439 61.061 75.922 56.282 74.125 86.937 75.622 63.028 60.012 62.138 NaN 67.893 61.858 75.622 63.028 54.062 73.248 86.937 NaN 61.061 75.62289.922
[ValStats,ValTable] = validatemodel(sc,tdata);disp (ValStats)
测量值  ________________________ _______ {' 精度比0.16667”}{ROC曲线下面积的}0.58333{“KS统计”}0.5 481.22{“k值”}
disp (ValTable)
分数ProbDefault TrueBads FalseBads TrueGoods FalseGoods敏感性FalseAlarm PctObs  ______ ___________ ________ _________ _________ __________ ___________ __________ ______ 南南5 0 1 2 0 0 0.16667 0.125南南2 4 2 0 0.33333 0.25南南1 2 4 1 0.5 0.33333 0.375南南1 3 3 1 0.5 0.5 0.5 481.22 0.39345 - 2 3 3 0 1 0.5 0.625 487.96 0.3714 2 4 2 0 1 0.66667 0.75 520.84 0.2725 - 2 5 1 0 1 0.83333 0.875 551.79 0.19605 2 6 0 0 1 1 1

使用name-value参数“失踪”formatpoints选择如何将点分配给没有显式参数的预测器的缺失值< >失踪箱子在本例中,使用“MinPoints”选项。“失踪”论点。最低得分EmpStatus在记分卡上面显示的都是58.8072CustIncome最小值是29.3753

验证结果不再受值,因为现在所有行都有一个分数。

Sc = formatpoints(Sc,“失踪”“MinPoints”);[Scores,Points] = score(sc,tdata);disp(分数)
481.2231 520.8353 517.7532 451.3405 551.7922 487.9588 449.3577 470.2267
disp(分)
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance _______ _________ _________ __________ _______ _______ _________ 64.984 62.138 58.807 67.893 61.858 75.622 89.922 78.86 74.125 58.807 82.439 75.622 89.922 96.76 73.248 58.807 29.375 61.858 50.914 89.922 69.636 90.828 58.807 29.375 61.858 50.914 89.922 64.984 90.828 86.937 82.439 61.061 75.622 89.922 56.282 74.125 86.937 70.107 75.622 63.028 60.012 62.138 58.807 67.893 61.858 75.622 63.028 54.062 73.248 86.937 29.37561.061 75.622 89.922
[ValStats,ValTable] = validatemodel(sc,tdata);disp (ValStats)
测量值  ________________________ _______ {' 精度比0.66667”}{ROC曲线下面积的}0.83333{“KS统计”}0.66667 481.22{“k值”}
disp (ValTable)
分数ProbDefault TrueBads FalseBads TrueGoods FalseGoods敏感性FalseAlarm PctObs  ______ ___________ ________ _________ _________ __________ ___________ __________ ______ 449.36 - 0.50223 0 1 0 6 1 0.5 0.125 451.34 0.49535 1 1 5 1 0.5 0.16667 0.25 470.23 0.43036 1 2 4 1 0.5 0.33333 0.375 481.22 0.39345 - 2 2 4 0 1 0.33333 0.5 487.96 0.3714 - 2 3 3 0 1 0.5 0.625 517.75 0.28105 2 4 2 0 1 0.66667 0.75 520.84 0.2725 - 2 5 1 0 1 0.83333 0.875 551.79 0.19605 2 6 0 0 1 1 1

输入参数

全部折叠

信用记分卡模型,指定为creditscorecard对象。要创建此对象,请使用creditscorecard

(可选)验证数据,指定为MATLAB®表,其中每个表行对应于单独的观察值。的数据必须包含信用记分卡模型中每个预测器的列。数据列可以是以下任何一种数据类型:

  • 数字

  • 逻辑

  • 字符向量的单元格数组

  • 字符数组

  • 分类

  • 字符串

  • 字符串数组

此外,表必须包含二进制响应变量。

请注意

当观察权重定义使用可选WeightsVar属性时,名称-值对参数creditscorecard对象中存储的权重WeightsVar列用于在训练数据上验证模型。选项提供不同的验证数据集数据输入,验证数据的观察权重必须包含在名称匹配的列中WeightsVar,否则验证数据使用单位权重。有关更多信息,请参见使用带有Weights的validatemodel

数据类型:表格

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:sc = validatemodel(sc,data,'AnalysisLevel','十分位数','Plot','CAP')

分析级别的类型,指定为由逗号分隔的对组成“AnalysisLevel”和具有以下值之一的字符向量:

  • “分数”-返回统计数据(统计数据)。分数从风险最高到最安全,重复的分数被删除。

  • “十分位数”-返回统计数据(统计数据)十分位级。分数从风险最高到最安全,并将其对应的统计数据分为10个十分位数(10%,20%,…), 100%)。

数据类型:字符

绘图类型,指定为逗号分隔的对,由“阴谋”和具有以下值之一的字符向量:

  • “没有”—无图形显示。

  • “帽子”—累积精度概要。绘制“s”分以下借款人比例与“s”分以下违约者比例(“PctObs”“敏感”T可选输出参数)。详情请参见累积精度剖面(CAP)

  • “中华民国”-接收方工作特性。绘制未违约者在“s”分以下的比例与违约者在“s”分以下的比例(“FalseAlarm”“敏感”T可选输出参数)。详情请参见受试者工作特征(ROC)

  • “KS”——Kolmogorov-Smirnov。绘制每个分数“s”与得分“s”以下的违约者的比例,以及与得分“s”以下的非违约者的比例(“分数”和两个“敏感”而且“FalseAlarm”列的可选输出参数T).详情请参见Kolmogorov-Smirnov统计量(KS)

    提示

    对于Kolmogorov-Smirnov统计选项,可以输入“KS”“钴”

数据类型:字符|细胞

输出参数

全部折叠

验证度量,返回为4——- - - - - -2表格第一列,“测量”,包含以下措施的名称:

  • 精度比(AR)

  • ROC曲线下面积(AUROC)

  • KS统计量

  • KS得分

第二列,“价值”,包含与这些度量相对应的值。

类型返回的验证统计数据N——- - - - - -9验证统计数据表,按分数排序,从最危险到最安全。当AnalysisLevel设置为“十分位数”N等于10.否则,N等于唯一分数的总数,即没有重复的分数。

T包含以下九列,顺序如下:

  • “分数”-分数从最危险到最安全。这一行中的数据对应于在这一行中得分之前的所有观察结果。

  • “ProbDefault”-本行数据的默认概率。对于十分位数,报告给定十分位数中所有观测值的平均违约概率。

  • “TrueBads”-“坏”的累积次数,达到并包括相应的分数。

  • “FalseBads”-累积的“货物”数量不超过相应的分数。

  • “TrueGoods”-在相应分数以上的“商品”累计数量。

  • “FalseGoods”-在相应分数以上的累计“坏”项数。

  • “敏感”-违约者的百分比(或累积“不良”数目除以“不良”总数)。这是“坏”的分布,包括相应的分数。

  • “FalseAlarm”-非违约者的百分比(或累积“货物”数目除以“货物”总数)。这是“商品”的分配,达到并包括相应的分数。

  • “PctObs”-借款人百分比,或累积观察次数,除以观察总数,直至及包括相应的分数。

请注意

当创建creditscorecard对象与creditscorecard,如果是可选的名称-值对参数WeightsVar用于指定观察(样本)权重,则T表使用加权计数的统计信息、总和和累积总和。

绘制度量的图形句柄,作为图形句柄或句柄数组返回。当情节设置为“没有”高频是一个空数组。

更多关于

全部折叠

累积精度剖面(CAP)

CAP通常是一条凹曲线,也被称为基尼曲线、功率曲线或洛伦兹曲线。

给定的观察结果按风险从高到低进行排序。对于一个给定的分数(0%至100%)的借款人,CAP曲线的高度是分数小于或等于该分数的最高分数的违约者的比例,也被称为“敏感”。

CAP曲线下的面积,称为AUCAP,然后与完美或“理想”模型的面积进行比较,导致被称为准确率比(基于“增大化现实”技术)或基尼系数:

一个 R 一个 R 一个 P

在哪里一个R是CAP曲线与对角线之间的面积,和一个P是完美模型和对角线之间的面积。这代表了一个“随机”模型,其中分数是随机分配的,因此违约者和非违约者的比例与分数无关。完美模型是指所有违约者都被赋予最低分数的模型,因此,完美地区分了违约者和非违约者。这样,就越接近团结基于“增大化现实”技术评分模型越好。

受试者工作特征(ROC)

为了找到接受者的工作特征(ROC)曲线,计算到给定分数“s”或“敏感性”的违约者比例。

这个比例被称为真阳性率(TPR)。此外,还计算了不违约者在“s”分以下的比例,或“误报率”。这个比例也被称为假阳性率(FPR)。ROC曲线是“敏感性”与“误报率”的曲线。计算ROC曲线类似于计算每个分数水平的混淆矩阵。

与CAP类似,ROC有一个汇总统计量,称为ROC曲线下面积(AUROC)。越接近统一,评分模型就越好。准确率(基于“增大化现实”技术)与曲线下面积的关系为:

一个 R 2 一个 U R O C 1

Kolmogorov-Smirnov统计量(KS)

Kolmogorov-Smirnov (KS)图,也称为鱼眼图,是一种常用的统计数据,用于衡量记分卡的预测能力。

KS图显示了同一幅图上违约者和非违约者的分布。对于违约者的分布,每个分数“s”都与违约者的比例“s”或“敏感性”相对应。对于非违约者的分布,每个分数“s”都与非违约者的比例“s”或“虚假警报”相对应。感兴趣的统计量被称为KS统计量,是这两个分布之间的最大差异(“敏感性”减去“虚假警报”)。达到这个最大值的分数也很有趣。

使用validatemodel与重量

当用户提供观察权重时,模型验证统计数据包含观察权重。

如果没有权重,验证统计数据是基于有多少好的和坏的观察值低于特定的分数。另一方面,当提供观察权重时,对于低于特定分数的好观察和坏观察的权重(而不是计数)会累积起来。

当观察权重定义使用可选WeightsVar属性时,名称-值对参数creditscorecard对象中存储的权重WeightsVar列用于在训练数据上验证模型。选项提供不同的验证数据集时数据输入,验证数据的观察权重必须包含在名称匹配的列中WeightsVar,否则对验证数据集使用单位权重。

不仅是验证统计量,信用记分卡评分本身也依赖于训练数据的观察权重。有关更多信息,请参见使用fitmodel和Weights而且使用观察权重的信用记分卡建模

参考文献

[1]巴塞尔银行监管委员会:内部评级系统验证研究工作文件第14号,2005年2月

[2] Refaat, M。信用风险记分卡:使用SAS开发和实现。lulu.com, 2011。

[3]吕弗勒G.波施P. N.;利用Excel和VBA建立信用风险模型。威利金融,2007年。

在R2015a中引入