主要内容

bininfo

返回预测器的bin信息

描述

例子

bi= bininfo (scPredictorName返回bin级别的信息,例如“Good”、“Bad”的频率,以及中指定的预测器的bin统计信息PredictorName

例子

bi= bininfo (___名称,值添加可选的名称-值参数。

例子

bibm= bininfo(scPredictorName名称,值添加可选的名称-值参数。bininfo还可选地返回binning map (bm)或bin规则,其形式为数值预测器的切点向量,或类别预测器的类别分组表。

例子

bibmmv= bininfo(scPredictorName名称,值返回bin级别的信息,例如“Good”、“Bad”的频率,以及中指定的预测器的bin统计信息PredictorName使用可选的名称-值对参数。bininfo可选地,以数字预测器的切点矢量或类别预测器的类别分组表的形式返回分箱映射或分箱规则。此外,还有可选的名称-值对参数mv返回由用户设置(或定义)的包含最小值和最大值的数值数组。的mv输出参数被设置为类别预测器的空数组。

例子

全部折叠

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

负载CreditCardDataSc =信用记分卡(数据);

显示分类预测器的bin信息ResStatus

Bi = bininfo(sc,“ResStatus”
bi =4×6表Bin Good Bad Odds WOE InfoValue ______________ _____________ _________ _________ {'Home Owner'} 365 177 2.0621 0.019329 0.0001682 {'Tenant'} 307 167 1.8383 -0.095564 0.0036638 {'Other'} 131 53 2.4717 0.20049 0.0059418 {'Totals'} 803 397 2.0227 NaN 0.0097738

使用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]

显示数值预测器的bin信息“CustIncome”.当可选的名称-值对参数“WeightsVar”用于指定观察(样本)权重,bi表中包含加权计数。

Bi = bininfo(sc,“CustIncome”);bi (1:10,:)
ans =10×6表Bin Good Bad Odds WOE InfoValue _________ _______ _______ _______ ________ __________ {'18000'} 0.94515 1.496 0.63179 -1.1667 0.0059198 {'19000'} 0.47588 0.80569 0.59065 -1.2341 0.0034716 {'20000'} 2.1671 1.4636 1.4806 - 0.00061392 {'21000'} 3.2522 0.88064 3.693 0.59889 0.0021303 {'22000'} 1.5438 1.2714 1.2142 -0.51346 0.0012913 {'23000'} 1.787 2.7529 0.64913 -1.1397 0.010509 {'24000'} 3.4111 2.2538 1.5135 -0.29311 0.00082663 {'26000'} 2.2333 6.1383 0.36383 -1.7186 0.042642 {'26000'}2.1246 4.4754 0.4774 -1.4525 0.024526 {'27000'} 3.1058 3.528 0.88032 -0.83501 0.0082144

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

负载CreditCardDataSc =信用记分卡(数据);

显示分类预测器的自定义bin信息ResStatus,只保留有祸了列。证据的权重(WOE)是逐箱定义的,但没有“总WOE”的概念,因此,在“总数”行设置为

Bi = bininfo(sc,“ResStatus”“统计数据”“悲哀”);disp (bi)
本好不好有祸了  ______________ ____ ___ _________ {' 房主的}{“租户”}307年365 177 0.019329 167 -0.095564{‘其他’}131 53 0.20049{“总数”}803 397南

显示分类预测器的自定义bin信息ResStatus,只保留几率而且有祸了列,没有总数行。

Bi = bininfo(sc,“ResStatus”“统计数据”,{“几率”“悲哀”},“总数”“关闭”);disp (bi)
本好的坏的几率  ______________ ____ ___ ______ _________ {' 房主}365 177 2.0621 - 0.019329{“租户”}307 167 1.8383 -0.095564{‘其他’}131 53 2.4717 - 0.20049

显示信息值,熵,基尼系数和卡方统计。有关这些统计数据的更多信息,请参见信用记分卡的统计数据

对于信息值,熵和Gini,在一个bin级别上报告的值是该bin对总价值的贡献。总信息值,熵和基尼系数的措施是在“总数”行。

对于x²,如果有N箱子,第一个n - 1中的值“Chi2”列报告对相邻箱的卡方统计。例如,这种成对测量也被“合并”算法在autobinning来确定是否应该合并两个相邻的容器。类中的第一个值“Chi2”列(1.0331)为1和2的卡方统计量(“业主”而且“租户”),以及列中的第二个值(2.5103)为2和3的卡方统计量(“租户”而且“其他”).在这个例子中没有更多的成对卡平方值需要计算,所以第三个元素“Chi2”列设置为.中报告的卡方值“总数”行是对所有箱子计算的卡方统计量。

Bi = bininfo(sc,“ResStatus”“统计数据”,{“InfoValue”“熵”“基尼”“Chi2”});disp (bi)
Bin Good Bad InfoValue Entropy Gini Chi2 ______________ _______ _________ ______________ ______ {'Home Owner'} 365 177 0.0001682 0.91138 0.43984 1.0331 {'Tenant'} 307 167 0.0036638 0.93612 0.45638 2.5103 {'Other'} 131 53 0.0059418 0.86618 0.41015 NaN {'Totals'} 803 397 0.0097738 0.91422 0.44182 2.5549

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

负载CreditCardDataSc =信用记分卡(数据);

分类数据的分箱映射或规则汇总在“类别分组”表中,作为可选输出返回。默认情况下,每个类别都放置在单独的bin中。以下是预测者的信息ResStatus

[bi,cg] = bininfo(sc,“ResStatus”
bi =4×6表Bin Good Bad Odds WOE InfoValue ______________ _____________ _________ _________ {'Home Owner'} 365 177 2.0621 0.019329 0.0001682 {'Tenant'} 307 167 1.8383 -0.095564 0.0036638 {'Other'} 131 53 2.4717 0.20049 0.0059418 {'Totals'} 803 397 2.0227 NaN 0.0097738
cg =3×2表类别BinNumber  ______________ _________ {' 房主'}1{“租户”}2{‘其他’}3

将类别分组租户而且其他,修改类别分组表cg这是容器号其他和箱子号一样吗租户.然后使用modifybins函数更新记分卡。

cg.BinNumber(3) = 2;Sc = modifybins(Sc,“ResStatus”“CatGrouping”、cg);

显示更新后的bin信息。已更新bin标签,且类别分组中包含bin成员信息cg

[bi,cg] = bininfo(sc,“ResStatus”
bi =3×6表Bin Good Bad Odds WOE InfoValue __________ _______ ______ _________ __________ {'Group1'} 365 177 2.0621 0.019329 0.0001682 {'Group2'} 438 220 1.9909 -0.015827 0.00013772 {'Totals'} 803 397 2.0227 NaN 0.00030592
cg =3×2表类别BinNumber  ______________ _________ {' 房主'}1{“租户”}2{‘其他’}2

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

负载CreditCardDataSc =信用记分卡(数据);

的预测CustIncome是数字。默认情况下,预测器的每个值都放在一个单独的bin中。

Bi = bininfo(sc,“CustIncome”
bi =46×6表Bin Good Bad Odds WOE InfoValue _________ _______ _______ _________ __________ {'18000'} 23 0.66667 -1.1099 0.0056227 {'19000'} 12 0.5 -1.3976 0.0053002 {'21000'} 42 2 -0.011271 9.5462e-07 {'22000'} 42 2 -0.011271 9.5462e-07 {'22000'} 44 1 -0.70442 0.0035885 {'24000'} 5 51 -0.70442 0.0044856 {'25000'} 4 9 0.44444 -1.5153 0.038999 {'27000'} 66 1 -0.70442 0.0053827 {'28000'} 13 11 1.1818 -0.53736 0.0061896{'29000'} 11 10 1.1 -0.60911 0.0069988 {'30000'} 18 16 1.125 -0.58664 0.010493 {'31000'} 24 83 0.39419 0.0038382 {'32000'} 21 15 1.4 -0.36795 0.0042797 {'33000'} 35 19 1.8421 -0.093509 0.00039951 \

减少使用垃圾箱的数量autobinning函数(modifybins函数也可以使用)。

Sc = autobinning(Sc,“CustIncome”);

显示更新后的bin信息。数值数据的分箱映射或规则被总结为“切点”,作为可选输出返回(cp).

[bi,cp] = bininfo(sc,“CustIncome”
bi =8×6表Bin Good Bad Odds WOE InfoValue _________________ ______________ _________ __________ {'[-Inf,29000)'} 53 58 0.91379 -0.79457 0.06364 {'[29000,33000)'} 74 49 1.5102 -0.29217 0.0091366 {'[33000,35000)'} 68 36 1.8889 -0.06843 0.00041042 {'[35000,40000)'} 193 98 1.9694 -0.026696 0.00017359 {'[40000,42000)'} 68 34 2 -0.011271 1.0819e-05 {'[42000,47000)'} 164 66 2.4848 0.20579 0.0078175 {'[47000,Inf]'} 183 56 3.2679 0.47972 0.041657 NaN 0.12285
cp =6×129000 33000 35000 40000 42000 47000

手动删除第二个切点(第二个和第三个箱子之间的边界)以合并箱子2和3。使用modifybins函数更新记分卡。

Cp (2) = [];Sc = modifybins(Sc,“CustIncome”“割点”cp,“MinValue”, 0);

显示更新后的bin信息。

[bi,cp,mv] = bininfo(sc,“CustIncome”
bi =7×6表Bin Good Bad Odds WOE InfoValue _________________ ______________ _________ __________ {'[0,29000)'} 53 58 0.91379 -0.79457 0.06364 {'[29000,35000)'} 142 85 1.6706 -0.19124 0.0071274 {'[35000,40000)'} 193 98 1.9694 -0.026696 0.00017359 {'[40000,42000)'} 68 34 2 -0.011271 1.0819e-05 {'[42000,47000)'} 164 66 2.4848 0.20579 0.0078175 {'[47000,Inf]'} 183 56 3.2679 0.47972 0.041657{'合计'}803 397 2.0227 NaN 0.12043
cp =5×129000 35000 40000 42000 47000
mv =1×20的正

注意,建议避免使用频率为0的容器,因为它们会导致无限或未定义()统计数据。使用modifybinsautobinning函数修改bin。

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

负载CreditCardData.mat头(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,cg] = 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
disp (cg)
类别BinNumber  ______________ _________ {' 租户'}1{‘业主’}2{‘其他’}3

请注意,类别分组表不包括< >失踪因为这是一个保留的bin,用户不能直接与< >失踪箱子

plotbins (sc,“ResStatus”

{

输入参数

全部折叠

信用记分卡模型,指定为creditscorecard对象。使用creditscorecard要创建creditscorecard对象。

预测器名称,使用包含预测器名称的字符向量指定。PredictorName是区分大小写的。

数据类型:字符

名称-值参数

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

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

例子:bi = bininfo(sc, PredictorName,'Statistics','WOE','Totals','On')

要包含在bin信息中的统计信息列表,指定为逗号分隔的对,由“统计数据”和一个字符向量或者一个字符向量的单元格数组。有关更多信息,请参见信用记分卡的统计数据.可能取值为:

  • “几率”-赔率信息是“好”与“坏”的比率。

  • “悲哀”-证据的分量。WOE统计数据衡量的是“好”和“坏”分布之间的偏差。

  • “InfoValue”—信息价值。与WOE紧密相关的是,它是用于确定拟合模型中使用的预测因子有多强的统计数据。它衡量的是“好”和“坏”分布之间的偏差有多强。然而,只有“好”或“坏”观测值的箱子确实会导致无限的信息值。在这些情况下,考虑使用modifybinsautobinning

  • “熵”-熵是衡量箱子中不可预测性的指标。箱子内“好”和“坏”的数量差异越大,熵值越低。

  • “基尼”-测量数据样本内的统计离散性或不平等。

  • “Chi2”-测量组间的统计差异和独立性。

请注意

避免使用频率为0的箱子,因为它们会导致无限或未定义()统计数据。使用modifybinsautobinning修改bin。

数据类型:字符|细胞

指示符,在信息表的底部包含一行总计,指定为逗号分隔的对,由“总数”还有一个带值的字符向量

数据类型:字符

输出参数

全部折叠

Bin信息,作为表返回。储物箱信息表包含每个储物箱一行和一行总计。列包含bin描述、“Good”和“Bad”的频率以及bin统计信息。避免使用频率为0的箱子,因为它们会导致无限或未定义()统计数据。使用modifybinsautobinning修改bin。

请注意

当创建creditscorecard对象与creditscorecard,如果是可选的名称-值对参数WeightsVar用于指定观察(样本)权重,则bi表中包含加权计数。

分类映射或规则,作为数字预测器的切点向量返回,或作为类别预测器的类别分组表返回。有关更多信息,请参见modifybins

对最小值和最大值进行分箱(由用户设置或定义),作为数字数组返回。的mv输出参数被设置为类别预测器的空数组。

更多关于

全部折叠

信用记分卡的统计数据

证据权重(WOE)是衡量箱子中“好”和“坏”分布差异的指标。

假设预测者的数据生效可能取值为b1,…b.对于已归档的数据,是一个很小的数字。响应有两个值,“好”和“坏”。数据的频率表为:

总计
b1: n11 n12 n1
b2: n21 n22 n2
b n1 n2 n
总: nGood nBad nTotal

证据权重(WOE)是为每个数据值定义的b作为

WOE(i) = log((ni1/nGood)/(ni2/nBad))。

如果你定义

pGood(i) = ni1/nGood, pBad(i) = ni2/nBad

然后pGood)为取值的“好”观测值的比例bi,与此类似pBad).换句话说,pGood)给出了在预测器的观测值,对于pBad).基于此,WOE的等效公式是

WOE(i) = log(pGood(i)/pBad(i))。
使用相同的频率表,为行赔率定义为
Odds(i) = ni1 / ni2,
样本的概率定义为
OddsTotal = nGood / nBad。

对于每一行,您也可以计算其对总信息值的贡献,由

InfoValue(i) = (pGood(i) - pBad(i)) * WOE(i),

而总信息价值就是所有信息的总和InfoValuel ()条件。(一个nansum返回以丢弃来自完全没有观察值的行的贡献。)

同样,对于每一行,我们可以计算它对总熵的贡献,由

熵(i) = 1 /日志(2)* (ni1 / ni *日志(ni1 / ni) ni2 + / ni *日志(ni2 / ni),
总熵就是行熵的加权和,
熵= sum(ni/nTotal *熵(i)), i = 1…

Chi2是对每对箱子两两计算,用来测量两组在拆分或合并箱子时的统计差异,定义为:

Chi2 =总和(和((Aij - Eij) ^ 2 / Eij, j k = 1 . .), i = m m + 1)。
有关拆分和合并容器的详细信息,请参见分裂而且合并

基尼系数是父节点的度量,即拆分或合并之前给定的箱子/类别的度量。基尼系数的定义为:

Gr = 1-G_hat/Gp
G_hat为当前拆分或合并的加权基尼系数:
G_hat = Sum((nj/N) * Gj, j=1..m)。
有关拆分和合并容器的详细信息,请参见分裂而且合并

使用bininfo与重量

当观察权重定义使用可选WeightsVar参数时创建creditscorecard对象,而不是计算每个bin中的好行或坏行bininfo函数累积每个bin中好或坏行的权重。

报告的“频率”不再是基本的行“计数”,而是落在特定箱子中的好行或坏行的“累积权重”。一旦知道这些“加权频率”,所有其他相关统计数字(几率有祸了,InfoValue)是用常用公式计算的。有关更多信息,请参见使用观察权重的信用记分卡建模

参考文献

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

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

版本历史

在R2014b中引入