主要内容

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

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

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

采用广义线性模型——标准逻辑回归模型,拟合了有宏观经济预测因子和无宏观经济预测因子的零售信贷面板数据fitLifetimePDModel来自风险管理工具箱™。虽然同样的模型可以拟合使用fitglm函数,模型的默认(PD)寿命概率版本是为信用应用而设计的,并支持寿命PD预测和模型验证工具,包括本示例中所示的判别图和精度图。万博1manbetx这个例子还描述了如何拟合一个更高级的模型来解释面板数据效应,一个广义线性混合效应模型。然而,对于本例中的数据集,面板效应可以忽略不计,为了提高效率,标准逻辑模型是首选。

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

有关更多信息,请参阅默认模型的生命周期概率概述.参见示例基于Cox比例风险的违约概率建模,它遵循相同的工作流程,但使用Cox回归而不是逻辑回归,并且还提供了有关生命周期PD和生命周期预期信用损失(ECL)计算的信息。

面板数据说明

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

  • ID:贷款标识符。

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

  • 小无赖:书本上的岁月。

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

  • 一年:日历年。

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

  • 一年:日历年。

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

  • 市场:市场收益(逐年)。

的变量小无赖一年国内生产总值,市场在相应的历年结束时进行观察。评分组是贷款开始时原始信用评分的离散化。值为1默认的意味着贷款在相应的日历年违约。

还有第三个数据集(dataMacroStress)对宏观经济变量进行基线、不利和严重不利的情景分析。该表用于压力测试分析。

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

加载面板数据

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

