主要内容

creditscorecard

创建creditscorecard对象构建信用记分卡模型

描述

创建一个信用记分卡模型creditscorecard对象,并以表格格式指定输入数据。

在创建一个creditscorecard对象,您可以使用相关的对象函数来存放数据并执行逻辑回归分析,以开发一个信用记分卡模型来指导信用决策。这个工作流展示了如何开发一个信用记分卡模型。

  1. 使用screenpredictors(风险管理工具箱)从风险管理工具箱™中将潜在的大量预测因素缩减为最能预测信用评分卡响应变量的子集。在创建creditscorecard对象。

  2. 创建一个creditscorecard对象(如创建creditscorecard属性).

  3. 使用autobinning

  4. 拟合逻辑回归模型使用fitmodelfitConstrainedModel

  5. 检查和格式化信用记分卡点数使用displaypointsformatpoints.在工作流的这一点上,如果您有风险管理工具箱的许可证,您可以选择创建一个compactCreditScorecard对象(csc)使用紧凑的函数。然后可以使用以下函数displaypoints(风险管理工具箱)分数(风险管理工具箱),probdefault(风险管理工具箱)风险管理工具箱中的csc对象。

  6. 使用以下方法对数据进行评分分数

  7. 使用。计算数据的违约概率probdefault

  8. 使用验证信用记分卡模型的质量validatemodel

有关此工作流的更详细信息,请参见信用记分卡建模工作流

创建

描述

例子

