计算条件PD
计算违约条件概率(PD)。conditionalPD
=预测(<一个href="#mw_f2c08ad6-ae33-487f-a5f7-93dcbf7180eb" class="intrnllnk">pdModel
,<一个href="#mw_a951c184-48bc-4372-886c-25c6aa5378c4" class="intrnllnk">数据
)
这个例子展示了如何使用<一个href="//www.tatmou.com/help/risk/fitlifetimepdmodel.html" class="a">fitLifetimePDModel
来拟合数据<一个href="//www.tatmou.com/help/risk/risk.credit.pd.probit.html" class="a">Probit
然后预测违约的条件概率(PD)。
加载数据
加载信贷组合数据。
负载RetailCreditPanelData.matdisp(头(数据))
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
disp(头(dataMacro))
年GDP市场____ _____ ______ 1997 2.72 7.61 1998 3.57 26.24 1999 2.86 18.1 2000 2.43 3.19 2001 1.26 -10.51 2002 -0.59 -22.95 2003 0.63 2.78 2004 1.85 9.48
将两个数据组件连接到一个数据集中。
data = join(data,dataMacro);disp(头(数据))
ID ScoreGroup YOB默认年份GDP市场__ __________ __________ _________ ______ 1低风险10 1997 2.72 7.61 1低风险20 1998 3.57 26.24 1低风险3 0 1999 2.86 18.1 1低风险4 0 2000 2.43 3.19 1低风险5 0 2001 1.26 -10.51 1低风险6 0 2002 -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);testdind =测试(c);TrainIDInd = ismember(data.ID,uniqueIDs(TrainIDInd));TestDataInd = ismember(data.ID,uniqueIDs(testdind));
创建一个Probit
终身PD模型
使用<一个href="//www.tatmou.com/help/risk/fitlifetimepdmodel.html" class="a">fitLifetimePDModel
要创建<一个href="//www.tatmou.com/help/risk/risk.credit.pd.probit.html" class="a">Probit
模型。
pdModel = fitLifetimePDModel(data(TrainDataInd,:)),“Probit”,...“AgeVar”,“小无赖”,...“IDVar”,“ID”,...“LoanVars”,“ScoreGroup”,...“MacroVars”, {“国内生产总值”,“市场”},...“ResponseVar”,“默认”);disp (pdModel)
Probit与属性:ModelID: "Probit"描述:""模型:[1x1 classreg.regr。CompactGeneralizedLinearModel] IDVar: "ID" AgeVar: "YOB" LoanVars: "ScoreGroup" MacroVars: ["GDP" "市场"]responsear: "违约"
显示底层模型。
disp (pdModel.Model)
紧凑广义线性回归模型:probit(Default) ~ 1 + ScoreGroup + YOB + GDP +市场分布=二项估计系数:估计SE tStat pValue __________ _________ _______ ___________(截距)-1.6267 0.03811 -42.685 0 ScoreGroup_Medium风险-0.26542 0.01419 -18.704 4.5503e-78 ScoreGroup_Low风险- 0.0.46794 0.016364 -28.595 7.775e-180 YOB -0.11421 0.0049724 -22.969 9.6208e-117 GDP -0.041537 0.014807 -2.8052 0.0050291市场-0.0029609 0.0010618 -2.7885 0.0052954 388097观测值,388091误差自由度离散度:1 Chi^2统计与常数模型:1.85e+03, p值= 0
训练和测试数据预测
预测训练或测试数据集的PD。
DataSetChoice =“培训”;如果DataSetChoice = =“培训”Ind = TrainDataInd;其他的Ind = TestDataInd;结束%预测条件PDPD = predict(pdModel,data(Ind,:));头(数据(印第安纳州,:))
ans =8×7表ID ScoreGroup YOB默认年份GDP市场__ __________ __________ _________ ______ 1低风险10 1997 2.72 7.61 1低风险20 1998 3.57 26.24 1低风险3 0 1999 2.86 18.1 1低风险4 0 2000 2.43 3.19 1低风险5 0 2001 1.26 -10.51 1低风险6 0 2002 -0.59 -22.95 1低风险7 0 2003 0.63 2.78 1低风险8 0 2004 1.85 9.48
disp (PD (1:8))
0.0095 0.0054 0.0045 0.0039 0.0036 0.0036 0.0017 0.0009
您可以使用以下工具分析和验证这些预测<一个href="//www.tatmou.com/help/risk/logistic.modeldiscrimination_lifetimepd.html" class="a">modelDiscrimination
而且<一个href="//www.tatmou.com/help/risk/logistic.modelaccuracy_lifetimepd.html" class="a">modelAccuracy
.
这个例子展示了如何使用<一个href="//www.tatmou.com/help/risk/fitlifetimepdmodel.html" class="a">fitLifetimePDModel
来拟合数据<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html" class="a">考克斯
然后预测违约的条件概率(PD)。
加载数据
加载信贷组合数据。
负载RetailCreditPanelData.matdisp(头(数据))
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
disp(头(dataMacro))
年GDP市场____ _____ ______ 1997 2.72 7.61 1998 3.57 26.24 1999 2.86 18.1 2000 2.43 3.19 2001 1.26 -10.51 2002 -0.59 -22.95 2003 0.63 2.78 2004 1.85 9.48
将两个数据组件连接到一个数据集中。
data = join(data,dataMacro);disp(头(数据))
ID ScoreGroup YOB默认年份GDP市场__ __________ __________ _________ ______ 1低风险10 1997 2.72 7.61 1低风险20 1998 3.57 26.24 1低风险3 0 1999 2.86 18.1 1低风险4 0 2000 2.43 3.19 1低风险5 0 2001 1.26 -10.51 1低风险6 0 2002 -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);testdind =测试(c);TrainIDInd = ismember(data.ID,uniqueIDs(TrainIDInd));TestDataInd = ismember(data.ID,uniqueIDs(testdind));
创建一个考克斯
终身PD模型
使用<一个href="//www.tatmou.com/help/risk/fitlifetimepdmodel.html" class="a">fitLifetimePDModel
要创建<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html" class="a">考克斯
模型。
ModelType =“考克斯”;pdModel = fitLifetimePDModel(data(TrainDataInd,:),ModelType,...“IDVar”,“ID”,“AgeVar”,“小无赖”,...“LoanVars”,“ScoreGroup”,“MacroVars”, {“国内生产总值”“市场”},...“ResponseVar”,“默认”);disp (pdModel)
考克斯与属性:时间间隔:1 ExtrapolationFactor: 1 ModelID:“考克斯”描述:“”模型:[1x1 CoxModel] IDVar:“ID”AgeVar:“YOB”LoanVars:“ScoreGroup”MacroVars:[“GDP”“市场”]responsear:“违约”
显示底层模型。
disp (pdModel.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
预测训练数据中未观察到的年龄值
Cox模型对训练数据中观察到的年龄值范围进行预测。要外推训练数据中大于最大年龄的年龄,需要一个外推规则。
当使用预测
与一个<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html" class="a">考克斯
模型,你可以设置ExtrapolationFactor
的属性<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html" class="a">考克斯
模型。默认情况下,ExtrapolationFactor
设置为1
.年龄值(AgeVar
)大于训练数据中观察到的最大年龄,预测
使用训练数据中观察到的最大年龄来计算条件PD。特别是,如果预测值不改变,只有年龄值改变时,预测PD值是常数ExtrapolationFactor
是1
.
为了说明这一点,选择与单个ID对应的行,并添加新的年龄增量值的新行,超出训练数据中观察到的最大年龄。训练数据中观察到的最大年龄为8岁;出于说明目的,添加带有年龄的行9
,10
,11
,12
.
%选择一个ID对应的行% ID 1从第1行到第8行只需要ID、年龄(YOB)和预测变量dataNewAge =数据(1:8,{“ID”“小无赖”“ScoreGroup”“国内生产总值”“市场”});%分配更多行这一行复制了相同的预测值dataNewAge(9:12,:) = repmat(dataNewAge(8,:),4,1);重置年龄值为9,10,11,12dataNewAge.YOB(9:12) = (9:12)';显示新的数据集disp (dataNewAge)
ID小无赖ScoreGroup GDP市场 __ ___ __________ _____ ______ 1 1低风险2.72 - 7.61 1 2低风险低风险2.86 - 18.1 3.57 - 26.24 1 - 3 1 4低风险2.43 - 3.19 1 5低风险1.26 -10.51 1 6低风险-0.59 -22.95 1 7低风险0.63 2.78 1 8低风险1.85 - 9.48 1 9低风险1.85 - 9.48 1 10 11低风险低风险1.85 9.48 1 1.85 9.48 1 12低风险1.85 - 9.48
当具有新年龄值的行中预测值不变且外推因子为时1
时,预测PD值为常数。如果将外推因子设置为小于1
,则随着年龄值的增大,预测PD值逐渐减小,并以指数形式向零递减。
%外推因子可调整pdModel。Extr一个pol一个t我onF一个ctor =1;将预测的条件PD存储在同一个表中dataNewAge。PD=预测(pdModel,d一个t一个NewAge); disp(dataNewAge)
ID小无赖ScoreGroup GDP市场PD __ ___ __________ _____ ______ __________ 1 1低风险2.72 7.61 0.0092197 1 2低风险低风险2.86 18.1 0.0046079 3.57 26.24 0.005158 1 - 3 1 4低风险2.43 3.19 0.0041351 1 5低风险6低风险-0.59 -22.95 0.0041128 1.26 -10.51 0.003645 1 1 7低风险0.63 2.78 0.0017034 1 8低风险1.85 9.48 0.00092551 1 9低风险1.85 9.48 0.00092551 1 10 11低风险低风险1.85 9.48 0.00092551 1 12低风险1.85 9.48 0.00092551 1.85 9.48 0.00092551 1
此外,观察外推因子对寿命预测的影响也是有用的。
绘制预测的条件PD值和寿命PD值,以查看外推因素对这两个概率的影响。垂直虚线分隔了已知的年龄值(直到并包括年龄值)8
),从训练数据中没有观察到的年龄值(大于8
).如果外推因子是1
,寿命PD呈稳定上升趋势,条件PD为常数。如果外推因子设置为较小的值,如0.5
,生命周期PD迅速变平,因为条件PD迅速下降到零。
dataNewAge。LifetimePD = predictLifetime(pdModel,dataNewAge);图;yyaxis左情节(dataNewAge.YOB dataNewAge.PD,‘*’) ylabel (“有条件的PD”) yyaxis正确的情节(dataNewAge.YOB dataNewAge.LifetimePD) ylabel (“一生PD”)标题(“未观察到年龄值的外推PD”)包含(“年龄”)参照线(8,“:”,样本外的网格)在
pdModel
- - - - - -违约模型概率物流
对象|Probit
对象|考克斯
对象默认模型的概率,指定为先前创建的<一个href="//www.tatmou.com/help/risk/risk.credit.pd.logistic.html">物流
,<一个href="//www.tatmou.com/help/risk/risk.credit.pd.probit.html">Probit
,或<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html">考克斯
对象使用<一个href="//www.tatmou.com/help/risk/fitlifetimepdmodel.html">fitLifetimePDModel
.
数据类型:对象
数据
- - - - - -数据数据,指定为aNumRows
——- - - - - -NumCols
表与预测预测器值,以进行寿命预测。预测器名称和数据类型必须与底层模型一致。
数据类型:表格
conditionalPD
—默认值的预测条件概率默认值的预测条件概率,返回为aNumRows
——- - - - - -1
数值向量。
有条件的PD是在没有违约的情况下违约的概率。
例如,预测第二年的有条件PD是借款人在第二年违约的概率,前提是借款人在第一年没有违约。
条件PD的公式是
在哪里
T是默认的时间。
Δt“时间间隔”是否与面板训练的周期性一致数据
(例如,每年一行)和默认指标值的定义。
默认指示灯为1
如果有超过1年的违约。有关时间间隔的详细信息,请参见<一个href="//www.tatmou.com/help/risk/risk.credit.pd.logistic.html" class="a">Logistic模型的时间间隔,<一个href="//www.tatmou.com/help/risk/risk.credit.pd.probit.html" class="a">Probit模型的时间间隔,<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html" class="a">Cox模型的时间间隔.
在后面的公式中<一个href="//www.tatmou.com/help/risk/risk.credit.pd.logistic.html">物流
,<一个href="//www.tatmou.com/help/risk/risk.credit.pd.probit.html">Probit
,<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html">考克斯
模型时,符号为:
X(t)为时间对应行的预测器数据t.
β是基础模型的系数向量。
为<一个href="//www.tatmou.com/help/risk/risk.credit.pd.logistic.html">物流
模型时,条件PD计算为:
为<一个href="//www.tatmou.com/help/risk/risk.credit.pd.probit.html">Probit
模型时,条件PD计算为:
为<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html">考克斯
模型时,条件PD计算为
在哪里年代是生存函数。生存函数依赖于通过危险比的预测值。有关更多信息,请参见<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html" class="a">考克斯比例风险模型.有不同的方法显式地表示PD对预测器的依赖。的实现。预测
函数使用的基线累积危险率函数由
在哪里h0是基线危险率。有关更多信息,请参见<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html" class="a">考克斯比例风险模型.使用基线累积危险率,PD公式考克斯
模型写为:
考克斯
模型基线累积危险函数H0为考克斯
模型以非参数方式拟合观测到的年龄值(即观测到的“时间到事件”)。
因此,需要某种形式的插值或外推来预测训练中没有观察到的年龄值数据
.在预测
函数,线性插值方法如下:
如果已知年龄值为t1,t2、……tN,t我-t我-1=Δt,如果t0=t1——Δt,那么:
H0(t) = 0,对于所有t≤t0.
H0(t)是线性插值的t我-1≤t≤t我,因为我= 0,…N.
H0(t)线性外推t>tN,沿着最后两个已知值定义的斜率H0(tN- 1),H0(tN).
这意味着基线危害率h0是分段常数,在最后一个拟合值之后保持不变。缺省情况下,在最后一个已知的年龄值之后,PD的计算方式如下
为t>tN.此行为与ExtrapolationFactor
的属性<一个href="//www.tatmou.com/help/risk/risk.credit.pd.cox.html">考克斯
模型。有关更多信息,请参见<一个href="//www.tatmou.com/help/risk/logistic.predict_lifetimepd.html" class="intrnllnk">用Cox终身PD模型预测条件PD.
考克斯
模型所实现的外推公式预测
函数包括ExtrapolationFactor
属性值
在哪里tN+k是时间值k在训练数据中观察到的最大年龄之后的时间段tN,也就是说,tN+k=tN+k*Δt.
默认情况下,外推因子为1
,从而得到公式中的<一个href="//www.tatmou.com/help/risk/logistic.predict_lifetimepd.html" class="intrnllnk">考克斯模型的外推部分,其中PD值随着年龄的增加保持不变-如果预测值没有变化。如果将外推因子设置为小于1
时,预测PD值呈指数下降0
.因子越小,条件PD值下降得越快,生命周期PD值趋于平缓的速度就越快。
一般来说,PD值趋向于在贷款期限结束时下降,因为借款人池在较早的时候得到了治愈。这种情况发生的速度取决于产品,必须根据具体情况进行校准。
请注意,<一个href="//www.tatmou.com/help/risk/risk.credit.pd.logistic.html">物流
而且<一个href="//www.tatmou.com/help/risk/risk.credit.pd.probit.html">Probit
模型不需要特别考虑插值或外推。这些模型是全参数模型,并预测数据集中观察到的数值之间或超出数值的任何值的条件PD。
[1] Baesens, Bart, Daniel Roesch和Harald Scheule。信用风险分析:SAS中的测量技术、应用和示例。威利,2016年。
贝利尼,蒂齐亚诺。IFRS 9和CECL信用风险建模和验证:R和SAS中实例的实用指南。加州圣地亚哥:爱思唯尔,2019年。
布里登,约瑟夫。与CECL一起生活:建模词典。圣达菲,NM: Prescient Models LLC, 2018。
Roesch, Daniel和Harald Scheule。深度信用风险:使用Python的机器学习。独立出版,2020年。
modelAccuracy
|modelDiscrimination
|modelDiscriminationPlot
|modelAccuracyPlot
|predictLifetime
|fitLifetimePDModel
|物流
|Probit
|考克斯
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。