主要内容

缺失值的信用记分卡建模

这个例子展示了当您使用creditscorecard对象。首先,这个例子展示了如何使用creditscorecard功能,为缺失的数据创建一个显式箱与相应的点。然后,本例描述四种不同的方法来“处理”缺失的数据获取一个最终的信用记分卡,其中没有显式的包含丢失值的容器。

开发一个信用记分卡与显式箱缺失值

当你创建一个creditscorecard对象,数据可以包含缺失值。使用时creditscorecard创建一个creditscorecard对象的名称-值对参数“BinMissingData”设置真正的.在这种情况下,数字预测器的缺失数据(值)和分类预测器(<定义>值)被装箱在一个单独的箱标记< >失踪那个出现在垃圾箱结束时。培训数据中没有缺失值的预测器没有< >失踪箱子如果不指定“BinMissingData”参数或如果您设置“BinMissingData”错误的,creditscorecard函数在计算Good和Bad的频率时丢弃丢失的观察值,而两者都不是bininfo也不绘图函数报告此类观察结果。

< >失踪Bin在记分卡建模过程中始终保持在适当的位置。最后的记分卡显式地指出,对于具有< >失踪箱子这些点是由证据权重(WOE)值确定的< >失踪垃圾箱和预测器的逻辑模型系数。对于没有明确的预测器< >失踪,您可以使用名称-值对参数将点赋给缺失的值“失踪”formatpoints,如本示例中所述,或者通过使用其中一个四种不同的方法来“处理”缺失的数据

Datamissing.表中CreditCardData.mat文件有两个缺少值的预测器-CustAgeResStatus, .

加载CreditCardData.mat头(Datamissing,5)
ans =5×11表CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate地位  ______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______ 53 62 <定义>未知50000 55是的1055.9 - 0.22 0 2 61 22业主雇佣52000 25是的1161.6 - 0.24 0 3 47 30租户雇佣了37000 61877.23 0.29 0 4 NaN 75自雇业主53000 20是157.37 0.08 0 5 68 56自雇业主53000 14是561.84 0.11 0

创建一个creditscorecard对象使用CreditCardData.mat文件加载Datamissing.缺少值的表。设置“BinMissingData”参数真正的.应用自动装箱。

sc = creditscorecard(Datamissing,'idvar''Custid'“BinMissingData”,真正的);sc = autobinning (sc);

垃圾箱信息和垃圾箱,用于丢失数据的预测器都显示出一个< >失踪Bin在最后。