sc= creditscorecard (数据创建一个creditscorecard通过指定对象数据.信用记分卡模型,返回为creditscorecard对象,包含一个或多个预测器的分类映射或规则(切点或类别分组)。

例子

sc= creditscorecard (___名称,值属性使用前面语法中的名称-值对和任何参数。例如,sc = creditscorecard(数据,“GoodLabel”,0,‘IDVar’,‘CustID’,‘ResponseVar’,‘身份’,‘PredictorVars’,{‘CustAge’,‘CustIncome},‘WeightsVar’,‘RowWeights’,‘BinMissingData’,真的).可以指定多个名称-值对。

请注意

要在信用记分卡工作流中使用观察(示例)权重,请在创建creditscorecard对象,则必须使用可选的名称-值对WeightsVar中定义的列数据包含权重。

输入参数

全部展开

数据creditscorecard对象,指定为MATLAB®表,其中每列数据可以是下列任意一种数据类型:

  • 数字

  • 逻辑

  • 字符向量的单元格数组

  • 字符数组

  • 分类

  • 字符串

此外,该表必须包含一个二进制响应变量。在创建一个creditscorecard对象,执行数据准备任务以具有适当的结构数据作为输入creditscorecard对象。的数据输入设置数据财产。

数据类型:表格

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:sc = creditscorecard(数据,“GoodLabel”,0,‘IDVar’,‘CustAge’,‘ResponseVar’,‘身份’,‘PredictorVars’,{‘CustID’,‘CustIncome},‘WeightsVar’,‘RowWeights’,‘BinMissingData’,真的)

响应变量中的两个可能值对应于“Good”观测值的指标,指定为逗号分隔的对,由“GoodLabel”以及数字标量、逻辑或字符向量。的GoodLabel名称-值对参数设置GoodLabel财产。

当指定GoodLabel,请遵循以下指导方针。

如果Response Variable是… GoodLabel必须……
数字 数字
逻辑 逻辑或数字
字符向量的单元格数组 特征向量
字符数组 特征向量
分类 特征向量

如果不指定,GoodLabel设置为具有最高计数的响应值。但是,如果是可选的WeightsVar参数在创建时提供creditscorecard对象,则计数将被加权频率替换。有关更多信息,请参见利用观测权建立信用记分卡模型

GoodLabel只能在创建creditscorecard对象。此参数不能使用点表示法设置。

数据类型:字符|

用作观察的ID或标记的变量名,指定为逗号分隔对,由“IDVar”一个字符向量。的IDVar数据可以是一个序号(例如,1、2、3…),一个社会安全号码。这是为了方便从预测器变量中删除这一列。IDVar是区分大小写的。的IDVar名称-值对参数设置IDVar财产。

可选参数creditscorecard函数或在命令行使用点表示法,如下所示。

例子:sc.IDVar = ' CustID '

数据类型:字符

“Good”或“Bad”指示符的响应变量名,指定为逗号分隔对组成“ResponseVar”一个字符向量。响应变量数据必须是二进制的。的ResponseVar名称-值对参数设置ResponseVar财产。

如果不指定,ResponseVar设置为数据输入的最后一列。ResponseVar只能在创建creditscorecard对象使用creditscorecard函数。ResponseVar是区分大小写的。

数据类型:字符

权重变量名,指定为逗号分隔对,由“WeightsVar”和一个字符向量,以指示数据表包含行权重。WeightsVar是区分大小写的。的WeightsVar名称-值对参数设置WeightsVar属性,且此属性只能在创建creditscorecard对象。如果名称-值对参数WeightsVar在创建creditscorecard对象,则观察权值默认设置为单位权值。

WeightsVar值在信用记分卡工作流中使用autobinningbininfofitmodel,validatemodel.有关更多信息,请参见利用观测权建立信用记分卡模型

数据类型:字符

指示丢失的数据是否被删除或显示在单独的bin中,指定为逗号分隔的对,由“BinMissingdata”和一个值为的逻辑标量真正的.如果BinMissingData真正的时,预测器的缺失数据显示在一个单独的标记箱中< >失踪

数据类型:逻辑

属性

全部展开

用于创建creditscorecard对象时指定为表creditscorecard对象。在数据属性时,类别预测器存储为类别数组。

例子:sc.Data (1:10,:)

数据类型:表格

用作观察的ID或标记的变量的名称,指定为字符向量。可在创建creditscorecard对象或在命令行使用点表示法。IDVar是区分大小写的。

例子:sc.IDVar = ' CustID '

数据类型:字符

此属性是只读的。

VarNames字符向量的单元格数组,其中包含数据中所有变量的名称。的VarNames直接从数据输入到creditscorecard对象。VarNames是区分大小写的。

数据类型:细胞

响应变量的名称,“Good”或“Bad”指示器,指定为字符向量。响应变量数据必须是二进制的。如果不指定,ResponseVar设置为数据输入的最后一列。此属性只能在创建creditscorecard对象。ResponseVar是区分大小写的。

数据类型:字符

作为ID或标记使用的变量的名称,用于指示数据表包含作为字符向量指定的行权重。此属性可以设置为可选参数(WeightsVar)时。creditscorecard对象。WeightsVar是区分大小写的。

数据类型:字符

响应变量中的两个可能值对应于“良好”观测值的指标。当指定GoodLabel,请遵循以下指导方针:

如果Response Variable是… GoodLabel必须:
数字 数字
逻辑 逻辑或数字
字符向量的单元格数组 特征向量
字符数组 特征向量
分类 特征向量

如果不指定,GoodLabel设置为具有最高计数的响应值。此属性只能在创建creditscorecard对象。不能使用点表示法设置此属性。

数据类型:字符|

预测器变量名,使用包含名称的字符向量单元格数组指定。默认情况下,当您创建creditscorecard对象中,所有变量都是预测器,除了IDVarResponseVar.属性的名称-值对参数可以修改此属性fitmodel函数或使用点符号。PredictorVars是否区分大小写,且预测器变量名不能与IDVarResponseVar

例子:sc.PredictorVars ={‘CustID’,‘CustIncome}

数据类型:细胞

数值预测器的名称,指定为字符向量。不能在命令行使用点表示法设置此属性。只能使用modifypredictor函数。

数据类型:字符

类别预测器的名称,指定为字符向量。不能在命令行使用点表示法设置此属性。只能使用modifypredictor函数。

数据类型:字符

指示丢失的数据是否被删除或显示在单独的bin中,指定为逗号分隔的对,由“BinMissingdata”和一个值为的逻辑标量真正的.如果BinMissingData真正的时,预测器的缺失数据显示在一个单独的标记箱中< >失踪.有关处理丢失数据的更多信息,请参见缺失值的信用记分卡建模

数据类型:逻辑

creditscorecard财产 从命令行使用中设置/修改属性creditscorecard函数 使用点符号修改属性 属性不是用户定义的,值是内部定义的
数据 没有 没有 是的,副本数据输入
IDVar 是的 是的 没有,但是用户指定了这个
VarNames 没有 没有 是的
ResponseVar 是的 没有 如果未指定,则设置为的最后一列数据输入
WeightsVar 没有 没有 是的
GoodLabel 是的 没有 如果未指定,则设置为具有最高计数的响应值
PredictorVars 是的(也可以修改使用fitmodel函数) 是的 是的,但是用户可以修改它
NumericPredictors 没有(只能修改使用modifypredictor函数) 没有 是的,但是用户可以修改它
CategoricalPredictors 没有(只能修改使用modifypredictor函数) 没有 是的,但是用户可以修改它
BinMissingData 是的 没有 默认为False,但用户可以修改此值

对象的功能

autobinning 对给定的预测器执行自动分类
bininfo 返回预测器的bin信息
predictorinfo 总结信用记分卡预测属性
modifypredictor 设置信用记分卡预测器的属性
fillmissing 替换信用记分卡预测器的缺失值
modifybins 修改预测的垃圾箱
bindata 被预测变量
plotbins 绘制直方图计数预测变量
fitmodel 拟合logistic回归模型到证据权重(WOE)数据
fitConstrainedModel 根据模型系数的约束,将logistic回归模型拟合到证据权重(WOE)数据
setmodel 设置模型预测因子和系数
displaypoints 返回点每个预测器每箱
formatpoints 格式记分卡点数和缩放
分数 计算给定数据的信用分数
probdefault 给定数据集的默认可能性
validatemodel 验证信用记分卡模型的质量
紧凑的 创建紧凑的信用记分卡

例子

全部折叠

创建一个creditscorecard对象使用CreditCardData.mat文件来加载数据(使用Refaat 2011的数据集)。

负载CreditCardDatasc = creditscorecard(数据)
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x7 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10 cell} Data: [1200x11 table]

使用CreditCardData.mat载入数据的文件(dataWeights),其中包含列(RowWeights)的权重(使用来自Refaat 2011的数据集)。

负载CreditCardData

创建一个creditscorecard对象的可选名称-值对参数“WeightsVar”

sc = creditscorecard (dataWeights,“WeightsVar”“RowWeights”
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: 'RowWeights' VarNames: {1x12 cell} NumericPredictors: {1x7 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10 cell} Data: [1200x12 table]

创建一个creditscorecard对象使用CreditCardData.mat文件来加载数据(使用Refaat 2011的数据集)。

负载CreditCardDatasc = creditscorecard(数据)
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x7 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10 cell} Data: [1200x11 table]

来显示creditscorecard对象属性,使用点符号。

sc.PredictorVars
ans =1 x10单元格列1到4 {'CustID'} {'CustAge'} {'TmAtAddress'} {'ResStatus'}列5到8 {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'OtherCC'}列9到10 {'AMBalance'} {'UtilRate'}
sc.VarNames
ans =1 x11单元格列1到4 {'CustID'} {'CustAge'} {'TmAtAddress'} {'ResStatus'}列5到8 {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'OtherCC'}列9到11 {'AMBalance'} {'UtilRate'} {'status'}

创建一个creditscorecard对象使用CreditCardData.mat文件来加载数据(使用Refaat 2011的数据集)。

负载CreditCardDatasc = creditscorecard(数据)
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x7 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10 cell} Data: [1200x11 table]

