主要内容

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

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

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

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

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

有关更多信息,请参阅违约模型的寿命概率综述.请参见这个例子带有Cox比例风险的违约概率建模,它遵循相同的工作流程,但使用Cox回归而不是logistic回归,并且还包含有关终生PD和终生预期信用损失(ECL)计算的信息。

面板数据描述

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

  • ID:贷款标识符。

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

  • 尤布:多年的书。

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

  • : 公历年。

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

  • : 公历年。

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

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

的变量尤布,,国内生产总值,市场在相应的历年年底进行。评分组是贷款开始时原始信用评分的离散化。的值1.默认的表示该贷款在相应的日历年度违约。

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

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

加载面板数据

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

负载RetailCreditPanelData.matfprintf(“\ 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
fprintf('最后十行:\n')
最后的10行:
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);fprintf('ID总数:%d\n',nIDs)
ID总数:96820
fprintf('总行数:%d\n'nRows)
总的行数:646724

账簿上按分数组和年份列出的违约率

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

DefRateByScore=groupsummary(数据、,“ScoreGroup”,“的意思是”,“默认”);NumScoreGroups =高度(DefRateByScore);DISP(DefRateByScore)
ScoreGroup GroupCount mean_Default ___________ __________ ____________高风险2.0999e + 0.017167 05中等风险2.1743e + 0.0086006 05风险低+ 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
plot(double(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,“- *”)举行标题(“默认速率与日历年”)包含(“年”) 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 ) = A. H + A. M 1. M + A. L 1. L + B Y O B Y O B + ϵ

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

ModelNoMacro = fitLifetimePDModel(数据(TrainDataInd,:),“物流”,......'ModelID',“无宏”,“说明”,‘有YOB和分数组但无宏观变量的逻辑模型’,......“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_中等风险低风险系数是对中等风险低风险水平艾尔术语)。

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

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

默认值~1+分数组+YOB

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

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

如引言中所述,采用寿命PD版模型拟合的优点fitLifetimePDModel它是为信用申请而设计的,它可以预测生命周期,并支持模型验证工具,包括鉴别和精度图。金宝app有关更多信息,请参见违约模型的寿命概率综述

为了考虑面板数据效果,可以使用fitglm从统计和机器学习工具箱™功能。虽然这种模式不被安装在这个例子中,代码非常相似:

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

这个(1 | ID)公式中的术语添加了一个随机效应该效应是一个预测器,其值未在数据中给出,但与模型系数一起校准。每个ID都会校准一个随机值。这种额外的校准要求大大增加了在这种情况下拟合模型的计算时间,因为面板的ID数量非常多在本例中的数据集中,随机项的影响可以忽略不计。引入随机效应时,随机效应的方差非常小,且模型系数几乎不发生变化。首选更简单的逻辑回归模型,因为其校准和预测速度更快,并且使用两个模型预测的违约率更高基本上是一样的。

预测训练和测试数据的默认概率。这个预测函数逐行预测条件PD值。我们将存储数据,以便在下一节将预测与宏模型进行比较。

data.PDNoMacro =零(高度(数据),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)
1.UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU年违约年(年)违约年(年)年(年)违约年(年)年(年)违约年)年(年)货币货币货币货币货币货币货币货币货币货币货币货币)))的一一(年(年(年(年(年)货币货币)货币货币)货币货币)货币货币)的时间(年(年(年(年)货币)货币)货币)货币)货币货币货币货币)货币货币货币)的时间(年(年(年(货币)的时间)货币货币)的时间(货币)货币货币)货币货币)的时间(时间)货币货币)货币货币货币)货币货币货币)的时间(时间(时间(货币)货币)的时间(时间(货币)货币)货币0.028088 1低风险6 0 2002 0.0027422 0.030753 1低风险702003 0.0021867 0.032873 1低风险802004 0.0017435 0.034559 2中等风险1001997 0.015097 0.015097 2中等风险201998 0.012069 0.026984 2中等风险3001999 0.0096422 0.036366 2中等风险42000 0.0076996 0.043785 2中等风险5002001 0.006146 0.049662 2中等风险62002 0.00490443 0.05432中等风险7020030.0039125 0.058023 2中等风险8 0 2004 0.0031207 0.060962

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

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

图中包含一个坐标轴。通过YOB测试没有宏与标题散点图分组的轴,RMSE = 0.001349含有型线的2个对象。这些对象表达观察,没有宏。

比分组可以被输入作为第二分组通过可变评分组来显现配合。

modelAccuracyPlot(ModelNoMacro,数据(茚,:),{“你”“ScoreGroup”},“DataID”,DataSetChoice)

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

终身PD模型还支持模型鉴别验证工具。金宝app特别是,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 ) = A. H + A. M 1. M + A. L 1. L + B Y O B Y O B + B G D P G D P + B M A. R K E T M A. R K E T + ϵ

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

数据=加入(数据,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”, {'GDP',“市场”},“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预测也支持金宝apppredictLifetime函数,如中所示使用计分组和账面年数的违约率模型部分。

data.PDMacro =零(高度(数据),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,数据(Ind,:),'ReferencePD',data.PDNoMacro(茚基),“ReferenceID”, ModelNoMacro。ModelID,“DataID”,DataSetChoice)

图中包含一个坐标轴。与标题ROC测试宏,AUROC = 0.69341没有宏,AUROC = 0.68662轴包含型线的2个对象。这些对象代表宏,没有宏。

歧视通过风险来衡量顾客的排名。两个模型的表现相似,只有在宏观经济变量加入模型时略有改善。这意味着两个模型通过为高风险客户分配更高的PD值来实现低风险、中风险和高风险客户的分离。

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

违约概率的压力测试

使用装有宏观模型压力测试默认的预测概率。

假设以下是宏观经济变量(例如,由监管机构提供的)的压力场景。

disp (dataMacroStress)
国内生产总值市场_____ ______基准2.27 15.02 1.31不良重症4.56 -0.22 -5.64

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

dataBaseline=table;[ScoreGroup,YOB]=meshgrid(1:NumCoreGroups,1:NumOb);dataBaseline.ScoreGroup=Category(ScoreGroup(:),1:NumCoreGroups,......类别(data.ScoreGroup),“顺序”,true);dataBaseline.YOB=YOB(:);dataBaseline.ID=one(高度(数据库线),1);dataBaseline.GDP=zeros(高度(数据库线),1);dataBaseline.Market=zeros(高度(数据库线),1);

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

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

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

PredPDYOB=0(numob,3);PredPDYOB(:,1)=平均值(重塑(dataBaseline.PD,numob,numcoregroups),2);PredPDYOB(:,2)=平均值(重塑(dataadversal.PD,numob,numcoregroups),2);PredPDYOB(:,3)=平均值(重塑(dataSevere.PD,numob,numcoregroups),2);图;条形图(PredPDYOB*100);xlabel(“年书”) ylabel (“预测默认率(%)”)传说(“基线”,“不良”,“严重”)头衔(“压力测试,违约概率”网格)

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

工具书类

另见

||||||||||

相关实例

更多关于