主要内容

modelCalibration

观察到的预测和计算RMSE PDs分组数据

自从R2023a

描述

例子

CalMeasure= modelCalibration (pdModel,数据,GroupBy)计算均方误差(RMSE)观察与预测违约概率(PD)。GroupBy是必需的,可以列吗数据输入(不一定是一个模型变量)。的modelCalibration函数计算每组观察到的PD的违约率和预测PD每组的平均PD。modelCalibration万博1manbetx支持对参考模型的比较。

例子

(CalMeasure,CalData)= modelCalibration (___,名称,值)指定选项使用一个或多个名称-值对参数除了输入参数在前面的语法。

例子

全部折叠

这个例子展示了如何使用fitLifetimePDModel以适应数据物流模型,然后使用modelCalibration计算均方误差(RMSE)观察到的违约概率(PDs)对预测PDs。

加载数据

加载信贷投资组合数据。

负载RetailCreditPanelData.matdisp(头(数据))
ID ScoreGroup小无赖默认年__ __________ ___ ____ ____ 1低风险1 0 1998 1997 1低风险2 0 1低风险1999 1低风险4 0 0 2001 2000 1低风险5 0 1低风险6 0 2002 1低风险7 0 2003 1低风险8 0 2004
disp(头(dataMacro))
1998年国内生产总值__专攻市场1997 2.72 - 7.61 3.57 - 26.24 1999 2.86 2001 18.1 2000 2.43 3.19 1.26 -10.51 2002 -0.59 2004 -22.95 2003 0.63 - 2.78 1.85 - 9.48

加入到一个数据集的两个数据组件。

data =加入(数据、dataMacro);disp(头(数据))
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

对数据进行分区

单独的数据为训练和测试的分区。

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));

创建物流一生PD模型

使用fitLifetimePDModel创建一个物流使用训练数据模型。

pdModel = fitLifetimePDModel(数据(TrainDataInd,:),“物流”,“AgeVar”,“小无赖”,“IDVar”,“ID”,“LoanVars”,“ScoreGroup”,“MacroVars”,{“国内生产总值”,“市场”},“ResponseVar”,“默认”);disp (pdModel)
物流与属性:ModelID:“物流”描述:“UnderlyingModel: [1 x1 classreg.regr。CompactGeneralizedLinearModel] IDVar:“ID”AgeVar:“小无赖”LoanVars:“ScoreGroup”MacroVars: [“GDP”“市场”]ResponseVar:“默认”

显示底层模型。

pdModel.UnderlyingModel
ans =紧凑的广义线性回归模型:分对数(默认)~ 1 + GDP ScoreGroup +小无赖+ +市场=二项分布估计系数:估计SE tStat pValue __________ ___________和___________(拦截)-2.7422 0.10136 -27.054 3.408 e - 161 ScoreGroup_Medium风险-0.68968 0.037286 -18.497 2.1894 e - 76 ScoreGroup_Low风险-1.2587 0.045451 -27.693 8.4736 e - 169小无赖-0.30894 0.013587 -22.738 1.8738 e - 114 GDP市场-0.11111 0.039673 -2.8006 0.0051008 -0.0083659 0.0028358 -2.9502 0.0031761 388097年观察,388091错误自由度色散:1 x ^ 2-statistic与常数模型:1.85 e + 03,假定值= 0

计算模型校准

违约的概率预测模型校正措施。例如,如果模型预测10%的PD组,这个组最终表现出近似10%的违约率,还是最终率更高或者更低?虽然模型歧视措施风险排名只,模型校准测量预测风险的水平。

modelCalibration计算均方误差(RMSE)观察到PDs对预测PDs。分组变量,它可以是任何需要列在数据输入(不一定是一个模型变量)。的modelCalibration函数计算每组观察到的PD的违约率和预测PD每组的平均PD。

DataSetChoice =“培训”;如果DataSetChoice = =“培训”印第安纳州= TrainDataInd;其他的印第安纳州= TestDataInd;结束GroupingVar =“小无赖”;[CalMeasure, CalData] = modelCalibration (pdModel、数据(印第安纳州,:),GroupingVar, DataID = DataSetChoice)
CalMeasure =RMSE _____物流,按小无赖分组,培训0.0004142
CalData =16×4表ModelID小无赖PD GroupCount __________ ___ _____ _____“观察”58092“观察”2 0.012305 0.017421 0.011382 56723“观察”55524“观察”4 0.010741 54650“观察”53770“观察”6 0.0066747 0.00809 0.0032198 53186“观察”7 36959“观察”8 0.0018757 19193 0.017185“物流”58092“物流”56723“物流”3 0.01131 0.012791 0.010615 55524“物流”54650“物流”53770“物流”6 0.0058744 0.0083982 0.0035872 53186“物流”7 36959 19193 0.0023689“物流”

使用可视化模型校准modelCalibrationPlot

modelCalibrationPlot (pdModel数据(印第安纳州,:),GroupingVar, DataID = DataSetChoice);

图包含一个坐标轴对象。坐标轴对象与标题分散按小无赖分组培训物流、RMSE = 0.0004142,包含小无赖,ylabel PD包含2线类型的对象。一个或多个行显示的值只使用这些对象标记代表观察到,物流。

