主要内容

带有Cox比例风险的违约概率建模

这个示例展示了如何使用消费者(零售)信用面板数据来可视化不同级别的已观察到的违约概率。它还展示了如何拟合Cox比例风险(PH)模型,也称为Cox回归,以预测pd。此外,它还展示了如何执行压力测试分析,如何建模生命周期pd,以及如何计算生命周期预期信用损失(ECL)值。

这个示例使用fitLifetimePDModel从风险管理工具箱™,以适应考克斯PH值模型。虽然相同的模型可以使用fitcox的,默认生存期概率(PD)版本考克斯模型是为信用申请而设计的,支持条件PD预测、寿命PD预测和模型验证工具,包括判别图和精度图。万博1manbetx

一个类似的例子,使用面板数据对消费者信贷违约概率的压力测试,遵循相同的工作流,但它使用物流回归模型代替考克斯模型。这两种方法的主要区别是:

  • 模型适合- - -考克斯PH模型具有非参数基线危险率,比完全参数更能匹配pd中的模式物流模型。

  • 从数据中推断出观察到的年龄考克斯由于PH模型建立在非参数基线危险率之上,需要额外的规则或假设来推断数据集中没有观察到的贷款年龄。例如,请参见用Cox寿命PD模型预测条件PD.相反,物流模型将贷款年龄视为连续变量;因此,一个物流模型可以无缝地推断出数据集中未观察到的年龄的pd。

使用生存分析工具进行数据探索

从一些数据可视化开始,主要是将PDs作为年龄函数的可视化,在这个数据集中,它与《year -on-books》(YOB)相同。因为考克斯PH是一个生存分析模型,本例讨论了一些生存分析工具和概念,并使用了经验累积分布函数(ecdf)的功能,其中一些计算和可视化。

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

  • ID:贷款标识符。

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

  • 小无赖:多年的书。

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

  • 一年:日历年。

还有一个小的数据集(dataMacro),其中包含以下变量的相应历年宏观经济数据:

  • 一年:日历年。

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

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

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

第三组数据(dataMacroStress)包含宏观经济变量的基线、不利和严重不利情景。的压力测试分析在本例中使用这个表。

加载模拟数据。

