主要内容

基于面板数据的消费信贷违约概率压力测试

这个例子展示了如何使用消费者(零售)信贷面板数据来可视化观察到的不同级别的违约率。它还展示了如何拟合模型来预测违约概率(PD)和生命周期PD值,并执行压力测试分析。

消费贷款的面板数据集使您能够识别不同期限或不同账面年份的贷款的违约率模式。您可以使用评分组的信息来区分不同评分级别的默认率。此外,您可以使用宏观经济信息来评估经济状况如何影响消费贷款违约率。

一个标准的逻辑回归模型,一种广义线性模型,拟合零售信贷面板数据有和没有宏观经济预测,使用fitLifetimePDModel从风险管理工具箱™。虽然同样的模型可以用fitglm函数,该模型的违约(PD)的生命周期概率版本是为信用应用程序设计的,并支持生命周期违约(PD)预测和模型验证工具,包括本例中显示的鉴别和准确性图。万博1manbetx该示例还描述了如何拟合一个更高级的模型来解释面板数据效应,一个广义线性混合效应模型。然而,对于本例中的数据集,面板效应可以忽略不计,为了提高效率,首选标准逻辑模型。

逻辑回归模型预测的违约概率为所有评分水平,帐面上的年份,和宏观经济变量的情景。本文简要讨论了如何预测生命周期PD值,并指出了其他功能。该示例展示了用于验证和比较模型的模型鉴别和模型精度工具。在本例的最后一部分中,逻辑模型用于压力测试分析,该模型预测给定基线的违约概率,以及不利和严重不利的宏观经济情景的违约概率。

有关更多信息,请参见默认模型的生命周期概率概述.参见示例用考克斯比例风险建模违约概率,它遵循相同的工作流程,但使用考克斯回归而不是逻辑回归,也有关于计算终身PD和终身预期信贷损失(ECL)的信息。

面板数据描述

主数据集(数据)包含以下变量:

  • ID:贷款标识符。

  • ScoreGroup:贷款开始时的信用评分,离散为三组:高的风险中等风险,低风险

  • 小无赖:多年读书。

  • 默认的:默认指标。这是响应变量。

  • 一年:日历年。

还有一个小的数据集(dataMacro)及相应历年的宏观经济数据:

  • 一年:日历年。

  • 国内生产总值:国内生产总值增长率(同比)。

  • 市场:市场回报率(同比)。

的变量小无赖一年国内生产总值,市场都是在相应的历年年底进行的。评分组是贷款开始时原始信用评分的离散化。的值1默认的指该贷款在相应日历年内违约。

还有第三组数据(dataMacroStress)分别为宏观经济变量的基线、不利和严重不利情景。此表用于压力测试分析。

本例使用模拟数据,但同样的方法已成功应用于真实数据集。

加载面板数据

加载数据并查看表的前10行和后10行。面板数据是堆叠的,即对相同ID的观察数据存储在连续的行中,从而创建一个又高又瘦的表。面板是不平衡的,因为不是所有id都有相同的观察数。