您可以使用多个变量进行分组。对于这个示例,组的变量小无赖ScoreGroup

CalMeasure = modelCalibration (pdModel、数据(印第安纳州:)(“小无赖”,“ScoreGroup”),DataID = DataSetChoice);disp (CalMeasure)
RMSE __________物流,按小无赖,分组ScoreGroup、培训0.00066239

现在想象两个分组变量使用modelCalibrationPlot

modelCalibrationPlot (pdModel、数据(印第安纳州:),(“小无赖”,“ScoreGroup”),DataID = DataSetChoice);

图包含一个坐标轴对象。坐标轴对象与标题散射分组通过小无赖和ScoreGroup培训物流,RMSE = 0.00066239,包含小无赖,ylabel PD包含6行类型的对象。一个或多个行显示的值只使用这些对象标记代表高风险,观察,中等风险,观察,低风险、观察,高风险,物流,中等风险,物流、低风险、物流。

输入参数

全部折叠

违约概率模型,指定为一个以前创建的物流,Probit,或考克斯对象使用fitLifetimePDModel。或者,您可以创建一个定制的违约概率模型使用customLifetimePDModel

数据类型:对象

数据,指定为一个NumRows——- - - - - -NumCols表与预计值预测寿命预测。预测的名称和数据类型必须与底层模型一致。

数据类型:

列的名称数据输入用于组数据,指定为字符串或字符向量。GroupBy不需要一个模型变量的名字。为每个组指定的GroupBy,modelCalibration函数计算观察到的违约率和平均预测PDs RMSE计算来衡量。

数据类型:字符串|字符

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:[CalMeasure, CalData] = modelCalibration (pdModel、数据(印第安纳州,:),GroupBy =[“粗野”、“ScoreGroup”], DataID =“DataSetChoice”)

数据集标识符指定为DataID和一个字符或字符串向量。DataID包含在modelCalibration输出报告的目的。

数据类型:字符|字符串

有条件的PD值预测数据参考模型,指定为ReferencePD和一个NumRows——- - - - - -1数值向量。函数的报告modelCalibration输出的信息pdModel对象和参考模型。

数据类型:

标识符的参考模型,指定为ReferenceID和一个字符或字符串向量。ReferenceID用于modelCalibration输出报告的目的。

数据类型:字符|字符串

输出参数

全部折叠

校准标准,作为一个单列表RMSE值返回。

如果只有这表有一行pdModel测量精度和它有两个行如果参考模型的信息。的行名称CalMeasure报告模型IDs,分组变量和数据ID。

请注意

报道RMSE值取决于所需的分组变量GroupBy论点。

校准数据,作为观察和预测表PD返回值为每个组。

报告发现PD值对应于每组观察到的违约率。报告预测PD值平均PD值预测的pdModel为每一组对象,同样的参考模型。的modelCalibration函数栈PD数据,首先将所有组的观测值,然后预测PDs的pdModel,然后参考模型的预测PDs,如果。

“ModelID”识别哪些行对应观察帕金森病,pdModel或参考模型。表对每个分组变量也有一列显示分组的独特组合值。的“PD”列的CalData是一个PD的数据。最后一列的CalData是一个“GroupCount”列组统计数据。

更多关于

全部折叠

模型校准

模型校准测量的准确性预测违约概率(PD)值。

测量模型校准,必须比较预测PD值来观察到的违约率。举个例子,如果一群客户预计平均PD的5%,然后是这个群体的观察违约率接近5% ?

modelCalibration函数需要一个分组变量来计算平均预测PD值在每个组和平均违约率也在每个组。modelCalibration使用根均方误差(RMSE)测量观测值和预测值之间的偏差在组。例如,分组变量可以是历年,这行对应于相同的历年被组合在一起。然后,对于每年的软件计算观察到的违约率和平均预测PD。的modelCalibration函数然后RMSE公式适用于获得一个预测误差的测量在所有年的样本。

假设有N个观测数据集,还有G1、……G。集团的违约率G

D R = D N

地点:

D是默认组中观察到的数量吗G

N观察组的数量吗G

平均预测违约概率PD为集团G

P D = 1 N j G P D ( j )

在哪里PD(j)是观察的违约概率j。换句话说,这是集团内预测PDs的平均值G

因此,RMSE计算

R 年代 E = = 1 ( N N ) ( D R P D ) 2

定义,RMSE取决于选定的分组变量。例如,分组和历年的分组years-on-books可能导致不同RSME值。

使用modelCalibrationPlot可视化观察违约率和预测PD对分组数据值。

引用

[1]Baesens,巴特,丹尼尔•罗斯切和Harald Scheule。信贷风险分析:测量技术、应用程序和SAS的例子。威利,2016年。

[2]贝里尼,Tiziano。IFRS 9和CECL信用风险建模和验证:一个实用指南的例子在R和SAS。圣地亚哥CA:爱思唯尔出版社,2019年。

[3]布里登,约瑟夫。生活在CECL:建模字典。圣达菲,海里:先见之明模型有限责任公司,2018年。

[4]罗斯切,丹尼尔和哈拉尔德Scheule。与Python深信用风险:机器学习。独立出版,2020年。

版本历史

介绍了R2023a