创建自定义一生PD模型对信用计分卡模型函数处理
这个例子展示了如何使用customLifetimePDModel
创建一个终生违约的概率模型。在面板中使用零售信贷数据格式,您可以创建一个信用计分卡模型,然后使用一个函数处理customLifetimePDModel
创建一个一生PD模型。
符合信用计分卡模型
加载数据集。
负载RetailCreditPanelData.matdata =加入(数据、dataMacro);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));
使用creditscorecard
创建一个creditscorecard
对象,然后使用autobinning
本数据。Alternativeliy,你可以使用本数据装箱的探险家。你可以适应模型使用fitmodel
。
sc = creditscorecard(数据(TrainDataInd,:),“IDVar”,“ID”,“PredictorVars”,{“ScoreGroup”“小无赖”“国内生产总值”“市场”},“ResponseVar”,“默认”)
sc = creditscorecard属性:GoodLabel: 0 ResponseVar:“违约”WeightsVar:“VarNames: {“ID”“ScoreGroup”“小无赖”“默认”“年”“GDP”“市场”}NumericPredictors:{“小无赖”“GDP”“市场”}CategoricalPredictors: {“ScoreGroup”} BinMissingData: 0 IDVar:“ID”PredictorVars: {“ScoreGroup”“小无赖”“GDP”“市场”}数据:(388097 x7表)
sc = autobinning (sc);sc = autobinning (sc,“小无赖”,“算法”,“分裂”);sc = fitmodel (sc);
1。添加ScoreGroup、偏差= 42417.8562 Chi2Stat = 986.130141, PValue = 1.85820778 e - 216 2。添加小无赖,异常= 41644.7594,Chi2Stat = 773.096796, PValue = 3.81440566 e - 170 3。增加市场,异常= 41616.8646,Chi2Stat = 27.8948108, PValue = 1.28092837 e-07 4。增加国内生产总值,异常= 41612.2361,Chi2Stat = 4.62852205, PValue = 0.0314446396广义线性回归模型:分对数(默认)~ 1 + GDP ScoreGroup +小无赖+ +市场=二项分布估计系数:估计SE tStat PValue说______ ___________(拦截)4.6006 0.017273 266.35 0 ScoreGroup 0.98953 0.033117 29.88 3.5837 e - 196小无赖1.0439 0.04216 24.76 2.4054 e - 135 GDP市场4.5496 2.1012 2.1652 0.03037 1.6892 0.44761 3.7738 0.00016076 388097年观察,388092错误自由度色散:1 x ^ 2-statistic与常数模型:1.79 e + 03,假定值= 0
displaypoints (sc)
ans =16×3表预测本售予_________点* * * {‘ScoreGroup}{“高风险”}0.61946 {‘ScoreGroup}{中等风险的}1.3073 {‘ScoreGroup}{“低风险”}1.8816 {‘ScoreGroup}{' <失踪>}南{“小无赖”}{[无穷,2)的0.56097}{“小无赖”}{[2、5)的1.0021}{“小无赖”}{[5、7)的1.4673}{“小无赖”}{'[7,正]}2.4996{“小无赖”}{' <失踪>}南{“GDP”}{[无穷,0.63)的1.051}{“GDP”}{'[0.63,正]}1.1664 {“GDP”}{' <失踪>}南{‘市场’}{[无穷,2.78)的1.0661}{‘市场’}{[2.78,9.48)的1.1262}{‘市场’}{'[9.48,正]}1.2358{‘市场’}{' <失踪>}NaN
验证creditscorecard
模型使用validatemodel
。
图;s = validatemodel (sc、数据(TestDataInd:)“阴谋”,“中华民国”);
disp (s)
测量值________________________ _________ 0.39124{的精度比}{ROC曲线下面积的}0.69562 {“KS统计”}0.28409 4.6019 {“k值”}
用信用计分卡模型作为终身PD模型
创建一个函数处理的probdefault
的函数creditscorecard
对象。唯一的变量函数处理(predictFcnHandle
)的数据。的creditscorecard
对象(sc
)是一个固定的参数probdefault
函数。
使用customLifetimePDModel
创建一个自定义的实例生命周期PD模型使用函数处理predictFcnHandle
。同时,建立模型的变量名。基类LifetimePDModel
使用这些变量名不同的验证和计算。
predictFcnHandle = @(数据)probdefault (sc、数据);pdModel = customLifetimePDModel (predictFcnHandle,“ModelID”,“MyScorecardModel”,“IDVar”,“ID”,“AgeVar”,“小无赖”,“LoanVars”,“ScoreGroup”,“MacroVars”,{“国内生产总值”,“市场”},“ResponseVar”,“默认”)
pdModel = CustomLifetimePD属性:ModelID:“MyScorecardModel”描述:“UnderlyingModel: @(数据)probdefault (sc、数据)IDVar:“ID”AgeVar:“小无赖”LoanVars:“ScoreGroup”MacroVars: [“GDP”“市场”]ResponseVar:“默认”
pdModel.UnderlyingModel
ans =function_handle与价值:@(数据)probdefault (sc、数据)
使用定制一生PD模型预测和验证分数
您可以使用pdModel
像任何其他一生PD模型。训练和测试数据集是面板数据格式,可以通过预测
或predictLifetime
。的预测
函数的作用是:返回条件PD,相同的预测probdefault
信用计分卡功能。的predictLifetime
的累积概率函数返回默认为每个ID。在这里,第一ID在测试数据集跨越前八行。条件PD可以向上或向下,但累计PD总是增加从一个时期到下一个。
CondPD =预测(pdModel、数据(TestDataInd:));LifetimePD = predictLifetime (pdModel、数据(TestDataInd:));disp ([CondPD (1:8) LifetimePD (1:8)))
0.0154 0.0154 0.0089 0.0241 0.0089 0.0328 0.0099 0.0424 0.0066 0.0488 0.0075 0.0559 0.0022 0.0580 0.0020 0.0599
通过将信用计分卡终身PD模型对象(pdModel
),您可以使用所有一生PD模型的验证功能是可用的。使用modelCalibrationPlot
绘制观察违约率相比,预测PDs分组数据。
图;modelCalibrationPlot (pdModel、数据(TestDataInd:),“小无赖”)
使用modelDiscriminationPlot
绘制ROC曲线。
图;modelDiscriminationPlot (pdModel、数据(TestDataInd:))
使用modelDiscriminationPlot
绘制ROC曲线段数据ScoreGroup
。
图;modelDiscriminationPlot (pdModel、数据(TestDataInd:),“SegmentBy”,“ScoreGroup”)
另请参阅
customLifetimePDModel
|fitLifetimePDModel
|预测
|predictLifetime
|modelDiscrimination
|modelDiscriminationPlot
|modelCalibration
|modelCalibrationPlot