主要内容

setmodel

设置模型预测因子和系数

描述

例子

sc= setmodel (scModelPredictorsModelCoefficients设置预测因子和系数的线性logistic回归模型拟合外creditscorecard对象并返回已更新的creditscorecard对象。预测器和系数用于记分卡点数的计算。使用setmodel代替fitmodel,符合线性逻辑回归模型,因为setmodel提供了增加的灵活性。例如,当一个模型与fitmodel需要修改的,可以使用setmodel.有关更多信息,请参见使用setmodel的工作流

请注意

当使用setmodel,下列假设适用:

  • 模型系数对应于一个线性logistic回归模型(模型中只包含线性项,没有交互或任何其他高阶项)。

  • 该模型先前使用证据权重(WOE)数据与响应图进行了拟合,因此“好”是1和“坏”0

例子

全部折叠

这个例子展示了如何使用setmodel对初始拟合的逻辑回归模型进行修改fitmodel函数,然后将新的logistic回归模型预测器和系数设置回creditscorecard对象。

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

负载CreditCardDatasc = creditscorecard(数据,“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 = autobinning (sc);

标准的工作流程是使用fitmodel函数拟合逻辑回归模型使用逐步方法。然而,fitmodel仅支持有关金宝app分步过程的有限选项。您可以使用可选选项mdl输出参数fitmodel去拿一份合身的复制品GeneralizedLinearModel对象,以便稍后修改。

(sc, mdl) = fitmodel (sc);
1.加上CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08添加TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-06添加AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601增加EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257 5。添加CustAge, Deviance = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306添加ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078广义线性回归模型:状态~[7个预测因子中8项的线性公式]分布=二项式估计系数:Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 0.70239 0.064001 10.975 5.0538e-28 CustAge 0.60833 0.24932 2.44 0.014687 ResStatus 1.377 0.65272 2.1097 0.034888 EmpStatus 0.88565 0.293 3.0227 0.0025055 CustIncome 0.70164 0.21844 3.2121 0.0013179 TmWBank 1.1074 0.23271 4.7589 1.9464e-06 OtherCC 1.0883 0.52912 2.0569 0.039696AMBalance 1.045 0.32214 3.2439 0.0011792 1200 observations, 1192 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 89.7, p-value = 1.4e-16

假设您想要包含或“强迫”预测器“UtilRate”在logistic回归模型中,即使逐步方法没有将其包含在拟合模型中。您可以添加“UtilRate”对logistic回归模型使用GeneralizedLinearModel对象mdl直接。

mdl = mdl.addTerms (“UtilRate”
mdl =广义线性回归模型:状态~[8个预测因子中9项的线性公式]Estimate SE tStat pValue ________ ________ ________ __________ (Intercept) 0.70239 0.064001 10.975 5.0538e-28 CustAge 0.60843 0.24936 2.44 0.014687 ResStatus 1.3773 0.6529 2.1096 0.034896 EmpStatus 0.88556 0.29303 3.0221 0.0025103 CustIncome 0.70146 0.2186 3.2089 0.0013324 TmWBank 1.1071 0.23307 4.7503 2.0316e-06 OtherCC 1.0882 0.52918 2.0563分散:1 Chi^2-statistic vs. constant model: 89.7, p-value = 5.26e-16

使用setmodel更新模型预测因子和模型系数creditscorecard对象。的ModelPredictors输入参数没有显式地包含用于拦截的字符串。然而,ModelCoefficientsInput参数的第一个元素是拦截信息。

ModelPredictors = mdl。PredictorNames
ModelPredictors =8 x1细胞{' cusstage '} {'ResStatus'} {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'OtherCC'} {'AMBalance'} {'UtilRate'}
ModelCoefficients = mdl.Coefficients.Estimate
ModelCoefficients =9×10.7024 0.6084 1.3773 0.8856 0.7015 1.1071 1.0882 1.0413 0.0132
sc = setmodel (sc、ModelPredictors ModelCoefficients);

验证“UtilRate”是记分卡预测器的一部分,通过显示记分卡点数。

π= displaypoints (sc)
π=41×3表预测本点  ______________ ________________ _________ {' CustAge’}{[无穷,33)的-0.17152}{‘CustAge}{[33岁,37)的-0.15295}{‘CustAge}{[37、40)的-0.072892}{‘CustAge}{[40岁,46)的0.033856}{‘CustAge}{[46岁,48)的0.20193}{‘CustAge}{[48, 58)的0.21787}{“CustAge”}{的[58岁的Inf]} 0.46652{‘CustAge}{“失踪> <”}NaN{'EmpStatus'} {'EmpStatus'}} {'EmpStatus'}} {'EmpStatus'}} {'Employed'} 0.30193 {'EmpStatus'} {'EmpStatus'} {'CustIncome'} {'[-Inf,29000)'}} 0.46956⋮

这个例子展示了如何使用setmodel直接拟合逻辑回归模型,不使用fitmodel函数,然后将新的模型预测器和系数设置回creditscorecard对象。这种方法在控制逐步过程的选项方面提供了更大的灵活性。的非默认值符合逻辑回归模型“囚禁”参数,在逐步过程中逻辑回归模型中接纳新预测因子的准则。

创建一个creditscorecard对象使用CreditCardData.mat文件来加载数据(使用Refaat 2011的数据集)。使用“IDVar”论证来表明“CustID”包含ID信息,不应作为预测变量包含。

负载CreditCardDatasc = creditscorecard(数据,“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 = autobinning (sc);

logistic回归模型需要与证据权重(WOE)数据相匹配。由于首先需要对数据进行分类,然后将分类信息映射到相应的WOE值,因此,WOE转换是一种特殊的分类情况。这个转换是使用bindata函数。bindata具有为模型拟合步骤准备数据的参数。通过设置bindata的名称-值对参数“OutputType”WOEModelInput”

  • 所有预测器都转换为WOE值。

  • 输出只包含预测器和响应(no“IDVar”或任何未使用的变量)。

  • 具有无限或未定义的预测符()悲哀的价值观被抛弃了。

  • 将响应值映射为“Good”1和“坏”0(这意味着更高的非标度分数对应着更好、风险更低的客户)。

bd = bindata (sc,“OutputType”“WOEModelInput”);

例如,变量原始数据中的前10行“CustAge”“ResStatus”“CustIncome”,“状态”(响应变量)如下所示:

数据(1:10,{“CustAge”“ResStatus”“CustIncome”“状态”})
ans =10×4表CustAge ResStatus CustIncome状态  _______ __________ __________ ______ 53个租户50000 0 61房主52000 0 47租户37000 0 50房主53000 0 68房主53000 0 65房主48000其他50 0 34房主32000 1 51000 0 50租户52000 1 49房主53000 1

下面是调用后相同的10行bindata使用名称-值对参数“OutputType”设置为“WOEModelInput”

bd (1:10, {“CustAge”“ResStatus”“CustIncome”“状态”})
ans =10×4表cusstage ResStatus CustIncome status ________ _________ __________ ______ 0.21378 -0.095564 0.47972 1 0.62245 0.019329 0.47972 1 0.18758 -0.095564 -0.026696 1 0.21378 0.019329 0.47972 1 0.62245 0.019329 0.47972 1 0.39568 0.019329 -0.29217 0 0.21378 0.20049 0.47972 1 0.21378 0.095564 0.47972 0 0.21378 0.019329 0.47972 0 0.21378 0.095564 0.47972

使用统计学和机器学习工具箱™函数逐步拟合逻辑线性回归模型stepwiseglm,但使用非默认值“囚禁”“PRemove”可选参数。的预测因素“ResStatus”“OtherCC”将通常包含在logistic线性回归模型中,使用逐步过程的默认选项。

mdl = stepwiseglm (bd,“不变”“分布”“二”...“上”“线性”“囚禁”, 0.025,“PRemove”, 0.05)
1.加上CustIncome, Deviance = 1490.8527, Chi2Stat = 32.588614, PValue = 1.1387992e-08添加TmWBank, Deviance = 1467.1415, Chi2Stat = 23.711203, PValue = 1.1192909e-06添加AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601增加EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257 5。添加CustAge, Deviance = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
mdl =广义线性回归模型:logit(status) ~ 1 + CustAge + EmpStatus + CustIncome + TmWBank + AMBalance Distribution =二项式估计系数:Estimate SE tStat pValue ________ ________ ______ __________ (Intercept) 0.70263 0.063759 11.02 3.0544e-28 CustAge 0.57265 0.2482 2.3072 0.021043 EmpStatus 0.88356 0.29193 3.0266 0.002473 CustIncome 0.70399 0.21781 3.2321 0.001229 TmWBank 1.1 0.23185 4.7443 2.0924e-06 AMBalance 1.0313 0.32007 3.2221 0.0012724离散:1 Chi^2-statistic vs. constant model: 81.4, p-value = 4.18e-16

使用setmodel更新模型预测因子和模型系数creditscorecard对象。的ModelPredictors输入参数没有显式地包含用于拦截的字符串。然而,ModelCoefficientsInput参数的第一个元素是拦截信息。

ModelPredictors = mdl。PredictorNames
ModelPredictors =5 x1细胞{'CustAge'} {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'AMBalance'}
ModelCoefficients = mdl.Coefficients.Estimate
ModelCoefficients =6×10.7026 0.5726 0.8836 0.7040 1.1000 1.0313
sc = setmodel (sc、ModelPredictors ModelCoefficients);

通过显示记分卡点数,验证所需的模型预测器是否是记分卡预测器的一部分。

π= displaypoints (sc)
π=30×3表预测本点  ______________ _________________ _________ {' CustAge’}{[无穷,33)的-0.10354}{‘CustAge}{[33岁,37)的-0.086059}{‘CustAge}{[37、40)的-0.010713}{‘CustAge}{[40岁,46)的0.089757}{‘CustAge}{[46岁,48)的0.24794}{‘CustAge}{[48, 58)的0.26294}{“CustAge”}{的[58岁的Inf]} 0.49697{‘CustAge}{“失踪> <”}NaN{'EmpStatus'} {'EmpStatus'} {''} NaN {'CustIncome'} {'[-Inf,29000)'} -0.41884 {'CustIncome'} {'[29000,33000)'} -0.065161 {'CustIncome'} {'[33000,35000)'} 0.092353 {'CustIncome'} {'[35000,40000)'} 0.12173 {'CustIncome'}{'[40000,42000)'} 0.13259⋮

输入参数

全部折叠

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

预测器名称包括在拟合模型中,指定为字符向量的单元数组为{‘PredictorName1’,‘PredictorName2’,…}.中的预测器名称必须匹配预测器变量名称creditscorecard对象。

请注意

不包括字符向量的常数项ModelPredictorssetmodel在内部处理“(拦截)”项基于模型系数的数量(见ModelCoefficients).

数据类型:细胞

与模型预测器相对应的模型系数,指定为模型系数的数字数组,(coeff1、coeff2 . .).如果N是否提供了预测器名称的数量ModelPredictors的大小ModelCoefficients可以NN+ 1。如果ModelCoefficientsN+1个元素,则第一个系数被用作“(拦截)”拟合模型。否则,“(拦截)”被设置为0

数据类型:

输出参数

全部折叠

信用记分卡模型,作为更新的creditscorecard对象。的creditscorecard对象包含有关模型预测因子和拟合模型系数的信息。有关使用的更多信息creditscorecard对象,看到creditscorecard

更多关于

全部折叠

工作流使用setmodel

当使用setmodel,有两个可能的工作流程来设置最终的模型预测器和模型系数creditscorecard对象。

第一个工作流是:

  • 使用fitmodel获取可选输出参数mdl.这是一个GeneralizedLinearModel对象,并可以添加和删除项,或修改阶梯式过程的参数。只有线性项可以在模型中(没有交互或任何其他高阶项)。

  • 一旦GeneralizedLinearModel对象是满意的,设置最终的模型预测因子和模型系数为creditscorecard对象使用setmodel输入参数为ModelPredictorsModelCoefficients

另一个工作流是:

  • 使用以下方法获得证据权重(WOE)数据bindata.使用“WOEModelInput”选择“OutputType”中的名称-值对参数bindata以确保:

    • 预测器数据被转换为WOE。

    • 只包含有有限WOE值的预测器。

    • 响应变量放置在最后一列。

    • 响应变量被映射(“Good”是1和“坏”0).

  • 使用前一步的数据来拟合线性逻辑回归模型(模型中只有线性项,没有交互,或任何其他高阶项)。见,例如,stepwiseglm

  • 一旦GeneralizedLinearModel对象是满意的,设置最终的模型预测因子和模型系数为creditscorecard对象使用setmodel输入参数为ModelPredictorsModelCoefficients

参考文献

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

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

介绍了R2014b