负载RetailCreditPanelData.matdisp(头(数据,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

对面板数据进行预处理,使其符合生存分析工具所期望的格式。

%使用groupsummary将数据减少到每行一个ID,并跟踪不论贷款是否拖欠。dataSurvival = groupsummary(数据,“ID”“和”“默认”);disp(头(dataSurvival 10))
ID GroupCount sum_Default __ __________ ___________ 1 8 0 2 8 0 3 8 0 4 6 0 5 7 0 6 7 0 7 8 0 8 6 0 9 7 0 10 8 0
你也可以从YOB中得到观测到的年份,尽管在本例中,YOB总是%从数据中的1开始,因此GroupCount等于最终的YOB。dataSurvival.Properties。VariableNames {2} =“YearsObserved”;dataSurvival.Properties。VariableNames {3} =“默认”如果没有违约,那就是经过审查的观察结果。dataSurvival。审查=~dataSurvival.Default; disp(head(dataSurvival,10))
ID yearsobobserved Default Censored __ _____________ _______ ________ 1 8 0真2 8 0真3 8 0真4 6 0真5 7 0真6 7 0真7 8 0真8 6 0真9 7 0真10 8 0真

主要变量是观察每笔贷款的时间(YearsObserved),这是书中年份的最终值(小无赖)变量。观察的这一年是直到违约的年数,或直到观察期结束(8年),或直到贷款由于提前支付从样本中删除。在这个数据集中小无赖信息与贷款的年龄相同,因为所有贷款都以a开头小无赖为1。对于其他数据集,这种情况可能是正确的。例如,在交易组合中小无赖年龄可能不同,因为在第三年购买的贷款有一个年龄3.,但小无赖值为1。

第二个所需变量为截尾变量(审查).在这个分析中,利息事件就是贷款违约。如果一笔贷款一直观察到违约,那么您就有了关于违约时间的所有信息。因此,生命周期信息是不受审查的或完整的。或者,如果在观察期结束时贷款没有违约,则认为信息被审查或不完整。该贷款不可能违约,因为它是预付的,或者该贷款在样本的8年观察期结束时没有违约。

添加ScoreGroup古董信息到数据。这些变量的值在贷款的整个生命周期内保持不变。在起始时给出的分数决定了ScoreGroup而起源年份决定了古董或队列。

你可以从YOB==1中得到ScoreGroup,因为在这个数据集中,% YOB总是从1开始,并且ID的顺序在data和中是相同的% dataSurvival。dataSurvival。ScoreGroup=数据.年代c或eGroup(data.YOB==1);根据贷款开始的年份确定年份。所有贷款%在该数据集中开始于他们生命的第一年。dataSurvival。古董=数据.一年(数据.小无赖==1);disp(头(dataSurvival 10))
ID YearsObserved默认审查ScoreGroup古董  __ _____________ _______ ________ ___________ _______ 1 8 0 1997年真正的低风险2 8 0真正中等风险1997 3 1997 0真正中等风险4 6 0真正中等风险1999 5 7 0真正中等风险1998 6 7 0真正中等风险1998 7 8 0真正中等风险1997 8 6 0真正中等风险1999 9 7 0真正的低风险1998 10 8 0真低风险

比较原始数据集(面板数据格式)和聚合数据集(更传统的生存格式)的行数。

流('原始数据的行数:%d\n'、高度(数据));
原始数据行数:646724
流('存活数据的行数:%d\n'高度(dataSurvival));
存活数据的行数:96820

使用经验累积分布函数绘制整个投资组合(所有得分组和年份)针对YOB的累积违约概率(ecdf).

ecdf (dataSurvival。YearsObserved,“审查”, dataSurvival。审查,“界限”“上”)标题(“所有得分组的累计违约概率”)包含(“年书”

图中包含一个轴对象。标题为“累积默认概率”的轴对象,所有得分组包含3个楼梯类型的对象。

对YOB策划有条件的一年pd。例如,有条件的一年PD小无赖3.是有条件的一年期PD,适用于生命第三年的贷款。在生存分析中,这个值与离散风险率一致,用表示h,因为某一特定年份的违约数量就是“失败”的数量,而同年年初帐面上仍然存在的贷款数量与“处于风险中的数量”相同。来计算h,得到累积风险函数输出,表示为H,并将其转换为风险函数h.有关更多信息,请参见kaplan meier方法

(H (x) = ecdf (dataSurvival。YearsObserved,“审查”, dataSurvival。审查,...“函数”“累积风险”);取H的差值,得到风险H。h = diff (h);x (1) = [];在这个例子中,观察到的时间(存储在变量x中)没有改变%不同的分数组,或训练与测试集。对于其他数据集,你可能需要在每次调用ecdf函数之后检查x和h变量%绘制或连接结果。(例如,如果数据集没有默认值%特定年份的测试数据。)情节(x, h,‘*’网格)标题(“有条件的一年期PDs”) ylabel (“PD”)包含(“年书”

图中包含一个轴对象。标题为条件一年制pd的axis对象包含一个类型为line的对象。

你也可以直接用groupsummary使用原始面板数据格式。有关更多信息,请参见配套示例,使用面板数据对消费者信贷违约概率的压力测试.或者,你可以用grpstats使用原始面板数据格式。这两种方法都提供相同的一年有条件pd。

PDvsYOBByGroupsummary = groupsummary(数据,“小无赖”“的意思是”“默认”);PDvsYOBByGrpstats = grpstats (data.Default data.YOB);PDvsYOB =表((1:8)、h、PDvsYOBByGroupsummary.mean_Default PDvsYOBByGrpstats,...“VariableNames”,{“小无赖”“ECDF”“Groupsummary”“Grpstats”});disp (PDvsYOB)
YOB ECDF Groupsummary Grpstats ____________ ____________ _________ 1 0.017507 0.017507 0.017507 2 0.012704 0.012704 0.012704 3 0.011168 0.011168 0.011168 4 0.010728 0.010728 0.010728 5 0.0085949 0.0085949 0.0085949 6 0.006413 0.006413 0.006413 7 0.0033231 0.0033231 0.0033231 8 0.0016272 0.0016272 0.0016272

将数据按ScoreGroup把警局分拆出来ScoreGroup

ScoreGroupLabels =类别(dataSurvival.ScoreGroup);NumScoreGroups =长度(ScoreGroupLabels);hSG = 0(长度(h)、NumScoreGroups);ii=1:NumScoreGroups Ind = dataSurvival.ScoreGroup==ScoreGroupLabels{ii};H = ecdf (dataSurvival.YearsObserved(印第安纳州),“审查”dataSurvival.Censored(印第安纳州));hSG集团(:,(二)= diff (H);结束情节(x, hSG集团)‘*’网格)标题(“有条件的一年pd,按分数分组”)包含(“年书”) ylabel (“PD”传奇(ScoreGroupLabels)

图中包含一个轴对象。轴对象的标题条件一年制pd,由分数组包含3个对象的类型线。这些对象代表高风险、中等风险、低风险。

您也可以通过古董信息,并以类似的方式分割数据。你可以用这些pd来对付小无赖或与日历年相反。要查看这些可视化,请参考使用面板数据对消费者信贷违约概率的压力测试

无宏观影响的Cox PH模型

本节将介绍如何安装考克斯无宏观信息的PH模型。该模型只包含时间无关的预测因子ScoreGroup贷款的来源。与时间无关的预测器包含的信息在贷款的整个生命周期中保持不变。本示例仅使用ScoreGroup,但其他与时间无关的预测因子可以添加到模型中(例如,古董信息)。

Cox比例风险回归是一种半参数方法,用于调整生存率估计,量化预测变量的影响。该方法将解释变量的影响表示为公共基线危险函数的乘数, h 0 t .风险函数是Cox比例风险回归函数的非参数部分,而预测变量的影响是一个对数线性回归。Cox PH模型为:

h X t h 0 t 经验值 j 1 p x ij b j

地点:

  • X x i1 x 知识产权 预测变量是什么主题。

  • b j 系数是j预测变量。

  • h X t 危险率是多少t X

  • h 0 t 为基线危险率函数。

有关详细信息,请参见考克斯fitcox考克斯比例风险模型以及其中的参考文献。

的基本考克斯PH模型假设预测值在贷款的整个生命周期中不发生变化。在这个例子中,ScoreGroup不改变,因为它是在贷款开始时给借款人的分数。古董在贷款的整个生命周期内也是恒定的。

一个考克斯模型可以使用时间依赖的分数。例如,如果信用评分信息每年更新,则在考克斯模型类似于稍后将宏变量添加到模型中的方法具有宏观影响的Cox PH模型部分。

适合一个考克斯寿命PD模型使用fitLifetimePDModel,使用原件数据表在面板数据格式。虽然生存数据的格式dataSurvival表可以与其他生存函数一起使用,如ecdffitcox,fitLifetimePDModel函数总是使用面板数据格式。这简化了具有或不具有时间依赖性模型的模型之间的切换,并将相同的面板数据格式用于验证函数,例如modelAccuracyPlot.拟合Cox模型时fitLifetimePDModel函数处理年龄变量(“AgeVar”参数)作为事件发生的时间,它使用响应变量(“ResponseVar”参数)二进制值,以识别截尾观测值。

在接下来的拟合模型中,唯一的预测器是ScoreGroup变量。的fitLifetimePDModel函数检查数据的周期性(最常见的年龄增量)并将其存储在“TimeInterval”财产的考克斯一生PD模型。的“TimeInterval”信息对于条件局部放电的预测具有重要意义预测

将数据分解为训练和测试子集,然后使用训练数据拟合模型。

nIDs = max (data.ID);uniqueIDs =独特(data.ID);rng (“默认”);%的再现性c = cvpartition (nIDs“坚持”, 0.4);TrainIDInd =培训(c);TestIDInd =测试(c);TrainDataInd = ismember (data.ID uniqueIDs (TrainIDInd));TestDataInd = ismember (data.ID uniqueIDs (TestIDInd));pdModel = fitLifetimePDModel(数据(TrainDataInd,:),考克斯的...“IDVar”“ID”“AgeVar”“小无赖”“LoanVars”“ScoreGroup”“ResponseVar”“默认”);disp (pdModel)
Cox属性:TimeInterval: 1 ExtrapolationFactor: 1 ModelID:“Cox”描述:“”模型:[1x1 CoxModel] IDVar:“ID”AgeVar:“YOB”LoanVars:“ScoreGroup”MacroVars:“ResponseVar:“Default”
disp (pdModel.Model)
Cox比例风险回归模型:Beta SE zStat pValue ________ ________ _______ ___________ ScoreGroup_Medium Risk -0.67831 0.037029 -18.319 5.8806e-75 ScoreGroup_Low Risk -1.2453 0.045243 -27.525 8.8419e-167

要预测条件pd,请使用预测.例如,预测第一个的PDID的数据。

PD_ID1 =预测(pdModel、数据(1:8,:))
PD_ID1 =8×10.0083 0.0059 0.0055 0.0052 0.0039 0.0033 0.0016 0.0009

将预测的pd与训练或测试数据中观察到的默认率进行比较,使用modelAccuracyPlot.此图显示了预测PD值的准确性(也称为模型校准,或预测能力)。为了保证PD模型的准确性,需要一个分组变量。通过使用小无赖作为分组变量,观察到的默认率与中讨论的默认率相同使用生存分析工具进行数据探索部分。

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

图中包含一个轴对象。标题为“Scatter Grouped by YOB Testing Cox, RMSE = 0.00072531”的轴对象包含2个类型为line的对象。这些物体代表观察到的,考克斯。

精度图接受第二个分组变量。例如,使用ScoreGroup作为第二个分组变量来可视化每个人的PD预测ScoreGroup,对小无赖

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

图中包含一个轴对象。标题为Scatter Grouped by YOB和ScoreGroup Testing Cox, RMSE = 0.001244的轴对象包含6个类型为line的对象。这些对象代表高风险,观察到的,中度风险,观察到的,低风险,观察到的,高风险,考克斯,中度风险,考克斯,低风险,考克斯。

modelDiscriminationPlot返回ROC曲线。使用可选的“SegmentBy”参数来可视化每一个的ROCScoreGroup

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

图中包含一个轴对象。ScoreGroup分割的标题为ROC Testing的轴对象包含3个类型为line的对象。这些对象代表Cox,高风险,AUROC = 0.62904, Cox,中度风险,AUROC = 0.61572, Cox,低风险,AUROC = 0.61719。

Cox模型的非参数部分允许它与训练数据模式紧密匹配,即使只是ScoreGroup作为该模型的预测因子。测试数据上的结果比训练数据上的结果误差更大,但这个结果仍然是很好的拟合。

添加宏信息是很重要的,因为压力测试和生存期PD预测都需要明确地依赖于宏信息。

具有宏观影响的Cox PH模型

本节将介绍如何安装考克斯PH模型,包括宏观信息,特别是国内生产总值(GDP)增长和股票市场增长。宏观变量的值每年都在变化,因此预测器是依赖于时间的。

Cox比例风险模型用于考虑时变变量的扩展如下:

h X t h 0 t 经验值 j 1 p1 x ij b j + k 1 p2 x k t c k

地点:

  • x ij 的预测变量值主语和主语j长期有效的预测。

  • x k t 的预测变量值主语和主语k时间依赖的预测器t。

  • b j 系数是j时间无关的预测变量。

  • c k 系数是k时间依赖的预测变量。

  • h X t t 危险率是多少t X t

  • h 0 t 为基线危险率函数。

有关详细信息,请参见考克斯fitcox,或考克斯比例风险模型以及其中的参考文献。

宏观变量被视为时变变量。如果是与时间无关的信息,如初始化ScoreGroup,为贷款的整个生命周期提供了一个基线风险水平,因此有理由预期,不断变化的宏观环境可能会增加或减少该基线水平附近的风险。此外,如果宏观环境发生变化,你可以预计,这些风险的变化每年都会有所不同。例如,在经济增长较低的年份,所有贷款的风险都应该更高,这与最初的贷款无关ScoreGroup

的数据输入考克斯具有时间依赖性预测因子的寿命PD模型使用原始面板数据,并添加了宏观信息。

如前所述,拟合Cox模型时fitLifetimePDModel函数处理年龄变量(“AgeVar”参数)作为事件发生的时间,它使用响应变量(“ResponseVar”参数)二进制值,以识别截尾观测值。在接下来的拟合模型中,预测因子是ScoreGroup国内生产总值,市场.的fitLifetimePDModel检查数据的周期性(最常见的年龄增量),并将其存储在“TimeInterval”财产的考克斯一生PD模型。对于依赖时间的模型“TimeInterval”值用于定义预测值为常量的每一行的年龄间隔。有关更多信息,请参见考克斯模型的时间间隔.的“TimeInterval”在使用时,信息对条件PD的预测也很重要预测

在内部,fitLifetimePDModel函数使用fitcox.使用fitLifetimePDModel因为信贷模式提供了一些优势fitcox.例如,当你直接与fitcox,对于时间无关的模型,您需要数据的生存版本,而对于时间相关的模型,则需要数据的“计数过程”版本(类似于面板数据表单,但带有附加信息)。的fitLifetimePDModel函数总是以面板数据形式作为输入,并在调用之前执行数据预处理fitcox.还有,与终身PD版本考克斯模型中,您可以访问底层Cox模型中不直接支持的特定于信用的预测和验证功能。万博1manbetx

data =加入(数据、dataMacro);头(数据)
ans =8×7表ID ScoreGroup小无赖默认的年国内生产总值(GDP)市场  __ __________ ___ _______ ____ _____ ______ 1低风险1 0 1997 2.72 7.61 - 1低风险2 0 1998 1999 2.86 18.1 3.57 26.24 - 1低风险3 0 1低风险4 0 2000 2.43 3.19 1低风险5 0 2002 2001 1.26 -10.51 - 1低风险6 0 -0.59 -22.95 1低风险7 0 2003 0.63 2.78 1低风险8 0 2004 1.85 - 9.48
pdModelMacro = fitLifetimePDModel(数据(TrainDataInd,:),考克斯的...“IDVar”“ID”“AgeVar”“小无赖”“LoanVars”“ScoreGroup”...“MacroVars”,{“国内生产总值”“市场”},“ResponseVar”“默认”);disp (pdModelMacro)
属性Cox: TimeInterval: 1 ExtrapolationFactor: 1 ModelID:“Cox”描述:“”模型:[1x1 CoxModel] IDVar:“ID”AgeVar:“YOB”LoanVars:“ScoreGroup”MacroVars:[“GDP”“市场”]ResponseVar:“违约”
disp (pdModelMacro.Model)
Cox比例风险回归模型:Beta SE zStat pValue __________ _________ _______ ___________ ScoreGroup_Medium Risk -0.6794 0.037029 -18.348 3.4442e-75 ScoreGroup_Low Risk -1.2442 0.045244 -27.501 1.7116e-166 GDP -0.084533 0.043687 -1.935 0.052995 Market -0.0084411 0.0032221 -2.6198 0.0087991

使用以下方法可视化预测PD值的准确性(也称为模型校准,或预测能力)modelAccuracyPlot

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

图中包含一个轴对象。标题为散在由YOB测试Cox, RMSE = 0.0007251的轴对象包含2个类型为line的对象。这些物体代表观察到的,考克斯。

宏观效应帮助模型更接近观察到的默认率,而与训练数据的匹配看起来就像是宏观模型的插值。

精度图由ScoreGroupROC曲线的创建方式与Cox模型相同,没有宏观变量。

压力测试

本节展示如何使用考克斯宏观模型。

假设监管机构为宏观经济变量提供了以下压力场景国内生产总值市场

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

下面的代码预测每个pdScoreGroup以及每个宏观场景。对于每个宏观场景的可视化,取平均值ScoreGroups将数据聚合成一个单独的PD小无赖

dataStress =表;dataStress。小无赖=repmat((1:8)',3,1); dataStress.ScoreGroup = repmat(""、大小(dataStress.YOB));dataStress.ScoreGroup (1:8) = ScoreGroupLabels {1};九16再者dataStress.ScoreGroup () = ScoreGroupLabels {2};dataStress.ScoreGroup(十七24)= ScoreGroupLabels {3};dataStress。国内生产总值=zeros(size(dataStress.YOB)); dataStress.Market = zeros(size(dataStress.YOB)); ScenarioLabels = dataMacroStress.Properties.RowNames; NumScenarios = length(ScenarioLabels); PDScenarios = zeros(length(x),NumScenarios);jj=1: numscenario Scenario = Scenario label {jj};dataStress.GDP (,) = dataMacroStress.GDP(场景);dataStress.Market (,) = dataMacroStress.Market(场景);%预测当前场景下每个ScoreGroup的PD。dataStress。PD=预测(pdModelMacro,dataStress);%平均PD超过ScoreGroups,按年龄,在单个图中可视化。PDAvgTable = groupsummary (dataStress,“小无赖”“的意思是”“PD”);PDScenarios (:, jj) = PDAvgTable.mean_PD;结束图;标题栏(x, PDScenarios) (“压力测试,违约概率”)包含(“年书”) ylabel (“PD”)传说(“基线”“不良”“严重”网格)

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

终身PD和ECL

本节展示如何使用考克斯如何计算预期信贷损失(ECL)。

对于生命周期建模,PD模型是相同的,但使用的方式不同。你需要预测的PDs不仅仅是一个时期之前,而是每个特定贷款生命周期中的每一年。在贷款的整个生命周期中,还需要宏观场景。本示例设置了可选的长期宏观场景,计算每个场景下的生命周期pd,并计算相应的1年pd、边际pd和生存概率。在每个宏观场景下,对每一年的寿命和边际PDs进行可视化。然后为每个场景和加权平均生命周期ECL计算ECL。

为了具体化,本例在第三年开始时研究了一笔8年期贷款,并预测了几年后的一年期PD3.通过8这笔贷款的期限。这个例子还计算了贷款剩余期限内的生存概率。生存概率之间的关系 年代 t 以及一年的有条件pd或危险率 h t ,有时也叫向前PDs,是:

年代 0 1 年代 1 1 - PD 1 年代 t 年代 t - 1 1 - PD t 1 - PD 1 1 - PD t

终身收益(LPD)是贷款期限内的累积收益,由生存概率的补充给出:

LPD t 1 - 年代 t

另一个利息量是边际PD (MPD),它是两个连续周期之间的生命周期PD的增加:

MPD t + 1 LPD t + 1 - LPD t

由此可知,边际PD也是连续时间段间生存概率的下降,也是危险率乘以生存概率:

MPD t + 1 年代 t - 年代 t + 1 PD t + 1 年代 t

有关更多信息,请参见predictLifetimekaplan meier方法.的predictLifetime函数支持生存期PD万博1manbetx、边缘PD和生存概率格式。

指定三个宏观经济情景,一个基线预测,以及两个基线增长的简单变动,即增加20%或减少20%更快的增长经济增长放缓,分别。本例中的场景以及相应的概率只是用于说明目的的简单场景。使用计量经济学工具箱™或统计学和机器学习工具箱™,可以使用更强大的模型构建更全面的情景集;见,例如,模拟美国经济(计量经济学工具箱).自动化方法通常可以模拟大量的场景。在实践中,只需要少量的情景,并结合定量工具和专家判断选择这些情景及其对应的概率。

CurrentAge = 3;目前开始第三年的贷款成熟= 8;贷款在第8年底结束YOBLifetime = (CurrentAge:成熟度)';NumYearsRemaining =长度(YOBLifetime);dataLifetime =表;dataLifetime。ID=在es(NumYearsRemaining,1); dataLifetime.YOB = YOBLifetime; dataLifetime.ScoreGroup = repmat(“高风险”、大小(dataLifetime.YOB));%高风险dataLifetime。国内生产总值=zeros(size(dataLifetime.YOB)); dataLifetime.Market = zeros(size(dataLifetime.YOB));用于生命周期分析的宏场景GDPPredict = (2.3;2.2;2.1;2.0;1.9;1.8);GDPPredict = [0.8*GDPPredict GDPPredict 1.2*GDPPredict];MarketPredict = [15;13;11; 9; 7; 5]; MarketPredict = [0.8*MarketPredict MarketPredict 1.2*MarketPredict]; ScenLabels = [“增长放缓”“基线”“快速增长”];NumMacroScen =大小(GDPPredict, 2);%计算生命周期ECL的场景概率PScenario = (0.2;0.5;0.3);PDLifetime = 0(大小(GDPPredict));PDMarginal = 0(大小(GDPPredict));ii = 1:NumMacroScen dataLifetime。国内生产总值= GDPPredict(:,(二);dataLifetime。市场=市场Predict(:,ii); PDLifetime(:,ii) = predictLifetime(pdModelMacro,dataLifetime);%默认返回生存期PDPDMarginal(:,(二)= predictLifetime (pdModelMacro dataLifetime,“ProbabilityType”“边际”);结束%从去年开始的生命周期PD值为0,以便可视化%的目的。tLifetime0 = (dataMacro.Year(结束):dataMacro.Year(结束)+ NumYearsRemaining) ';PDLifetime =[0(1、NumMacroScen); PDLifetime);tLifetime = tLifetime0(2:结束);图;subplot(2,1,1) plot(tLifetime0,PDLifetime) xticks(tLifetime0) grid . subplot(2,1,1) plot(tLifetime0,PDLifetime包含(“年”) ylabel (“一生PD”)标题(“按情景划分的终身PD”)传说(ScenLabels“位置”“最佳”)子plot(2,1,2) bar(tLifetime, pd边际)网格包含(“年”) ylabel (“边际PD”)标题(“按情景划分的边际PD”传奇(ScenLabels)

图中包含2个轴对象。带有标题Lifetime PD by Scenario的轴对象1包含3个类型为line的对象。这些对象表示较慢的增长、基线、较快的增长。标题为边际PD的轴对象2包含3个类型为bar的对象。这些对象表示较慢的增长、基线、较快的增长。

按场景划分,这些生存期pd是计算生存期预期信贷损失(ECL)的输入之一。ECL还需要每个场景的缺省损失(LGD)和缺省暴露(EAD)的生命周期值以及场景概率。为简单起见,本示例假设LGD和EAD值不变,但LGD和EAD模型的这些参数可能因场景和时间段而不同。有关更多信息,请参见fitLGDModelfitEADModel

寿命ECL的计算还需要贴现率的有效利率(EIR)。在本例中,折扣因子是在时间段结束时计算的,但也可以使用其他折扣时间。例如,你可以使用时间段之间的中点;也就是说,用6个月折现系数对第一年的金额进行折现,用1.5年折现系数对第二年的金额进行折现,以此类推)。

有了这些投入,预期信贷损失就出现了t的场景年代被定义为:

发射极耦合逻辑 t 年代 MPD t 年代 乐金显示器 t 年代 含铅 t 年代 阀瓣 t

在哪里t表示一个时间段,年代表示一个场景,并且 阀瓣 t 1 1 + EIR t

对于每个场景,生命周期ECL是通过在时间上添加ECL来计算的,从分析中的第一个时间周期到产品的预期生命周期T.在这个例子中,它是5年(这个贷款是一个简单的贷款,还有5年到期):

发射极耦合逻辑 年代 t 1 T 发射极耦合逻辑 t 年代

最后,在所有场景下,计算这些预期信贷损失的加权平均值,以得到单个生命周期的ECL值 P 年代 为情景概率:

发射极耦合逻辑 年代 1 NumScenarios 发射极耦合逻辑 年代 P 年代

乐金显示器= 0.55;%默认损失o = 100;%违约风险EIR = 0.045;%实际利率DiscTimes = tLifetime-tLifetime0 (1);DiscFactors = 1. / (1 + EIR)。^ DiscTimes;ECL_t_s = (PDMarginal *乐金显示器*含铅)。* DiscFactors;% ECL按年份和场景ECL_s =总和(ECL_t_s);按场景计算的ECL总数发射极耦合逻辑= ECL_s * PScenario;% ECL在所有场景的加权平均值%安排年度ecl以表格形式显示。%附加每个场景的ECL总数和场景概率。ECL_Disp = array2table ([ECL_t_s;ECL_s;PScenario ']);ECL_Disp.Properties。VariableNames = strcat (“Scenario_”字符串(1:NumMacroScen) ');ECL_Disp.Properties。RowNames = [strcat (“ECL_”字符串(tLifetime),“_”);“ECL_total_s”“Probability_s”];disp (ECL_Disp)
场景_1场景_2场景_3 __________ __________ __________ ECL_2005_s 0.95927 0.90012 0.8446 ECL_2006_s 0.703 0.66366 0.62646 ECL_2008_s 0.48217 0.45781 0.43463 ECL_2008_s 0.40518 0.38686 0.36931 ECL_2009_s 0.22384 0.21488 0.20624 ECL_2010_s 0.13866 0.13381 0.1291 ECL_total_s 2.9121 2.7571 2.6103 Probability_s 0.2 0.5 0.3
流(“终身发射极耦合逻辑:% g \ n”发射极耦合逻辑)
一生发射极耦合逻辑:2.7441

当LGD和EAD不依赖于场景(即使它们随时间而变化)时,使用寿命PD曲线的加权平均来得到一个单一的平均寿命PD曲线。

PDLifetimeWeightedAvg = PDLifetime * PScenario;ECLByWeightedPD =总和(diff *乐金显示器* o (PDLifetimeWeightedAvg)。* DiscFactors);流(“生存期ECL,使用加权生存期PD: %g,由于LGD和EAD不变,结果相同。”...ECLByWeightedPD)
寿命ECL,使用加权寿命PD: 2.7441,由于LGD和EAD不变,结果相同。

但是,当LGD和EAD值随场景而变化时,您必须首先在场景级别计算ECL值,然后找到ECL值的加权平均值。

结论

该示例展示了如何为pd拟合Cox模型,如何执行pd的压力测试,以及如何计算寿命pd和ECL。一个类似的例子,使用面板数据对消费者信贷违约概率的压力测试,遵循相同的工作流,但使用逻辑回归,而不是Cox回归。的fitLifetimePDModel功能支持万博1manbetx考克斯物流,Probit模型。本例末尾的生命周期PDs和ECL的计算也可以用logistic或probit模型进行。例如,请参见预计信用损失计算

参考文献

[1]贝森斯,巴特,丹尼尔·罗施,哈拉尔德·舍勒。信用风险分析:测量技术,应用,和例子在SAS。威利,2016年。

[2]贝里尼,Tiziano。IFRS 9和CECL信用风险建模和验证:在R和SAS中工作的实例的实用指南。加州圣地亚哥:爱思唯尔,2019。

美联储,综合资本分析与评估(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

另请参阅

|||||||||

相关的例子

更多关于