负载RetailCreditPanelData.mat流(\n前十行:\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
流(“最后十行:\n”
最后十行:
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 = height(data);UniqueIDs =唯一的(data.ID);nIDs = length(UniqueIDs);流(' id总数:%d\n'nIDs)
id总数:96820
流('总行数:%d\n'nRows)
总行数:646724

按评分组和年份分类的违约率

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

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

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

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

画出结果。有一个明显的下降趋势,违约率随着账面年数的增加而下降。第3年和第4年的违约率相似。然而,从这幅图中我们无法看出这是贷款产品的特性还是宏观经济环境的影响。

DefRateByYOB = groupsummary(数据,“小无赖”“的意思是”“默认”);NumYOB = height(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 ('观察违约率(%)'网格)

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

现在,根据分数分组和学习年限分组,然后绘制结果图。该图显示,随着时间的推移,所有得分组的表现相似,总体呈下降趋势。第3年和第4年是下降趋势的一个例外:第4年的利率趋于平稳高的风险组,在第三年上升到低风险组。

DefRateByScoreYOB = groupsummary(data,{“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 =重塑(defratebyscoreyobb . mean_default,...NumYOB NumScoreGroups);情节(DefRateByScoreYOB2 * 100,“- *”)标题(“违约率与账面年数”)包含(《读书的岁月》) ylabel ('观察违约率(%)') legend(categories(data.ScoreGroup))网格

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

书本上的年份与历年

数据包含三个队列,即年份:1997年、1998年和1999年开始的贷款。面板数据中没有贷款是从1999年以后开始的。

本节展示如何分别可视化每个队列的违约率。所有队列的违约率都是根据账面年数和日历年绘制的。账簿上的年份模式表明了贷款产品的特征。历年的格局表明宏观经济环境的影响。

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

获取1997、1998和1999年队列的idIDs1997 = data.ID(data.YOB==1&data.Year==1997);IDs1998 = data.ID(data.YOB==1&data.Year==1998);IDs1999 = data.ID(data.YOB==1&data.Year==1999);% IDs2000AndUp未使用,仅计算显示此为空,1999年以后再也没有贷款。IDs2000AndUp = data.ID(data.YOB==1&data.Year>1999);分别获取每个队列的违约率ObsDefRate1997 = groupsummary(data(ismember(data. id,IDs1997),:),...“小无赖”“的意思是”“默认”);ObsDefRate1998 = groupsummary(data(ismember(data. id,IDs1998),:),...“小无赖”“的意思是”“默认”);ObsDefRate1999 = groupsummary(data(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”网格)

图中包含一个轴对象。标题为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”网格)

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

基于评分组和账簿年数的违约率模型

在可视化数据之后,您可以为违约率构建预测模型。

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

NumTraining =楼层(0.6*nIDs);rng (“默认”);再现率%TrainIDInd = randsample(nIDs,NumTraining);TrainIDInd = 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中等风险贷款和0否则,与for类似1 l低风险贷款。这是处理分类预测器的标准方法,例如ScoreGroup.每个风险级别实际上都有一个不同的常数:高的风险啊+我中等风险,啊+基地低风险

ModelNoMacro = fitLifetimePDModel(data(TrainDataInd,:)),“物流”...“ModelID”“没有宏”“描述”“带YOB和分数组的逻辑模型,但没有宏观变量”...“IDVar”“ID”“LoanVars”“ScoreGroup”“AgeVar”“小无赖”“ResponseVar”“默认”);disp (ModelNoMacro.Model)
压缩广义线性回归模型:logit(默认)~ 1 + ScoreGroup + YOB分布=二项估计系数:估计SE tStat pValue ________ ________ _______ ___________(截截)-3.2453 0.033768 -96.106 0 ScoreGroup_Medium风险-0.7058 0.037103 -19.023 1.1014e-80 ScoreGroup_Low风险-1.2893 0.045635 -28.253 1.3076e-175 YOB -0.22693 0.008437 -26.897 2.3578e-159 388018观测值,388014误差自由度离散度:1 Chi^2统计量vs常量模型: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有关更多信息,请参见默认模型的生命周期概率概述

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

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) = predict(ModelNoMacro,data(TrainDataInd,:));%预测样本外data. pdnomacro (TestDataInd) = predict(ModelNoMacro,data(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 = =“培训”Ind = TrainDataInd;其他的Ind = TestDataInd;结束modelAccuracyPlot (ModelNoMacro数据(印第安纳州,:),“小无赖”“DataID”DataSetChoice)

图中包含一个轴对象。由YOB Test No Macro进行分散分组的axis对象,RMSE = 0.001349包含2个类型为line的对象。这些对象代表观察到的,没有宏。

分数组可以作为第二个分组变量输入,以可视化分数组的拟合。

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

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

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

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

图中包含一个轴对象。标题为ROC Test Segmented by ScoreGroup的坐标轴对象包含3个类型为line的对象。这些对象表示无宏观,高风险,AUROC = 0.60996,无宏观,中等风险,AUROC = 0.2274,无宏观,低风险,AUROC = 0.61918。

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

用之前的模型预测的趋势,作为账面年的函数,有一个非常有规律的递减模式。然而,数据显示与这一趋势有一些偏差。为了解释这些偏差,可以把国内生产总值(gdp)的年增长率(用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 = join(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(data(TrainDataInd,:)),“物流”...“ModelID”“宏”“描述”“带YOB、分数组和宏观变量的Logistic模型”...“IDVar”“ID”“LoanVars”“ScoreGroup”“AgeVar”“小无赖”...“MacroVars”, {“国内生产总值”“市场”},“ResponseVar”“默认”);disp (ModelMacro.Model)
紧凑广义线性回归模型:logit(默认)~ 1 + ScoreGroup + YOB + GDP +市场分布=二项估计系数:估计SE tStat pValue __________ _________ _______ ___________(拦截)-2.667 0.10146 -26.287 2.6919e-152 ScoreGroup_Medium风险-0.70751 0.037108 -19.066 4.8223e-81 ScoreGroup_Low风险-1.2895 0.045639 -28.253 1.2892e-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统计与常数模型:1.97e+03, p值= 0

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

使用预测函数来预测条件PD。为了说明,这里是如何使用宏模型预测训练和测试数据上的条件PD。对象中的新列存储结果数据表格的方法也支持终生PD预测万博1manbetxpredictLifetime函数,如基于评分组和账簿年数的违约率模型部分。

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

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

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

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

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

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

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

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

绘制宏观模型和不含宏观经济变量模型的ROC曲线,比较其在模型判别方面的表现。

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

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

歧视衡量的是客户的风险等级。这两个模型的表现相似,只是在将宏观经济变量添加到模型中时略有改善。这意味着这两个模型通过为风险较高的客户分配更高的PD值来区分低风险、中等风险和高风险客户。

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

违约概率的压力测试

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

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

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

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

dataBaseline = table;[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);

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

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

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

PredPDYOB = 0 (NumYOB,3);PredPDYOB(:,1) = mean(重塑(databasline . pd,NumYOB,NumScoreGroups),2);PredPDYOB(:,2) = mean(重塑(dataAdverse.PD,NumYOB,NumScoreGroups),2);PredPDYOB(:,3) = mean(重塑(datasever . pd,NumYOB,NumScoreGroups),2);图;酒吧(PredPDYOB * 100);包含(《读书的岁月》) ylabel (“预测违约率(%)”)传说(“基线”“不良”“严重”)标题(“压力测试,违约概率”网格)

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

参考文献

  1. 广义线性模型文档,参见广义线性模型

  2. 广义线性混合效应模型文档,参见广义线性混合效应模型

  3. 联邦储备,综合资本分析和审查(CCAR):https://www.federalreserve.gov/bankinforeg/ccar.htm

  4. 英格兰银行,压力测试:https://www.bankofengland.co.uk/financial-stability

  5. 欧洲银行管理局,全欧盟压力测试:https://www.eba.europa.eu/risk-analysis-and-data/eu-wide-stress-testing

另请参阅

||||||||||

相关的例子

更多关于