负载RetailCreditPanelData.mat流(“\ nFirst 10行:\ n”
第十行:
disp(数据(1:10)):
ID ScoreGroup YOB违约年份__ ___________ __________ ____ 1低风险1 0 1997 1低风险20 1998 1低风险3 0 1999 1低风险4 0 2000 1低风险5 0 2001 1低风险6 0 2002 1低风险7 0 2003 1低风险8 0 2004 2中风险1 0 1997 2中风险20 1998
流(“最后的10行:\ n”
最后的10行:
disp(数据(end-9:最终,))
ID ScoreGroup YOB默认年份_____ ___________ __________ ____ 96819高危6 0 2003 96819高危7 0 2004 96820中度风险1 0 1997 96820中度风险20 1998 96820中度风险3 0 1999 96820中度风险4 0 2000 96820中度风险5 0 2001 96820中度风险6 0 2002 96820中度风险7 0 2003 96820中度风险8 0 2004
nRows =身高(数据);UniqueIDs =独特(data.ID);nIDs =长度(UniqueIDs);流(' id总数:%d\n'nIDs)
id总数:96820
流('总行数:%d\n'nRows)
总行数:646724

按分数组和书上年份划分的违约率

使用信用评分组作为分组变量来计算每个评分组的观察到的违约率。为此,使用groupsummary函数来计算的平均值默认的变量进行分组ScoreGroup变量。将结果绘制在条形图上。正如预期的那样,随着信贷质量的改善,违约率会下降。

DefRateByScore = groupsummary(数据,“ScoreGroup”“的意思是”“默认”);NumScoreGroups =身高(DefRateByScore);disp (DefRateByScore)
ScoreGroup GroupCount mean_Default ___________ __________ ____________高风险2.0999e+05 0.017167中危2.1743e+05 0.0086006低危2.193e+05 0.0046784
栏(DefRateByScore.ScoreGroup DefRateByScore.mean_Default * 100)标题(“违约率vs评分组”)包含(“分数组”) ylabel (“观察到的违约率(%)”网格)

图中包含一个axes对象。标题为Default Rate vs. Score Group的axes对象包含一个类型为bar的对象。

接下来,计算按账面年数分组的违约率(由小无赖变量)。由此产生的利率是有条件的一年期违约利率。例如,帐面上第三年的违约率是第三年贷款违约的比例,相对于投资组合中超过第二年的贷款数量。换句话说,第三年的违约率是包含的行数小无赖3.而且默认的= 1,除以的行数小无赖3.

策划的结果。有一个明显的下降趋势,违约率随着账面年数的增加而下降。第三年和第四年的违约率相似。然而,从这张图中还不清楚这是贷款产品的特征还是宏观经济环境的影响。

DefRateByYOB = groupsummary(数据,“小无赖”“的意思是”“默认”);NumYOB =身高(DefRateByYOB);disp (DefRateByYOB)
YOB GroupCount mean_Default ___ __________ ____________ 1 96820 0.017507 2 94535 0.012704 3 92497 0.011168 4 91068 0.010728 5 89588 0.0085949 6 88570 0.006413 7 61689 0.0033231 8 31957 0.0016272
情节(双(DefRateByYOB.YOB), DefRateByYOB.mean_Default * 100,“- *”)标题(“违约率与账面年数”)包含(“年书”) ylabel (“观察到的违约率(%)”网格)

图中包含一个axes对象。标题为Default Rate vs. Years on Books的axes对象包含一个类型为line的对象。

现在,按分数分组分组,按读书年限分组,然后画出结果。图表显示,随着时间的推移,所有得分组的行为相似,总体呈下降趋势。第三年和第四年是下降趋势的一个例外:年的比率持平高的风险组,然后到第三年低风险组。

DefRateByScoreYOB = groupsummary(数据,{“ScoreGroup”“小无赖”},“的意思是”“默认”);显示输出表以显示它的结构方式为简洁起见,只显示前10行disp (DefRateByScoreYOB (1:10)):
ScoreGroup YOB GroupCount mean_Default ___________ ___ __________ ____________高危1 32601 0.029692高危2 31338 0.021252高危3 30138 0.018448高危4 29438 0.018276高危5 28661 0.014794高危6 28117 0.011168高危7 19606 0.0056615高危8 10094 0.0027739中度风险1 32373 0.014302中度风险2 31775 0.011676
DefRateByScoreYOB2 =重塑(DefRateByScoreYOB.mean_Default,...NumYOB NumScoreGroups);情节(DefRateByScoreYOB2 * 100,“- *”)标题(“违约率与账面年数”)包含(“年书”) ylabel (“观察到的违约率(%)”传奇(类别(data.ScoreGroup))网格

图中包含一个axes对象。标题为Default Rate vs. Years on Books的axes对象包含3个类型为line的对象。这些对象代表高风险、中等风险、低风险。

书本上的年份vs日历上的年份

数据包含三个组,或年份:开始于1997年、1998年和1999年的贷款。面板数据中没有1999年以后开始的贷款。

本节将展示如何分别可视化每个队列的默认率。所有组别的违约率均以账面年数和日历年为对照绘制。账簿上年份的模式显示了贷款产品的特征。历年的格局表明宏观经济环境的影响。

从书本上的第2年到第4年,曲线显示了三个队列的不同模式。然而,当与历年进行对比时,从2000年到2002年,这三个队列表现出了相似的行为。在此期间曲线变平。

获取1997、1998和1999队列的idIDs1997 = data.ID (data.YOB &data.year = = = = 1997);IDs1998 = data.ID (data.YOB &data.year = = = = 1998);IDs1999 = data.ID (data.YOB &data.year = = = = 1999);% IDs2000AndUp未使用,它只被计算为空,1999年以后就没有贷款了IDs2000AndUp = data.ID (data.YOB = = 1 &data.year > 1999);分别获取每个队列的默认率ObsDefRate1997 = groupsummary(数据(ismember (data.ID IDs1997):),...“小无赖”“的意思是”“默认”);ObsDefRate1998 = groupsummary(数据(ismember (data.ID IDs1998):),...“小无赖”“的意思是”“默认”);ObsDefRate1999 = groupsummary(数据(ismember (data.ID IDs1999):),...“小无赖”“的意思是”“默认”);与书上的年数作对比情节(ObsDefRate1997.YOB ObsDefRate1997.mean_Default * 100,“- *”)举行情节(ObsDefRate1998.YOB ObsDefRate1998.mean_Default * 100,“- *”)情节(ObsDefRate1999.YOB ObsDefRate1999.mean_Default * 100,“- *”)举行标题(“违约率与账面年数”)包含(“年书”) ylabel (的违约率(%))传说(“97”“98”“99”网格)

图中包含一个axes对象。标题为Default Rate vs. Years on Books的axes对象包含3个类型为line的对象。这些对象代表97队列,98队列,99队列。

根据日历年绘制年=独特(data.Year);情节(ObsDefRate1997.mean_Default * 100,“- *”)举行情节(年(2:结束),ObsDefRate1998.mean_Default * 100,“- *”)情节(年(3:结束),ObsDefRate1999.mean_Default * 100,“- *”)举行标题(“违约率与日历年”)包含(“年”) ylabel (的违约率(%))传说(“97”“98”“99”网格)

图中包含一个axes对象。标题为Default Rate vs. Calendar Year的axes对象包含3个类型为line的对象。这些对象代表97队列,98队列,99队列。

基于记分组和年份的违约率模型

在可视化数据之后,可以为默认利率构建预测模型。

将面板数据分为训练集和测试集,根据ID号定义这些集。

NumTraining =地板(0.6 * nIDs);rng (“默认”);%的再现性NumTraining TrainIDInd = randsample (nIDs);TrainDataInd = ismember (data.ID UniqueIDs (TrainIDInd));TestDataInd = ~ TrainDataInd;

第一个模型仅使用评分组和账面年数作为违约率的预测因子p.违约的概率定义为p / (1 - p).逻辑模型关系到概率的对数,或日志赔率,对预测值为:

日志 p 1 - p 一个 H + 一个 1 + 一个 l 1 l + b Y O B Y O B + ϵ

1米指示符是否有值1中等风险贷款和0else,同理1 l低风险贷款。这是处理一类类别预测器的标准方法ScoreGroup.每个风险等级都有一个不同的常数:高的风险啊+我中等风险,啊+基地低风险

ModelNoMacro = fitLifetimePDModel(数据(TrainDataInd,:),“物流”...“ModelID”“没有宏”“描述”“有YOB和评分组的Logistic模型,但没有宏观变量”...“IDVar”“ID”“LoanVars”“ScoreGroup”“AgeVar”“小无赖”“ResponseVar”“默认”);disp (ModelNoMacro.Model)
紧凑广义线性回归模型:logit(默认)~ 1 + ScoreGroup + YOB分布=二项估计系数:估计SE tStat pValue ________ ________ _______ ___________ (Intercept) -3.2453 0.033768 -96.106 0 scoregroup_中等风险-0.7058 0.037103 -19.023 1.1014e-80 scoregroup_低风险-1.2893 0.045635 -28.253 1.3076e-175 YOB -0.22693 0.008437 -26.897 2.3578e-159 388018观察值,388014误差自由度离散度:1 Chi^2-statistic vs. constant模型:1.83e+03, p-value = 0

对于数据中的任何行,的值p不被观察,只有一个01观察到默认指标。校正得到模型系数,得到的预测值p方法可以恢复单个行预测函数。

拦截系数是常数高的风险水平(术语),ScoreGroup_Medium风险而且ScoreGroup_Low风险系数是用来调整中等风险而且低风险水平(而且艾尔条款)。

违约概率p当预测变量发生变化时,对数赔率(模型左侧)向同一方向移动。因此,因为调整为中等风险而且低风险为负,违约率较低,风险水平较高,如预期的那样。书籍使用年数的系数也是负的,这与数据中观察到的书籍使用年数的整体下降趋势一致。

拟合模型的另一种方法是使用fitglm函数从统计和机器学习工具箱™。上式表示为

默认~ 1 + ScoreGroup + YOB

1 + ScoreGroup术语说明了基线常数和风险水平的调整。设置可选参数分布二项表示需要一个逻辑模型(即左侧为对数比值的模型),如下所示:

ModelNoMacro = fitglm(data(TrainDataInd,:), 'Default ~ 1 + ScoreGroup + YOB','Distribution','binomial');

正如在介绍中提到的,优点是终生PD版的模型拟合fitLifetimePDModel它是为信用应用而设计的,可以预测生命周期PD,并支持模型验证工具,包括鉴别和准确性图。万博1manbetx有关更多信息,请参见默认模型的生命周期概率概述

为了考虑面板数据效应,可以使用混合效应拟合一个更高级的模型fitglm函数从统计和机器学习工具箱™。虽然这个模型在这个例子中不适合,但代码非常相似:

ModelNoMacro = fitglme(data(TrainDataInd,:),'Default ~ 1 + ScoreGroup + YOB + (1|ID)','Distribution','binomial');

(1 | ID)公式中的一项加上a随机效应到模型中。这个效应是一个预测器,它的值没有在数据中给出,而是与模型系数一起校准。为每个ID校正一个随机值。在这种情况下,由于id的数量非常大,这个额外的校准要求大大增加了拟合模型的计算时间。对于本例中的面板数据集,随机项的影响可以忽略不计。随机效应的方差很小,模型系数几乎不受随机效应的影响。更简单的逻辑回归模型是首选的,因为它的校准和预测更快,而且两种模型预测的违约率本质上是相同的。

预测训练和测试数据的违约概率。的预测函数一行一行地预测条件PD值。我们存储数据以便在下一节中将预测与宏观模型进行比较。

数据。PDNoMacro = zeros(height(data),1);%样本预测的data.PDNoMacro (TrainDataInd) =预测(ModelNoMacro、数据(TrainDataInd:));%样本外预测data.PDNoMacro (TestDataInd) =预测(ModelNoMacro、数据(TestDataInd:));

要做终生PD预测,请使用predictLifetime函数。对于寿命预测,预测数据集中的每个ID值都需要预测器的预测值。例如,预测数据集中前两个id的存活概率。看看条件PD (PDNoMacro列)和生命周期PD (LifetimePD列)匹配每个ID的第一年。在那一年之后,生命周期PD会增加,因为它是一个累积概率。有关更多信息,请参见predictLifetime.看到也预期信用损失计算的例子。

: data1 =数据(1:16);data1。l如果etimePD = predictLifetime(ModelNoMacro,data1); disp(data1)
ID ScoreGroup小无赖默认年PDNoMacro LifetimePD  __ ___________ ___ _______ ____ _________ __________ 1低风险1 0 1997 0.0084797 0.0084797 - 1低风险2 0 1998 1999 0.0054027 0.020513 0.0067697 0.015192 - 1低风险3 0 1低风险4 0 2000 0.0043105 0.024735 1低风险5 0 2001 0.0034384 0.028088 - 1低风险6 0 2003 2002 0.0027422 0.030753 - 1低风险7 0 0.0021867 0.032873 1低风险8 0 2004 0.0017435 - 0.034559 2中等风险1 0 1997 0.015097 - 0.015097 2中等风险2 0 1998 0.012069 - 0.0269842中等风险3 0 1999 0.0096422 0.036366 2中等风险4 0 2000 0.0076996 0.043785 2中等风险5 0 2001 0.006146 0.049662 2中等风险60 2002 0.0049043 0.054323 2中等风险7 0 2003 0.0039125 0.058023 2中等风险80 2004 0.0031207 0.060962

可视化样本内(训练)或样本外(测试)适合使用modelAccuracyPlot.它需要一个分组变量来计算每个组的默认率和平均预测PD值。这里用书上的年份作为分组变量。

DataSetChoice =“测试”如果DataSetChoice = =“培训”印第安纳州= TrainDataInd;其他的印第安纳州= TestDataInd;结束modelAccuracyPlot (ModelNoMacro数据(印第安纳州,:),“小无赖”“DataID”DataSetChoice)

图中包含一个axes对象。标题为Scatter Grouped by YOB Test No Macro, RMSE = 0.001349的axis对象包含2个类型为line的对象。这些对象表示已观察,无宏。

得分组可以作为第二个分组变量输入,以可视化得分组的适合度。

modelAccuracyPlot (ModelNoMacro数据(印第安纳州,:),{“小无赖”“ScoreGroup”},“DataID”DataSetChoice)

图中包含一个axes对象。标题为Scatter Grouped by YOB和ScoreGroup Test No Macro的axis对象,RMSE = 0.0016366包含6个类型为line的对象。这些对象代表高风险、观察到的、中等风险、观察到的、低风险、观察到的、高风险、无宏观、中等风险、无宏观、低风险、无宏观。

生命周期PD模型还支持用于模型鉴别的验证工具。万博1manbetx特别是,modelDiscriminationPlot函数创建接收器工作特征(ROC)曲线图。在这里,每个评分组需要一个单独的ROC曲线。有关更多信息,请参见modelDiscriminationPlot

modelDiscriminationPlot (ModelNoMacro数据(印第安纳州,:),“SegmentBy”“ScoreGroup”“DataID”DataSetChoice)

图中包含一个axes对象。由ScoreGroup分割的标题ROC Test的axis对象包含3个类型为line的对象。这些对象表示无宏观,高风险,AUROC = 0.60996,无宏观,中等风险,AUROC = 0.62274,无宏观,低风险,AUROC = 0.61918。

包含宏观经济变量的违约率模型

用前一个模型预测的趋势,作为年数的函数,有一个非常有规律的递减模式。然而,数据显示出一些偏离这一趋势的地方。为了解释这些偏差,我们将国内生产总值(gdp)的年增长率(以年为单位)相加国内生产总值变量)和股票市场的年回报率(用市场变量)到模型。

日志 p 1 - p 一个 H + 一个 1 + 一个 l 1 l + b Y O B Y O B + b G D P G D P + b 一个 r k e t 一个 r k e t + ϵ

展开数据集,为其添加一列国内生产总值,一个用于市场的数据dataMacro表格

data =加入(数据、dataMacro);disp(数据(1:10)):
ID ScoreGroup小无赖违约PDNoMacro GDP市场  __ ___________ ___ _______ ____ _________ _____ ______ 1低风险1 0 1997 0.0084797 2.72 7.61 1低风险2 0 1998 0.0067697 3.57 26.24 1低风险3 0 1999 0.0054027 2.86 18.1 1低风险4 0 2000 0.0043105 2.43 3.19 1低风险5 0 2001 0.0034384 1.26 -10.51 1低风险6 0 2003 2002 0.0027422 -0.59 -22.95 1低风险7 0 0.0021867 0.63 2.78 1低风险8 0 2004 0.0017435 1.85 9.48 2中等风险1 0 1997 0.015097 2.72 7.61 2中等风险2 0 19980.012069 3.57 26.24

拟合模型与宏观经济变量,或宏观模型,通过扩展模型公式,以包括国内生产总值市场变量。

ModelMacro = fitLifetimePDModel(数据(TrainDataInd,:),“物流”...“ModelID”“宏”“描述”“有YOB、得分组和宏观变量的Logistic模型”...“IDVar”“ID”“LoanVars”“ScoreGroup”“AgeVar”“小无赖”...“MacroVars”, {“国内生产总值”“市场”},“ResponseVar”“默认”);disp (ModelMacro.Model)
紧凑广义线性回归模型:logit(默认)~ 1 + ScoreGroup + YOB + GDP +市场分布=二项估计系数:估计SE tStat pValue __________ _________ _______ ___________ (Intercept) -2.667 0.10146 -26.287 2.6919e-152 scoregroup_中等风险-0.70751 0.037108 -19.066 4.8223e- 17yb -0.32082 0.013636 -23.528 2.0867e- 175 YOB -0.32082 0.013636 -23.528 2.0867e-122 GDP -0.12295 0.039725 -3.095 0.0019681市场-0.0071812 0.0028298 -2.5377 0.011159 388018观察,388012误差自由度色散:1 Chi^2-statistic vs. constant模型:1.97e+03, p值= 0

这两个宏观经济变量的系数都为负,这与较高的经济增长降低违约率的直觉一致。

使用预测预测条件PD的函数。举例说明,如何使用宏模型对训练和测试数据进行条件PD预测。的新列存储结果数据表格方法也支持终生PD预测万博1manbetxpredictLifetime函数,如基于记分组和年份的违约率模型部分。

数据。PD米一个cro = zeros(height(data),1);%样本预测的data.PDMacro (TrainDataInd) =预测(ModelMacro、数据(TrainDataInd:));%样本外预测data.PDMacro (TestDataInd) =预测(ModelMacro、数据(TestDataInd:));

模型精度和判别图为模型提供了现成的比较工具。

可视化样本内或样本外适合使用modelAccuracyPlot.传递来自不含宏观经济变量的模型的预测作为参考模型。首先使用读书年限作为单个分组变量,然后使用分数组作为第二个分组变量。

DataSetChoice =“测试”如果DataSetChoice = =“培训”印第安纳州= TrainDataInd;其他的印第安纳州= TestDataInd;结束modelAccuracyPlot (ModelMacro数据(印第安纳州,:),“小无赖”“ReferencePD”data.PDNoMacro(印第安纳州),“ReferenceID”, ModelNoMacro。ModelID,“DataID”DataSetChoice)

图中包含一个axes对象。标题为Scatter Grouped by YOB Test宏的坐标轴对象,RMSE = 0.00060724 No宏,RMSE = 0.001349包含3个类型为line的对象。这些对象表示已观察、宏、无宏。

modelAccuracyPlot (ModelMacro数据(印第安纳州,:),{“小无赖”“ScoreGroup”},“ReferencePD”data.PDNoMacro(印第安纳州),“ReferenceID”, ModelNoMacro。ModelID,“DataID”DataSetChoice)

图中包含一个axes对象。标题为Scatter Grouped by YOB和ScoreGroup Test宏的坐标轴对象,RMSE = 0.00088425 No宏,RMSE = 0.0016366包含9个类型为line的对象。这些对象代表高风险、观察到的、中等风险、观察到的、低风险、观察到的、高风险、宏观、高风险、无宏观、中等风险、宏观、中等风险、无宏观、低风险、宏观、低风险、无宏观。

与没有宏观经济变量的模型相比,预测的准确性显著提高。当模型中包含宏观经济变量时,预测的条件PD值更接近观察到的违约率的模式,报告的均方根误差(RMSE)明显更小。

绘制宏观模型和无宏观变量模型的ROC曲线,比较两者在模型判别方面的表现。

modelDiscriminationPlot (ModelMacro数据(印第安纳州,:),“ReferencePD”data.PDNoMacro(印第安纳州),“ReferenceID”, ModelNoMacro。ModelID,“DataID”DataSetChoice)

图中包含一个axes对象。标题为ROC Test Macro的坐标轴对象,AUROC = 0.69341 No Macro, AUROC = 0.68662包含2个类型为line的对象。这些对象表示宏,无宏。

歧视衡量的是客户的风险等级。两个模型的表现相似,当宏观经济变量加入模型时,只有轻微的改善。这意味着这两个模型通过为高风险客户分配更高的PD值,来区分低风险、中风险和高风险客户,从而完成了类似的工作。

虽然两种模型的识别性能相似,但在宏观模型下预测的PD值更准确。同时使用鉴别和精确工具对于模型验证和模型比较是很重要的。

违约概率的压力测试

使用拟合的宏观模型对预测的违约概率进行压力测试。

假设以下是宏观经济变量的压力情景,例如由监管者提供。

disp (dataMacroStress)
GDP市场_____ ______基线2.27 15.02不利1.31 4.56严重-0.22 -5.64

建立一个预测违约概率的基本数据表。这是一个虚拟的数据表,每一行代表分数组和读书年数的组合。

dataBaseline =表;[ScoreGroup,小无赖]= meshgrid (1: NumScoreGroups, 1: NumYOB);dataBaseline。ScoreGroup=categorical(ScoreGroup(:),1:NumScoreGroups,...类别(data.ScoreGroup),“顺序”,真正的);dataBaseline。小无赖=小无赖(:); dataBaseline.ID = ones(height(dataBaseline),1); dataBaseline.GDP = zeros(height(dataBaseline),1); dataBaseline.Market = zeros(height(dataBaseline),1);

为了做出预测,对所有评分组和账本年数的组合设置相同的宏观经济条件(基线、不利或严重不利)。

%预测基线违约概率dataBaseline.GDP (:) = dataMacroStress。国内生产总值(“基线”);dataBaseline.Market (:) = dataMacroStress。市场(“基线”);dataBaseline。PD=预测(米odelMacro,dataBaseline);预测不利情况下违约的概率。dataAdverse = dataBaseline;dataAdverse.GDP (:) = dataMacroStress。国内生产总值(“不良”);dataAdverse.Market (:) = dataMacroStress。市场(“不良”);dataAdverse。PD=预测(米odelMacro,dataAdverse);预测严重不利情况下违约的可能性。dataSevere = dataBaseline;dataSevere.GDP (:) = dataMacroStress。国内生产总值(“严重”);dataSevere.Market (:) = dataMacroStress。市场(“严重”);dataSevere。PD=预测(米odelMacro,dataSevere);

在三种不同的监管方案下,可视化不同评分组的平均预测违约概率。在这里,所有的分数组都隐含着平等的权重。然而,对于任何给定的投资组合,也可以在贷款水平上进行预测,以使预测的违约率与投资组合中贷款的实际分布一致。同样的可视化可以为每个得分组分别生成。

PredPDYOB = 0 (NumYOB, 3);PredPDYOB(: 1) =意味着(重塑(dataBaseline.PD, NumYOB NumScoreGroups), 2);PredPDYOB(:, 2) =意味着(重塑(dataAdverse.PD, NumYOB NumScoreGroups), 2);PredPDYOB(:, 3) =意味着(重塑(dataSevere.PD, NumYOB NumScoreGroups), 2);图;酒吧(PredPDYOB * 100);包含(“年书”) ylabel (“预计违约率(%)”)传说(“基线”“不良”“严重”)标题(“压力测试,违约概率”网格)

图中包含一个axes对象。标题为Stress Test, Probability of Default的axis对象包含3个类型为bar的对象。这些对象代表基线、不利、严重。

参考文献

另请参阅

||||||||||

相关的例子

更多关于