主要内容

使用面板数据对消费者信贷违约概率的压力测试

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

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

采用标准logistic回归模型,即一种广义线性模型,对零售信贷面板数据进行拟合fitLifetimePDModel从风险管理工具箱™。尽管相同的模型可以用fitglm函数,该模型的默认生存期概率(PD)版本是为信用申请设计的,并支持生存期PD预测和模型验证工具,包括本例中显示的鉴别和准确性图。万博1manbetx该实例还描述了如何拟合一个更高级的模型来解释面板数据效应,即广义线性混合效应模型。然而,对于本例中的数据集,面板效应是可以忽略的,标准逻辑模型更适合于效率。

logistic回归模型预测了所有分数水平、书籍使用年限和宏观经济变量情景的违约概率。这里有一个关于如何预测生存期PD值的简短讨论,其中包含指向附加功能的指针。该实例展示了模型判别和模型精度工具来验证和比较模型。在本例的最后一部分中,逻辑模型用于压力测试分析,该模型预测给定基线的违约概率,以及不利和严重不利宏观经济情景的违约概率。

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

面板数据描述

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

  • ID:贷款标识符。

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

  • 小无赖:多年的书。

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

  • 一年:日历年。

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

  • 一年:日历年。

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

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

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

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

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

加载面板数据

加载数据并查看表的前10行和后10行。面板数据是堆叠的,在某种意义上,相同ID的观测数据存储在连续的行中,创建了一个又高又薄的表。这个小组是不平衡的,因为不是所有的id都有相同数量的观察。

负载RetailCreditPanelData.mat流(“\ nFirst 10行:\ n”
第十行:
disp(数据(1:10)):
ID ScoreGroup小无赖违约  __ ___________ ___ _______ ____ 1低风险1 0 1998 1997 1低风险2 0 1低风险3 1999 0 1低风险4 0 2001 2000 1低风险5 0 1低风险6 0 2002 1低风险7 0 2003 1低风险8 0 2004 2中等风险1 0 1997 2中等风险2 0 1998
流(“最后的10行:\ n”
最后十行:
disp(数据(end-9:最终,))
ID ScoreGroup小无赖违约  _____ ___________ ___ _______ ____ 96819高危6 0 0 2004 96820 2003 96819高危7中等风险1 0 1997 96820中等风险2 0 0 1999 96820 1998 96820中等风险中等风险4 0 2000 96820中等风险5 0 2002 2001 96820中等风险6 0 0 2003 96820 96820中等风险7中等风险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 (“观察到的默认率(%)”)网格

图中包含一个轴。标题为“默认速率vs.分数”的轴组包含一个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 (“观察到的默认率(%)”)网格

图中包含一个坐标轴。标题为“图书违约率与年数”的轴包含一个类型为line的对象。

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

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

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

书中的年份与日历中的年份

这些数据包括三个组别,即年份: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):),...“小无赖”“的意思是”“默认”);obsdfrate1999=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”)网格

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

%与历年相对照年=独特(data.Year);情节(ObsDefRate1997.mean_Default * 100,“- *”)举行情节(年(2:结束),ObsDefRate1998.mean_Default * 100,“- *”)情节(年(3:结束),ObsDefRate1999.mean_Default * 100,“- *”)举行头衔(“违约率vs.日历年”)包含(“日历年”) ylabel (“违约率(%)”)传说(“97”“98”“99”)网格

图中包含一个坐标轴。标题为Default Rate vs. Calendar Year的坐标轴包含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中等风险贷款和0否则,与之相似1 l低风险贷款。这是处理绝对预测器的标准方法,比如ScoreGroup.每个风险级别都有一个不同的常数:高的风险啊+我中等风险,啊+基地低风险

ModelNoMacro = fitLifetimePDModel(数据(TrainDataInd,:),“物流”...“ModelID”“没有宏”“描述”“带有YOB和得分组的Logistic模型,但没有宏观变量”...“IDVar”“ID”“LoanVars”“ScoreGroup”“AgeVar”“小无赖”“ResponseVar”“默认”);disp (ModelNoMacro.Model)
紧凑广义线性回归模型:logit(Default) ~ 1 + ScoreGroup + YOB Distribution =二项估计系数:Estimate SE tStat pValue ________ ________ _______ ___________ (Intercept) -3.2453 0.033768 -96.106 0 ScoreGroup_Medium Risk -0.7058 0.037103 -19.023 1.1014e-801 Chi^2-statistic vs. constant model: 1.83e+03, p-value = 0

对于数据中的任何行,值为p是不观察,只有一个01观察默认指示灯。通过标定得到模型系数,得到的预测值p可以使用预测函数。

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

