modifybins

修改预测的垃圾箱

描述

例子

SC.= ModififyBins(SC.PredictorName名称,值手动修改使用可选名称值对参数的数字预测器或分类预测器的预测箱。对于数字预测器,可以指定最小值,最大值和切割点。对于分类预测器,可以指定类别分组。可以为两种类型的预测器指定宾布标签。

例子

全部折叠

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

负载CreditCardData.sc = creditscorecard(数据);

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

bi = bininfo (sc,“缅因”
bi =46×6表垃圾箱好赔率WOE invovedue _________ ____________________________________________________________________1099 0.056227 {'19000'} 1 2 0.5 -1.3976 0.053002 {20000'} 4 2 2 -0.011271 6.3641E-07 {'21000'} 6 3 2 -0.011271 9.5462E-07 {'22000'} 4 2 2 -0.011271 6.3641E-07 {'23000'} 4 4 1 -0.70442 0.0035885 {'24000'} 5 5 1 -0.70442 0.0044856 {'25000'} 4 9 0.44444 -1.5153 0.026805 {'26000'} 4 11 0.36364 -1.716 0.038999 {'27000'} 6 6 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 8 3 0.39419 0.0038382 {'32000'} 21 15 1.4 -0.36795 0.0042797 {'33000'} 35 19 1.8421 -0.093509 0.00039951 ⋮

使用modifybins设置最小值0,每10000,从20000到60000设置剪切点。显示更新的垃圾箱信息,包括切点。

sc = modifybins (sc,“缅因”'minvalue',0,“割点”, 20000:10000:60000);(bi, cp) = bininfo (sc,“缅因”
bi =7×6表本好不好悲哀InfoValue几率  _________________ ____ ___ _______ _________ _________ {'[ 0, 20000)的}3 5 0.6 -1.2152 0.010765{(20000、30000)}61 63 0.96825 -0.73668 0.060942{[30000、40000)的}324 173 1.8728 -0.076967 0.0024846{[40000、50000)的}304 123 2.4715 0.20042 0.013781{[50000、60000)}103年32 3.2188 0.46457 0.022144{”(60000年,正)}8 18 1.375 0.010235 {' total '} 803 397 2.0227 NaN 0.12035
cp =5×120000 30000 40000 50000 60000

第一个和最后一个箱子只包含很少的点。要将第一个容器合并到第二个容器中,请删除第一个切割点。类似地,要将最后一个容器合并到倒数第二个容器中,请删除最后一个切割点。然后使用modifybins要更新记分卡,并显示更新的垃圾箱信息。

cp(1)= [];cp(end)= [];sc = modifybins (sc,“缅因”“割点”, cp);bi = bininfo (sc,“缅因”
bi =5×6表本好不好悲哀InfoValue几率  _________________ ____ ___ _______ _________ _________ {'[ 0, 30000)} 64 68 0.94118 -0.76504 0.070065{[30000、40000)的}324 173 1.8728 -0.076967 0.0024846{[40000、50000)的}304 123 2.4715 0.20042 0.013781{”(50000年,正)}33 111 3.3636 0.5086 0.028028{“总数”}803 397 0.11436 2.0227南

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

负载CreditCardData.sc = creditscorecard(数据);

分类数据的分类映射或规则汇总在一个“类别分组”表中,作为可选输出返回。默认情况下,每个类别都放在一个单独的容器中。这是预测者的信息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 {' total '} 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标签已更新,垃圾箱成员资格信息包含在类别分组中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 {' total '} 803 397 2.0227 NaN 0.00030592
cg =3×2表Categy Binnumber ______________ _________ {'归属主'} 1 {'租户'} 2 {'其他'} 2

创建一个creditscorecard对象(使用来自Refaat 2011的数据集)。

负载CreditCardData.sc = creditscorecard(数据,'idvar'“CustID”'goodlabel', 0);

对于数值预测器保管,可以使用modifybins设置以下切割点:

CP = [25 37 49 65];sc = modifybins (sc,“守护”“割点”cp,'minvalue',0,'maxvalue', 75);bininfo (sc,“守护”
ans =.6×6表垃圾箱好的赔率越来越多的ock insmoveue ___________ ____________________________ {'[0,25)'} 9 8 1.125 -0.58664 0.0052464 {'[25,37)'} 125 92 1.3587 -0.39789 0.030268 {'[37,49)'3.8593 0.030765 {0.93781 0.0220378

使用modifybins合并第2和第3箱的功能。

sc = modifybins (sc,“守护”“割点”,CP([1 3 4]));bininfo (sc,“守护”
ans =.5×6表垃圾箱好赔率越来越好哇读数___________ _________________ __________ {'[0,25)'} 9 8 1.125 -0.58664 0.0052464 {'[25,49)'} 465 275 1.6909 -0.17915 0.020355 {[49,65)'298 108 2.7593 0.030765 {'[65,75]'} 31 6 5.1667 0.93781 0.022031 {'总计'} 803 397 2.0227 NAN 0.078397

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

(bi, cg) = bininfo (sc,“ResStatus”);disp (bi)
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 {' total '} 803 397 2.0227 NaN 0.0097738

使用modifybins函数来合并类别2和3。

cg.binnumber(3)= 2;sc = modifybins (sc,“ResStatus”'catgrouping'、cg);bininfo (sc,“ResStatus”
ans =.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 {' total '} 803 397 2.0227 NaN 0.00030592

创建一个creditscorecard对象(使用来自Refaat 2011的数据集)。

负载CreditCardData.sc = creditscorecard(数据,'idvar'“CustID”'goodlabel',0)
sc = creditscorecard具有属性:goodlabel:0 responsevar:'status'weightsvar:''varnames:{1x11 cell} numericpredictors:{1x6 cell} cateCoricalpricictors:{'resstatus''empstatus'''其他} binmissingdata:0 idvar:'custid'predictorvars:{1x9 cell}数据:[1200x11表]

对于数值预测器TmAtAddress,可以使用modifybins设置以下切割点:

Cp = [30 80 120];sc = modifybins (sc,'tmataddress'“割点”cp,'minvalue',0,'maxvalue', 210);bininfo (sc,'tmataddress'
ans =.5×6表垃圾箱好赔率越来越多的ock infovedue _____________ _______________________________________________________________________0.07917162.1667 0.068771 0.00044396 {'[120,210]'} 16 6 2.6667 0.27641 0.27641 0.0013301 {'总计'} 803 397 2.0227 NaN 0.0055131

使用modifybins拆分第二箱的功能。

sc = modifybins (sc,'tmataddress'“割点”,[cp(1)50 cp(2:结束)]);bininfo (sc,'tmataddress'
ans =.6×6表宾好差赔率WOE INFOVALUE _____________ ____ ___ ______ _________ __________ { '[0,30)'} 330 154 2.1429 0.057722 0.0013305 { '[30,50)'} 211 104 2.0288 0.0030488 2.4387e-06 {'[50,80)'} 168 97 1.732 -0.15517 0.005449 {'[80,120)'} 78 32 2.16670 0.00044396 {'[120,210]'} 16 6 6 2.6667 0.27641 0.27641 0.0013301 {'总计'} 803 397 2.0227 NaN 0.0085559

显示分类预测器的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 {' total '} 803 397 2.0227 NaN 0.0097738
cg =3×2表类别Binnumber ______________ _________ {'归属主'} 1 {'租户'} 2 {'其他'} 3

使用modifybins函数来合并类别2和3。

cg.binnumber(3)= 2;sc = modifybins (sc,“ResStatus”'catgrouping'、cg);bininfo (sc,“ResStatus”
ans =.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 {' total '} 803 397 2.0227 NaN 0.00030592

使用modifybins功能拆分箱2并放置其他在本3。

cg.BinNumber (3) = 3;sc = modifybins (sc,“ResStatus”'catgrouping'、cg);(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 {' total '} 803 397 2.0227 NaN 0.0097738
cg =3×2表类别Binnumber ______________ _________ {'归属主'} 1 {'租户'} 2 {'其他'} 3

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

负载CreditCardData.sc = creditscorecard(数据);

使用modifybins重置最小值并为预测器创建三个垃圾箱缅因一并显示更新的垃圾箱信息。

sc = modifybins (sc,“缅因”'minvalue',0,“割点”,[30000 50000]);bi = bininfo (sc,“缅因”
bi =4×6表本好不好悲哀InfoValue几率  _________________ ____ ___ _______ ________ _________ {'[ 0, 30000)} 64 68 0.94118 -0.76504 0.070065{[30000、50000)的}628 296 2.1216 0.047762 0.0017421{”(50000年,正)}33 111 3.3636 0.5086 0.028028{“总数”}803 397 0.099836 2.0227南

修改BIN标签并显示更新的箱子信息。

newlabels = {“30 k”'30k到50k''50k等'};sc = modifybins (sc,“缅因”“BinLabels”, NewLabels);bi = bininfo (sc,“缅因”
bi =4×6表Bin Good Bad Odds WOE InfoValue ________________ ______________ ________ _________ {'Up to 30k'} 64 68 0.94118 -0.76504 0.070065 {'30k to 50k'} 628 296 2.1216 0.047762 0.0017421 {'50k and more'} 111 33 3.3636 0.5086 0.028028 {' total '} 803 397 2.0227 NaN 0.099836

宾布标签应该是最后一个bin修改步骤。如在此示例中,用户定义的箱标签通常包含有关数字数据的剪切点,最小值或最大值的信息,或关于分类数据的类别分组的信息。防止用户定义的标签和切割点不一致的情况(和标签是误导性的),creditscorecard对象在每次修改容器时重写用户定义的标签modifybins

为了说明modifybins每次修改BIN时,覆盖用户定义的标签,将第一个切割点重置为31000并显示更新的箱信息。请注意,宾布标签重置为默认格式,并准确反映切片点的变化。

sc = modifybins (sc,“缅因”“割点”50000年[31000]);bi = bininfo (sc,“缅因”
bi =4×6表本好不好悲哀InfoValue几率  _________________ ____ ___ _______ ________ _________ {'[ 0, 31000)} 82 84 0.97619 -0.72852 0.079751{[31000、50000)的}610 280 2.1786 0.074251 0.0040364{”(50000年,正)}33 111 3.3636 0.5086 0.028028{“总数”}803 397 0.11182 2.0227南

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

负载CreditCarddata.mat.头(dataMissing, 5)
ans =.5×11表的CustID CustAge TmAtAddress ResStatus EmpStatus CustIncome TmWBank OtherCC AMBalance UtilRate状态______ _______ ___________ ___________ _________ __________ _______ _______ _________ ________ ______ 1 53 62 <未定义>未知50000 55是1055.9 0.22 0 2 61 22家庭业主雇员52000 25是1161.6 0.24 0 3 47 30租户雇用37000 61否877.23 0.29 0 4纳米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
流('缺失值的数量Resstatus:%d \ n',um(ismissing(datamissing.resstatus))))
ResStatus: 40

使用creditscorecard使用名称值参数“BinMissingData”设置为真正的在单独的垃圾箱中禁止丢失的数据。

sc = creditscorecard (dataMissing,'idvar'“CustID”“BinMissingData”,真正的);sc = autobinning (sc);disp (sc)
creditscorecard具有属性:goodlabel:0 responsevar:'status'weightsvar:''varnames:{1x11 cell} numericpredictors:{1x6 cell} cateCoricalpricictors:{'resstatus''empstatus''overcc'} binmissingdata:1 idvar:'custid'predictorvars:{1x9 cell}数据:[1200x11表]

显示箱信息以获取数字数据“守护”这包括在一个单独的标签箱中丢失的数据<缺失>

(bi, cp) = bininfo (sc,“守护”);disp (bi)
垃圾箱好赔率Woe infoveue _____________ ________________________ {'[-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.000456 0.000456 0.04556 0.0004549 {'[46,48)'} 59 25 2.36 0.121201012550 {'[48,51015424 0.0016199 {[48,51)'} 99 41 2.4146 0.121142.4146 0.177130.0035449 { '[51,58)'} 157 62 2.5323 0.22469 0.0088407 { '[58,天道酬勤]'} 93 25 3.72 0.60931 0.032198 { '<缺失>'} 19 11 1.7273 -0.15787 0.00063885 { '总计'} 803 397 2.0227NAN 0.087112.
plotbins (sc,“守护”

对于数值预测器保管,删除切点48.51.然后使用modifybins定义一个'minvalue'0手动更改融合并注意到这不会影响数据中的数据<缺失>垃圾箱和箱子<缺失>Bin仍然在最后。

cp(cp == 48)= [];cp(cp == 51)= [];sc = modifybins (sc,“守护”“割点”cp,'minvalue', 0);bi = bininfo (sc,“守护”);disp (bi)
垃圾箱好的赔率越来越好悲伤______________________________________________ {'[0,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 { '[46,58)'} 315 128 2.4609 0.19612 0.013701 { '[58,天道酬勤]'} 93 25 3.72 0.60931 0.032198{'<缺失>'} 19 11 1.7273 -0.15787 0.00063885 {'总计'} 803 397 2.0227 NAN 0.086808
plotbins (sc,“守护”

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

对于绝对预测器ResStatus,使用modifybins手动合并“房主”'其他'通过为这些类别分配相同的bin编号来进入一个组。请注意,这不会影响数据中的数据<缺失>垃圾箱和箱子<缺失>Bin仍然在最后。

cg.binnumber(3)= 2;sc = modifybins (sc,“ResStatus”'catgrouping'、cg);(bi, cg) = bininfo (sc,“ResStatus”);disp (bi)
Bin Good Bad Odds WOE InfoValue _____________ _____________ _________ __________ {'Group1'} 296 161 1.8383 -0.095463 0.0035249 {'Group2'} 480 223 2.1525 0.062196 0.0022419 {''} 27 13 2.0769 0.026469 2.3248e-05 {' total '} 803 397 2.0227 NaN 0.00579
DISP(CG)
类别BinNumber  ______________ _________ {' 租户'}1{‘业主’}2{‘其他’}2

输入参数

全部折叠

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

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

数据类型:char

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。名称参数名和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:sc = modififybins(sc,predictorname,'minvalue',10,'切割点',[23,44,66,88])

最小可接受值,指定为逗号分隔对,由'minvalue'和一个数值(仅用于数值预测器)。此数字以下的值被认为超出范围。

数据类型:双倍的

最大可接受值,指定为逗号分隔对,由'maxvalue'和一个数值(仅用于数值预测器)。高于这个数字的值被认为超出了范围。

数据类型:双倍的

bin之间的分割点,指定为逗号分隔的对,由“割点”和非递减数字数组。如果有麻木垃圾箱,有n麻木- - - - - -1切点,使C1,C2,...,Cn用以下约定描述容器边界:

  • 第一个容器包含任何值>=迷你,但< C1。

  • 第二个箱包括任何值> = C1,但

  • 最后一个bin包括任何值> = cn和<=MaxValue

请注意

切点不包括在内迷你MaxValue

默认情况下,切割点被定义,这样每个预测器的观测值都被放置在一个单独的容器中。如果排序后的观测值是V1,…,V,默认切割点是v2,...,v,它定义箱里。

数据类型:双倍的

具有两列的表类别BinNumber,指定为逗号分隔的对,由'catgrouping'和一个表,第一列包含预测器的详尽类别列表,第二列包含每个类别所属的bin号。

默认情况下,每个类别都放在一个单独的容器中。如果观察到的类别是CAT1...,,默认类别分组如下。

类别 BinNumber
CAT1 1
CAT2. 2
...... ......
米的

数据类型:双倍的

每个容器的Bin标签,指定为逗号分隔的对,由“BinLabels”以及带有bin标签名称的字符向量单元格数组。

请注意

“BinLabels”不支持价值金宝app<缺失>

容器标签用于标记不同对象函数中的容器,例如宾FO.绘图赛,displaypoints.一个creditscorecard每当修改箱时,对象会自动设置默认垃圾箱。垃圾箱标签的默认格式取决于预测器的类型。

格式BinLabels是:

  • 数值数据——在任何手动或自动修改预测器容器之前,默认情况下,每个观测到的预测器值都有一个容器。在这种情况下,bin标签只是显示预测值。一旦预测器容器被修改,就会有非默认值迷你MaxValue,或非默认的切点C1, C2,…Cn.在这种情况下,箱标签是:

    • Bin 1标签:”(迷你C1

    • 本2标签:“[C1C2

    • 最后本标签:“[CnMaxValue]'

    例如,如果有三个垃圾箱,迷你是0且MaxValue为40,切割点1为20,切割点2为30,则对应的三个箱标为:

    '[0,20)'[20,30)'[30,40]'

  • 分类数据——对于分类数据,在对预测器容器进行任何修改之前,每个类别都有一个容器。在这种情况下,bin标签只是显示预测器类别。一旦容器被修改,标签就被设置为'Group1''Group2',等等,分别用于bin 1, bin 2,等等。例如,假设我们有以下类别分组

    类别 BinNumber
    CAT1 1
    CAT2. 2
    CAT3. 2

    本1包含'cat1'并且它的bin标签被设置为'Group1'.Bin 2包含'cat2''cat3'它的垃圾箱标签设置为'Group2'

提示

使用BinLabels应该是修改垃圾箱时的最后一步(如果需要)。BinLabels属性在每次修改容器时都会重写定义modifybinsautobinning.功能。

数据类型:细胞

输出参数

全部折叠

信用记分卡模型,作为更新的creditscorecard对象。有关使用的更多信息creditscorecard对象,参见creditscorecard

参考

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

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

介绍了R2014b