主要内容

creditscorecard

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

描述

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

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

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

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

  3. 使用autobinning

  4. 拟合逻辑回归模型fitmodelfitConstrainedModel

  5. 审查和格式信用记分卡点使用displaypoints而且formatpoints.在工作流的此时,如果您拥有“风险管理工具箱”的许可证,则可以选择创建compactCreditScorecard对象(csc)使用紧凑的函数。然后可以使用以下函数displaypoints(风险管理工具箱)分数(风险管理工具箱),probdefault(风险管理工具箱)的风险管理工具箱中的csc对象。

  6. 使用分数

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

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

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

创建

描述

例子

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

例子

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

请注意

要在信用记分卡工作流中使用观察(样本)权重,当创建creditscorecard对象时,必须使用可选的名称-值对WeightsVar属性中的哪一列数据包含权重。

输入参数

全部展开

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

  • 数字

  • 逻辑

  • 字符向量的单元格数组

  • 字符数组

  • 分类

  • 字符串

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

数据类型:表格

名称-值参数

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

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:sc = creditscorecard(data,'GoodLabel',0,'IDVar','CustAge','ResponseVar','status','PredictorVars',{'CustID','CustIncome'},'WeightsVar','RowWeights','BinMissingData',true)

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

当指定GoodLabel,请遵循这些指导方针。

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

如果没有指定,GoodLabel设置为具有最高计数的响应值。但是,如果是可选的WeightsVar属性时提供creditscorecard对象,则计数将替换为加权频率。有关更多信息,请参见使用观察权重的信用记分卡建模

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

数据类型:字符|

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

方法设置此可选参数creditscorecard函数或在命令行上使用点符号,如下所示。

例子:sc.IDVar = 'CustID'

数据类型:字符

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

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

数据类型:字符

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

WeightsVar在信用记分卡工作流程中使用的值autobinningbininfofitmodel,validatemodel.有关更多信息,请参见使用观察权重的信用记分卡建模

数据类型:字符

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

数据类型:逻辑

属性

全部展开

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

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

数据类型:表格

用作观察值的ID或标记的变量的名称,指定为字符向量。属性时,此属性可设置为可选参数creditscorecard对象或在命令行上使用点表示法。IDVar是区分大小写的。

例子:sc.IDVar = 'CustID'

数据类型:字符

此属性是只读的。

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

数据类型:细胞

响应变量的名称,“好”或“坏”指示符,指定为字符向量。响应变量数据必须是二进制的。如果没有指定,ResponseVar设置为数据输入的最后一列。属性时,只能使用可选参数设置此属性creditscorecard对象。ResponseVar是区分大小写的。

数据类型:字符

对象中的哪个列名,用作ID或标记的变量名数据表包含作为字符向量指定的行权重。此属性可设置为可选参数(WeightsVar)在创建creditscorecard对象。WeightsVar是区分大小写的。

数据类型:字符

指示响应变量中两个可能值中哪一个对应于“良好”观测值。当指定GoodLabel,请遵循以下指引:

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

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

数据类型:字符|

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

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

数据类型:细胞

数值预测器的名称,指定为字符向量。不能在命令行上使用点符号设置此属性。方法对其进行修改modifypredictor函数。

数据类型:字符

类别预测符的名称,指定为字符向量。不能在命令行上使用点符号设置此属性。方法对其进行修改modifypredictor函数。

数据类型:字符

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

数据类型:逻辑

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的数据集)。

负载CreditCardData信用记分卡(数据)
sc =信用记分卡与属性:GoodLabel: 0 responsear: '状态' WeightsVar: " VarNames: {1x11单元}NumericPredictors: {1x7单元}CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10单元}数据:[1200x11表]

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

负载CreditCardData

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

sc =信用记分卡(dataWeights,“WeightsVar”“RowWeights”
sc = creditscorecard与属性:GoodLabel: 0 responsear: '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的数据集)。

负载CreditCardData信用记分卡(数据)
sc =信用记分卡与属性:GoodLabel: 0 responsear: '状态' WeightsVar: " VarNames: {1x11单元}NumericPredictors: {1x7单元}CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10单元}数据:[1200x11表]

显示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的数据集)。