IDVar属性具有公共访问权限,您可以在命令行更改其值。

sc.IDVar =“CustID”
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]

创建一个creditscorecard对象使用CreditCardData.mat文件来加载数据(使用Refaat 2011的数据集)。

负载CreditCardDatasc = creditscorecard(数据)
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x7 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10 cell} Data: [1200x11 table]

在本例中,属性的默认值ResponseVarPredictorVarsGoodLabel在创建此对象时分配。默认情况下,属性ResponseVar设置为输入数据的最后一列中的变量名(“状态”在本例中)。房地产PredictorVars包含中所有变量的名称VarNames,但不包括IDVarResponseVar.此外,在前面的示例中,默认情况下,GoodLabel被设置为0,因为它是响应变量中的值(ResponseVar)的最高计数。

显示creditscorecard使用点符号的对象属性。

sc.PredictorVars
ans =1 x10单元格列1到4 {'CustID'} {'CustAge'} {'TmAtAddress'} {'ResStatus'}列5到8 {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'OtherCC'}列9到10 {'AMBalance'} {'UtilRate'}
sc.VarNames
ans =1 x11单元格列1到4 {'CustID'} {'CustAge'} {'TmAtAddress'} {'ResStatus'}列5到8 {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'OtherCC'}列9到11 {'AMBalance'} {'UtilRate'} {'status'}

