setmodel.

设置模型预测因子和系数

描述

例子

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

请注意

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

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

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

例子

全部收缩

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

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

负载CreditCardData.sc = 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个术语中,8个预测器中的9个术语]分布=二项式估计系数:估计SE Tstat pvalue ________ __________________________________________________________________________________________________________________________________________________________________________________________________________________0.9750.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 0.03975 1.0413 AMBalance 0.36557 2.8483 0.004395 0.013157 UtilRate 0.60864 0.021618 0.98275 1200观察,1191个错误自由度分散体:1驰^ 2- 常量与常量型号:89.7,p值= 5.26e-16

采用setmodel.更新模型预测因子和模型系数creditscorecard对象。的ModelPredictors.输入参数未明确地包含拦截的字符串。然而型号纤数输入参数确实将截距信息作为其第一个元素。

modelpredictors = mdl.predictornames.
ModelPredictors =8x1单元阵列{' 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,modelpricictors,modelcoeffients);

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

pi = displaypoints(sc)
pi =41×3表预测变量___________________________________________________-inf,33)'} -0.17152 {'custage'} {'[33,37)'} -0.15295 {'监护'} {'[37,40])'} -0.072892 {'custage'} {'[40,46)'} 0.033856 {'custage'} {'[46,48)'} 0.21193 {'[48,58)} 0.21787{'custage'} {'[58,inf]'} 0.46652 {'监护'} {'<缺失>'} nan {'resstatus'} {'租户'} -0.043826 {'resstatus'} {'房主'0.11442 {'Resstatus'} {'其他'} 0.36394 {'resstatus'} {'<缺少>'} naN {'empstatus'} {'未知'} {'未知'} -0.088843 {empstatus'} {'useded'} 0.30193 {'empstatus'} {'<缺失>'} nan {'custincome'} {'[-inf,29000)'} -0.46956♥

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

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

负载CreditCardData.sc = 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”woemodelinpul'

  • 所有预测器都转换为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表CustAge ResStatus CustIncome状态________ _________ __________ ______ 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.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 00.21378 0.019329 0.47972 0

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

mdl = stepwiseglm (bd,“不变”“分布”'二重子'...“上”“线性”'penter', 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(状态)〜1 + Cutage + Empstatus + CustInd + TMWbank +伏重分布=二项式估计系数:估计SE Tstat Pvalue ________ _____________________________________(拦截)0.7.0263 0.2482保管0.7263 0.24822.3072 0.021043 EMPSTATUS 0.88356 0.29193 3.0266 0.002473询问0.70390 0.21781 3.2321 0.001229 TMWBANK 1.1 0.23185 4.7443 2.0924E-06 Absalance 1.0313 0.32007 3.2221 0.0012724 1200观察结果,1194误差自由色散:1 Chi ^ 2统计与常数型号:81.4,P-值= 4.18e-16

采用setmodel.更新模型预测因子和模型系数creditscorecard对象。的ModelPredictors.输入参数未明确地包含拦截的字符串。然而型号纤数输入参数确实将截距信息作为其第一个元素。

modelpredictors = mdl.predictornames.
ModelPredictors =5 x1单元阵列{'custage'} {'empstatus'} {'custincome'} {'tmwbank'} {'bambalance'}
ModelCoefficients = mdl.Coefficients.Estimate
ModelCoefficients =6×10.7026 0.5726 0.8836 0.7040 1.1000 1.0313
sc = setmodel(sc,modelpricictors,modelcoeffients);

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

pi = displaypoints(sc)
pi =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⋮

输入参数

全部收缩

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

拟合模型中包含的预测器名称,指定为字符向量的小区数组{'predictorname1','predictorname2',...}.中的预测器名称必须匹配预测器变量名称creditscorecard对象。

请注意

不包括字符向量的常数项ModelPredictors.setmodel.在内部处理'(截距)'基于模型系数数量的术语(参见型号纤数)。

数据类型:细胞

与模型预测器相对应的模型系数,指定为模型系数的数字数组,[COEFF1,COEFF2,..].如果N是否提供了预测器名称的数量ModelPredictors., 的大小型号纤数可以N要么N+ 1。如果型号纤数N+1元素,然后使用第一个系数作为'(截距)'拟合模型。否则,'(截距)'被设置为0

数据类型:双倍的

输出参数

全部收缩

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

更多关于

全部收缩

使用的工作流程setmodel.

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

第一个工作流是:

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

  • 一旦GeneralizedLinearModel对象是令人满意的,将最终模型预测器和模型系数设置为creditscorecard对象使用setmodel.输入参数为ModelPredictors.型号纤数

另一个工作流是:

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

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

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

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

    • 映射响应变量(“好”是1和“坏”0)。

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

  • 一旦GeneralizedLinearModel对象是令人满意的,将最终模型预测器和模型系数设置为creditscorecard对象使用setmodel.输入参数为ModelPredictors.型号纤数

参考

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

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

在R2014B中介绍