违约概率p当预测变量发生变化时,对数概率(模型的左边)也会向同一个方向移动。因此,因为调整中等风险低风险为负值时,如预期的那样,风险水平越高,违约率越低。书龄系数也为负,与数据中观察到的书龄总体下降趋势一致。

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

默认值~1+分数组+YOB

1 + ScoreGroup术语解释了基线常数和风险水平的调整。设置可选参数分布二项式表示需要逻辑模型(即左侧有对数赔率的模型),如下所示:

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

如引言中所述,采用寿命PD版模型拟合的优点fitLifetimePDModel它是为信用申请而设计的,它可以预测生命周期,并支持模型验证工具,包括鉴别和精度图。万博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:));%样本外预测PDNoMacro(TestDataInd)=预测(ModelNoMacro,data(TestDataInd,:);

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

: 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 2002 0.0027422 0.030753 1低风险7 0 2003 0.0021867 0.032873 1 Low Risk 8 0 2004 0.0017435 0.034559 2 Medium Risk 1 0 1997 0.015097 0.015097 2 Medium Risk 2 0 1998 0.012069 0.026984 2 Medium Risk 3 0 1999 0.0096422 0.036366 2 Medium Risk 4 0 2000 0.0076996 0.043785 2 Medium Risk 5 0 2001 0.006146 0.049662 2 Medium Risk 6 0 2002 0.0049043 0.054323 2 Medium Risk 7 0 2003 0.0039125 0.058023 2 Medium Risk 8 0 2004 0.0031207 0.060962

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

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

图中包含一个坐标轴。标题为Scatter Grouped by YOB Test No Macro, 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数据(印第安纳州,:),“分段比”“ScoreGroup”“DataID”DataSetChoice)

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

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

使用前一个模型预测的趋势,作为账面上年份的函数,具有非常规律的下降模式。然而,数据显示出与该趋势的一些偏差。为了试图解释这些偏差,将国内生产总值的年增长率(以国内生产总值变量)和股票市场年收益(用市场变量)到模型。

日志 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 + ϵ

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

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 2001 2000 0.0043105 2.43 3.19 1低风险5 0 0.0034384 1.26 -10.51 2002 0.0027422 -0.59 1低风险6 0-22.95 1低风险7 0 2003 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中等风险20 1998 0.012069 3.57 26.24

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

ModelMacro = fitLifetimePDModel(数据(TrainDataInd,:),“物流”...“ModelID”“宏”“描述”包含YOB、得分组和宏观变量的Logistic模型...“IDVar”“ID”“LoanVars”“ScoreGroup”“AgeVar”“小无赖”...“MacroVars”, {“国内生产总值”“市场”},“ResponseVar”“默认”);disp (ModelMacro.Model)
紧凑型广义线性回归模型:logit(默认)~1+计分组+YOB+GDP+市场分布=二项式估计系数:估计当前pValue-2.667 0.10146-26.287 2.6919e-152计分组-中等风险-0.70751 0.037108-19.066 4.8223e-81计分组-低风险-1.2895 0.045639-28.253 1.2892e-175 YOB-0.32082 0.013636-23.528 2.0867e-122 GDP-0.12295 1220.039725-3.095 0.0019681市场-0.00718120.002898-2.5377 0.011819观测值:388018自由度^2-统计与常数模型:1.97e+03,p值=0

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

使用预测函数来预测条件PD。下面是如何使用宏模型预测训练和测试数据的条件PD。属性中的新列存储结果数据表。寿命PD预测也支持万博1manbetxpredictLifetime函数,如中所示使用记分组和书籍年数的违约率模型部分。

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

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

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

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

图中包含一个轴。标题分散的轴按YOB测试宏分组,RMSE=0.00060724无宏,RMSE=0.001349,包含3个line类型的对象。这些对象表示观察到的、宏、无宏。

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

图中包含一个坐标轴。标题为Scatter Grouped 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无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.GDP(“基线”);dataBaseline.Market (:) = dataMacroStress。市场(“基线”);dataBaseline。PD=预测(米odelMacro,dataBaseline);%预测在不利情况下违约的概率dataAdverse = dataBaseline;dataAdverse.GDP (:) = dataMacroStress。国内生产总值(“不利的”);dataAdverse.Market (:) = dataMacroStress。市场(“不利的”);dataAdverse。PD=预测(米odelMacro,dataAdverse);%预测严重不利情况下违约的概率dataSevere=dataBaseline;dataSevere.GDP(:)=dataMacroStress.GDP(“严重”);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 (“预测违约率(%)”)传说(“基线”“不利的”“严重”)头衔(“压力测试,违约概率”)网格

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

参考文献

另请参阅

||||||||||

相关的例子

更多关于