bi = bininfo (sc,“守护”);disp (bi)
本好不好悲哀InfoValue几率  _____________ ____ ___ ______ ________ __________ {'[- 正无穷,33)52}69 1.3269 -0.42156 0.018993{[33岁,37)}63年45 1.4 -0.36795 0.012839{[37、40)}72年47 1.5319 -0.2779 0.0079824{'[40岁,46)}172 89 1.9326 -0.04556 0.0004549{'[46岁,48)}59 25 2.36 0.15424 0.0016199{[48,51)}99年41 2.4146 0.17713 0.0035449{'[51,58)'} 157 62 2.5323 0.22469 0.0088407 {'[58,Inf]'} 93 25 3.72 0.60931 0.032198 {''} 19 11 1.7273 -0.15787 0.00063885 {' total '} 803 397 2.0227 NaN 0.087112
PlotBins(SC,“守护”)

图中包含一个轴对象。标题为CustAge的轴对象包含三个类型为bar, line的对象。这些对象代表好和坏。

bi = bininfo (sc,'resstatus');disp (bi)
Bin Good Bad Odds WOE InfoValue ______________ _____________ _________ __________ {'Tenant'} 296 161 1.8385 -0.095463 0.0035249 {'Home Owner'} 352 171 2.0585 0.017549 0.00013382 {'Other'} 128 52 2.4615 0.19637 0.0055808 {''} 27 13 2.0769 0.026469 2.3248e-05 {' total '} 803 397 2.0227 NaN 0.0092627
PlotBins(SC,'resstatus')

图中包含一个轴对象。标题为ResStatus的axis对象包含三个类型为bar, line的对象。这些对象代表好和坏。

训练数据“守护”'resstatus'预测器具有缺少数据(<定义>).装箱过程估计的WOE值-0.157870.026469,分别为这些预测因子中的缺失数据。

的训练数据EmpStatusCustIncome没有明确的bin用于< >失踪值,因为这些预测器没有缺失值。

bi = bininfo (sc,“EmpStatus”);disp (bi)
箱子好赔率悲伤患者________________ ______ ___________________________0.0278/204803
bi = bininfo (sc,“CustIncome”);disp (bi)
本好不好悲哀InfoValue几率  _________________ ____ ___ _______ _________ __________ {'[- 正无穷,29000)}53 58 0.91379 -0.79457 0.06364{[29000、33000)}74年49 1.5102 -0.29217 0.0091366{[33000、35000)的36}68 1.8889 -0.06843 0.00041042{[35000、40000)的}193 98 1.9694 -0.026696 0.00017359{[40000、42000)}68 2 -0.011271 - 1.0819 e-05 34{'[42000,47000)'} 164 66 2.4848 0.20579 0.0078175 {'[47000,Inf]'} 183 56 3.2679 0.47972 0.041657 {' total '} 803 397 2.0227 NaN 0.12285

使用fitmodel拟合一个逻辑回归模型使用祸兮福所及值。fitmodel在内部将所有预测变量转换为祸值,使用在自动装箱过程中发现的箱子。默认情况下,fitmodel然后用逐步方法拟合logistic回归模型。对于缺少数据的预测器,有一个明确的< >失踪bin,并根据数据计算相应的WOE值。当你使用fitmodel,相应的WOE值为< >失踪bin在函数执行WOE变换时被应用。

(sc, mdl) = fitmodel (sc,“显示”“关闭”);

通过使用点对级的点(PDO)方法缩放记分卡点数'positeoddsandpdo'的观点formatpoints.假设您希望得分为500分,达到2的赔率(两倍于差不多),并且每50分都是每50分的赔率增加(因此550分也有4个)。

显示显示在拟合模型中保留的预测器的缩放点的记分卡。

sc = formatpoints (sc,'positeoddsandpdo', (500 2));PointsInfo = displaypoints (sc)
diotninfo =38×3表预测变量_____________ ____________________60.012 {'Catere'} {'[40,46)'} 69.636 {'CORERE'} {'[46,48)'} 77.912 {'监护} {'[48,51)'} 78.86'} {'[51,58)'} 80.83 {'catere'} {'62.138 {'Resstatus'} {'归属主'} 73.248 {'Resstatus'} {'其他'} {'其他'} 90.828 {'Resstatus'} {'<缺少>'} 74.125 {'empstatus'} {'未知'} 58.807 {'empstatus'} {'雇用'} 86.937 {'empstatus'} {'<缺少>'} nan⋮

注意到这一点< >失踪的箱子CustAgeResStatus显式显示(如64.9836.74.1250, 分别)。这些点是从WOE值计算的< >失踪Bin和logistic模型系数。

默认情况下,训练集中没有丢失数据的预测器的点被设置为结果导致了一系列当您运行分数.这可以通过更新名称-值对参数来更改“失踪”formatpoints指示如何处理缺失的数据以进行评分。

记分卡已准备好进行新的数据集。您还可以使用记分卡计算默认值或执行模型验证的概率。有关详细信息,请参阅分数probdefault,vigwateModel..为了进一步研究丢失数据的处理,从原始数据中提取几行作为测试数据,并引入一些丢失的数据。

tdata = datamissing(11:14,mdl.predictornames);%只保留模型中的预测器%设置一些缺失的值TDATA.Custage(1)= NAN;tdata.resstatus(2)=' <定义> ';tdata.EmpStatus (3) =' <定义> ';tdata.CustIncome(4) =南;disp (tdata)
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance _______ ___________ ___________ __________ _______ _______ _________ NaN Tenant Unknown 34000 44 Yes 119.8 48  Unknown 44000 14 Yes 403.62 65 Home Owner  48000 6 No 111.88 44 Other Unknown NaN 35 No 436.41

对新数据进行评分,并查看对缺失数据的评分是如何不同分配的CustAgeResStatusEmpStatusCustIncomeCustAgeResStatus有一个明确的< >失踪垃圾桶缺少数据。但是,对于EmpStatusCustIncome,分数功能设置点

(分数,分)=分数(sc tdata);disp(分数)
481.2231 520.8353南楠
DISP(点)
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance _______ _________ _________ __________ _______ _______ _________ 64.984 62.138 58.807 67.893 61.858 75.622 89.922 78.86 74.125 58.807 82.439 61.061 75.622 89.922 96.76 73.248 NaN 96.969 51.132 50.914 89.922 69.636 90.828 58.807 NaN 61.858 50.914 89.922

使用名称值对参数“失踪”formatpoints选择如何为没有明确的预测器分配给缺少的值< >失踪箱子在本例中,使用“MinPoints”选择“失踪”论点。为EmpStatusCustIncome,记分卡中的最小点数是58.807229.3753,分别。也可以使用四种不同的方法来“处理”缺失的数据

sc = formatpoints (sc,“失踪”“MinPoints”);(分数,分)=分数(sc tdata);disp(分数)
481.2231 520.8353 517.7532 451.3405
DISP(点)
CustAge ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance _______ _________ _________ __________ _______ _______ _________ 64.984 62.138 58.807 67.893 61.858 75.622 89.922 74.125 78.86 58.807 82.439 61.061 75.622 89.922 73.248 96.76 58.807 96.969 51.132 50.914 89.922 69.636 90.828 58.807 29.375 61.858 50.914 89.922

四种处理缺失数据的方法和开发新的信用记分卡

有四种不同的方法来处理丢失的数据。

方法1:使用fillmissing的函数creditscorecard对象

creditscorecard对象支持金宝appfillmissing函数。当对一个或一组预测器调用函数时fillmissing函数使用用户指定的统计信息填充缺失的数据。fillmissing金宝app支持填充值“的意思是”“中值”“模式”,'持续的',以及切换回原始数据的选项。

使用的优点fillmissing是,creditscorecard对象跟踪填充值,并将其应用于验证数据。这种方法的局限性在于,仅使用基本统计信息来填充缺失的数据。

有关方法1,请参阅fillmissing

方法二:用MATLAB填充缺失数据®fillmissing函数

MATLAB®支金宝app持A.fillmissing函数,可以在创建creditscorecard对象以数字和分类数据处理缺失值。此方法的优势在于您可以使用可用的所有选项fillmissing来填充缺失的数据,以及MATLAB的其他功能,如标准造理以及治疗异常值的功能。但是,缺点是您负责在得分之前对验证数据的相同转换fillmissing函数的外部creditscorecard对象。

有关方法2,请参阅使用Matlab®Fillmissing在信用记分卡工作流中处理缺失数据

方法3:使用k-nearest neighbors (KNN)算法估算缺失数据

与方法1和方法2相比,这种KNN方法考虑了多个预测因子。就像方法2,KNN方法是在外面完成的creditscoreacrd工作流程,因此,您需要对培训和验证数据进行估算。

有关方法3,请参阅使用K-Collest邻居算法赋予信用记分卡工作流程中的缺失数据

方法4:使用随机森林算法估算缺失数据

这种随机森林方法类似于方法3并使用多个预测器来推断缺失的值。因为这个方法是在creditscorecard工作流程,您需要对培训和验证数据进行估算。

有关方法4,请参阅利用随机森林算法对信用计分卡工作流中的缺失数据进行补全

也可以看看

|||

相关的话题