负载CreditCardData信用记分卡(数据)
sc =信用记分卡与属性:GoodLabel: 0 responsear: '状态' WeightsVar: " VarNames: {1x11单元}NumericPredictors: {1x7单元}CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10单元}数据:[1200x11表]

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

sc.IDVar =“CustID”
sc = creditscorecard与属性:GoodLabel: 0 responseval: '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的数据集)。

负载CreditCardData信用记分卡(数据)
sc =信用记分卡与属性:GoodLabel: 0 responsear: '状态' WeightsVar: " VarNames: {1x11单元}NumericPredictors: {1x7单元}CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: " PredictorVars: {1x10单元}数据:[1200x11表]

在本例中,为属性的默认值ResponseVarPredictorVars而且GoodLabel在创建此对象时赋值。默认情况下,属性ResponseVar设置为输入数据的最后一列中的变量名(“状态”在这个例子中)。房地产PredictorVars包含中所有变量的名称VarNames,但不包括IDVar而且ResponseVar.另外,在前面的例子中,默认情况下,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'}

IDVar而且PredictorVars拥有公共访问权限,您可以在命令行更改它们的值。

sc.IDVar =“CustID”
sc = creditscorecard与属性:GoodLabel: 0 responseval: '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 =带有属性的信用记分卡:GoodLabel: 0 responseval: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {'CustIncome' 'AMBalance'} CategoricalPredictors: {'ResStatus'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {'ResStatus' 'CustIncome' 'AMBalance'} Data: [1200x11 table]
disp (sc)
带属性的信用记分卡: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定义GoodLabel而且ResponseVar

负载CreditCardDataSc =信用记分卡(数据,“IDVar”“CustID”“GoodLabel”,0,“ResponseVar”“状态”
sc = creditscorecard与属性:GoodLabel: 0 responseval: 'status' WeightsVar: " VarNames: {1x11 cell} NumericPredictors: {1x6 cell} CategoricalPredictors: {'ResStatus' 'EmpStatus' 'OtherCC'} BinMissingData: 0 IDVar: 'CustID' PredictorVars: {1x9 cell} Data: [1200x11 table]

GoodLabel而且ResponseVar只能在创建creditscorecard对象使用creditscorecard

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

负载CreditCardData头(dataMissing, 5)
CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate status ______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______ 1 53 62  Unknown 50000 55 Yes 1055.9 0.22 0 2 61 22 Home Owner Employed 52000 25 Yes 1161.6 0.24 0 3 47 30 Tenant Employed 37000 61 No 877.23 0.29 0 4 NaN 75 Home Owner Employed 53000 20 Yes 157.37 0.08 05 68 56 Home Owner Employed 53000 14 Yes 561.84 0.11 0
流('行数:%d\n'、高度(dataMissing))
行数:1200
流(CustAge: %d\n总和(ismissing (dataMissing.CustAge)))
缺少值的数量CustAge: 30
流(ResStatus: %d\n总和(ismissing (dataMissing.ResStatus)))
ResStatus: 40

使用creditscorecard使用name-value参数“BinMissingData”设置为真正的将丢失的数据保存在单独的bin中。

sc =信用记分卡(数据丢失,“IDVar”“CustID”“BinMissingData”,真正的);Sc = autobinning(Sc);disp (sc)
带属性的creditscorecard: GoodLabel: 0 responsear: '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)
Bin Good Bad Odds WOE InfoValue _____________ _____________ ________ __________ {'[-Inf,33)'} 69 52 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 {'[44,51)'} 59 25 2.36 0.15424 0.0016199 {'[44,51)'} 99 41 2.4146 0.17713 0.0035449 {'[51,58)'} 157 62 2.5323 0.22469 0.0088407 {''} 19 11 1.7273 -0.15787 0.00063885{'合计'}803 3972.0227 NaN 0.087112
plotbins (sc,“CustAge”

{

显示分类数据的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 {'Totals'} 803 397 2.0227 NaN 0.0092627
plotbins (sc,“ResStatus”

{

参考文献

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

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

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

版本历史

在R2014b中引入

Baidu
map