bininfo
返回预测器的bin信息
语法
描述
返回bin级别的信息,例如“Good”、“Bad”的频率,以及中指定的预测器的bin统计信息bi
= bininfo (sc
,PredictorName
)PredictorName
.
例子
使用默认选项显示Bin信息
创建一个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
显示包含权重的信用记分卡对象的Bin信息
使用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
使用名称-值参数显示Bin信息
创建一个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
显示分类数据的Bin信息和Binning地图
创建一个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
为数值数据显示Bin信息和Binning映射
创建一个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的容器,因为它们会导致无限或未定义(南
)统计数据。使用modifybins
或autobinning
函数修改bin。
显示缺少数据的Bin信息
创建一个creditscorecard
对象使用CreditCardData.mat
文件来加载dataMissing
缺少值。
负载CreditCardData.mat头(dataMissing, 5)
CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate status ______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______ 1 53 62Unknown 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”)
输入参数
sc
- - - - - -信用记分卡模型
creditscorecard
对象
信用记分卡模型,指定为creditscorecard
对象。使用creditscorecard
要创建creditscorecard
对象。
PredictorName
- - - - - -预测的名字
特征向量
预测器名称,使用包含预测器名称的字符向量指定。PredictorName
是区分大小写的。
数据类型:字符
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:bi = bininfo(sc, PredictorName,'Statistics','WOE','Totals','On')
统计数据
- - - - - -要包含的bin信息的统计信息列表
{“可能性”、“悲哀”,“InfoValue”}
(默认)|带值的字符向量“几率”
,“悲哀”
,“InfoValue”
,“熵”
,“基尼”
,“Chi2”
|带有值的字符向量的单元格数组“几率”
,“悲哀”
,“InfoValue”
,“熵”
,“基尼”
,“Chi2”
要包含在bin信息中的统计信息列表,指定为逗号分隔的对,由“统计数据”
和一个字符向量或者一个字符向量的单元格数组。有关更多信息,请参见信用记分卡的统计数据.可能取值为:
“几率”
-赔率信息是“好”与“坏”的比率。“悲哀”
-证据的分量。WOE统计数据衡量的是“好”和“坏”分布之间的偏差。“InfoValue”
—信息价值。与WOE紧密相关的是,它是用于确定拟合模型中使用的预测因子有多强的统计数据。它衡量的是“好”和“坏”分布之间的偏差有多强。然而,只有“好”或“坏”观测值的箱子确实会导致无限的信息值。在这些情况下,考虑使用modifybins
或autobinning
.“熵”
-熵是衡量箱子中不可预测性的指标。箱子内“好”和“坏”的数量差异越大,熵值越低。“基尼”
-测量数据样本内的统计离散性或不平等。“Chi2”
-测量组间的统计差异和独立性。
请注意
避免使用频率为0的箱子,因为它们会导致无限或未定义(南
)统计数据。使用modifybins
或autobinning
修改bin。
数据类型:字符
|细胞
总数
- - - - - -指标包括行合计在底部信息表
“上”
(默认)|带值的字符向量“上”
,“关闭”
指示符,在信息表的底部包含一行总计,指定为逗号分隔的对,由“总数”
还有一个带值的字符向量在
或从
.
数据类型:字符
输出参数
bi
—Bin信息
表格
Bin信息,作为表返回。储物箱信息表包含每个储物箱一行和一行总计。列包含bin描述、“Good”和“Bad”的频率以及bin统计信息。避免使用频率为0的箱子,因为它们会导致无限或未定义(南
)统计数据。使用modifybins
或autobinning
修改bin。
请注意
当创建creditscorecard
对象与creditscorecard
,如果是可选的名称-值对参数WeightsVar
用于指定观察(样本)权重,则bi
表中包含加权计数。
bm
-分类地图或规则
数字预测器的切点向量|类别预测器的类别分组表
分类映射或规则,作为数字预测器的切点向量返回,或作为类别预测器的类别分组表返回。有关更多信息,请参见modifybins
.
mv
-对最小值和最大值进行分组
数字数组
对最小值和最大值进行分箱(由用户设置或定义),作为数字数组返回。的mv
输出参数被设置为类别预测器的空数组。
更多关于
信用记分卡的统计数据
证据权重(WOE)是衡量箱子中“好”和“坏”分布差异的指标。
假设预测者的数据生效米可能取值为b1,…b米.对于已归档的数据,米是一个很小的数字。响应有两个值,“好”和“坏”。数据的频率表为:
好 | 坏 | 总计 | |
---|---|---|---|
b1: | n11 | n12 | n1 |
b2: | n21 | n22 | n2 |
b米: | n米1 | n米2 | 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),
而总信息价值就是所有信息的总和InfoValue
l (我)条件。(一个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中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。