IDVarPredictorVars具有公共访问权限,您可以在命令行更改它们的值。

sc.IDVar =“CustID”
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]
sc.PredictorVars = {“CustIncome”“ResStatus”“AMBalance”
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {'CustIncome' 'AMBalance'} CategoricalPredictors: {'ResStatus'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {'ResStatus' 'CustIncome' 'AMBalance'} Data: [1200x11 table]
disp (sc)
creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {'CustIncome' 'AMBalance'} CategoricalPredictors: {'ResStatus'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {'ResStatus' 'CustIncome' 'AMBalance'} Data: [1200x11 table]

创建一个creditscorecard对象使用CreditCardData.mat文件来加载数据(使用Refaat 2011的数据集)。然后使用名称-值对参数creditscorecard定义GoodLabelResponseVar

负载CreditCardDatasc = creditscorecard(数据,“IDVar”“CustID”“GoodLabel”,0,“ResponseVar”“状态”
sc = creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]

GoodLabelResponseVar只能在创建creditscorecard对象使用creditscorecard

创建一个creditscorecard对象使用CreditCardData.mat文件来加载dataMissing用缺失值。

负载CreditCardData头(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
流('行数:%d\n'、高度(dataMissing))
行数:1200行
流('缺少的值的数量CustAge: %d\n'总和(ismissing (dataMissing.CustAge)))
CustAge: 30
流(restatus: %d\n总和(ismissing (dataMissing.ResStatus)))
ResStatus: 40

使用creditscorecard使用name-value参数“BinMissingData”设置为真正的将丢失的数据装入单独的容器中。

sc = creditscorecard (dataMissing,“IDVar”“CustID”“BinMissingData”,真正的);sc = autobinning (sc);disp (sc)
creditscorecard with properties: GoodLabel: 0 ResponseVar: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 1 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]

显示bin信息的数字数据“CustAge”这包括在一个单独的标签箱中丢失的数据< >失踪

bi = bininfo (sc,“CustAge”);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”

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

显示的分类数据的bin信息“ResStatus”这包括在一个单独的标签箱中丢失的数据< >失踪

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的对象。这些对象代表好和坏。

参考文献

[1]安德森,R。信用评分工具包。牛津大学出版社,2007。

[2] Refaat, M。SAS数据挖掘的数据准备。2006年摩根考夫曼。

[3] Refaat, M。信用风险记分卡:使用SAS开发和实施。lulu.com, 2011。

介绍了R2014b