setmodel
设置模型预测因子和系数
描述
设定线性逻辑回归模型外拟合的预测因子和系数sc
= setmodel (sc
,ModelPredictors
,ModelCoefficients
)creditscorecard
对象,并返回一个已更新的creditscorecard
对象。预测因子和系数用于计算记分卡点。使用setmodel
代替fitmodel
,符合线性逻辑回归模型,因为setmodel
提供更高的灵活性。例如,当一个模型与fitmodel
需要修改时,可以使用setmodel
.有关更多信息,请参见使用setmodel的工作流.
请注意
当使用setmodel
,以下假设适用:
模型系数对应于线性逻辑回归模型(其中只有线性项包含在模型中,不存在相互作用或任何其他高阶项)。
该模型之前使用证据权重(WOE)数据进行拟合,并将响应映射为“好”
1
“坏”是0
.
例子
修改拟合的GLM模型fitmodel
这个例子展示了如何使用setmodel
对最初使用的逻辑回归模型进行修正fitmodel
函数,然后将新的逻辑回归模型设置为预测因子和回归系数creditscorecard
对象。
创建一个creditscorecard
对象使用CreditCardData.mat
文件来加载数据
(使用Refaat 2011的数据集)。
负载CreditCardDataSc =信用记分卡(数据,“IDVar”,“CustID”)
sc = creditscorecard与属性:GoodLabel: 0 responseval: '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
仅支持关于万博1manbetx逐步过程的有限选项。你可以使用可选选项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-063 .添加AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601。5.添加EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257。添加CustAge, Deviance = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306添加ResStatus, Deviance = 1437.8756, Chi2Stat = 4.118404, PValue = 0.042419078。添加OtherCC, Deviance = 1433.707, Chi2Stat = 4.1686018, PValue = 0.041179769广义线性回归模型:状态~[7个预测因子中有8项的线性公式]分布=二项式估计系数:估计SE tStat pValue ________ ________ ______ __________(拦截)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.039696 AMBalance 1.045 0.32214 3.2439 0.0011792 1200观测值,1192误差自由度离散度:1 Chi^2统计与常数模型:89.7, p-value = 1.4e-16
假设您想要包含或“强制”预测器“UtilRate”
在逻辑回归模型中,即使逐步方法没有将其包含在拟合模型中。你可以添加“UtilRate”
对logistic回归模型进行了分析GeneralizedLinearModel
对象mdl
直接。
mdl = mdl. addterms (“UtilRate”)
mdl =广义线性回归模型:状态~[8个预测因子中有9项的线性公式]分布=二项式估计系数:估计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 0.03975 AMBalance 1.0413 0.36557 2.8483 0.004395 UtilRate 0.013157 0.60864 0.021618 0.98275 1200观测值,1191误差自由度离散度:1 Chi^2统计量与常数模型:89.7,p值= 5.26e-16
使用setmodel
更新模型预测因子和模型系数creditscorecard
对象。的ModelPredictors
Input参数没有显式地包括用于截取的字符串。然而,ModelCoefficients
Input参数确实将截取信息作为其第一个元素。
ModelPredictors = mdl。PredictorNames
ModelPredictors =8 x1细胞{'CustAge'} {'ResStatus'} {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'OtherCC'} {'AMBalance'} {'UtilRate'}
模型系数= 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”
是记分卡预测器的一部分,通过显示记分卡点。
PI = 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}{“失踪> <”}南{‘ResStatus}{“租户”}-0.043826{‘ResStatus}{‘业主’}0.11442{‘ResStatus}{‘其他’}0.36394{‘ResStatus}{“失踪> <”}南{' EmpStatus '}{'Unknown' } -0.088843 {'EmpStatus' } {'Employed' } 0.30193 {'EmpStatus' } {'' } NaN {'CustIncome'} {'[-Inf,29000)'} -0.46956 ⋮
拟合逻辑回归模型之外的creditscorecard
对象
这个例子展示了如何使用setmodel
直接拟合逻辑回归模型,而不使用fitmodel
函数,然后将新的模型预测器和系数设置回creditscorecard
对象。这种方法在控制逐步过程的选项方面提供了更大的灵活性。的非默认值适合逻辑回归模型“囚禁”
参数是logistic回归模型在逐步过程中接纳新预测因子的标准。
创建一个creditscorecard
对象使用CreditCardData.mat
文件来加载数据
(使用Refaat 2011的数据集)。使用“IDVar”
参数表示“CustID”
包含ID信息,不应作为预测变量。
负载CreditCardDataSc =信用记分卡(数据,“IDVar”,“CustID”)
sc = creditscorecard与属性:GoodLabel: 0 responseval: '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);
逻辑回归模型需要与证据权重(WOE)数据相拟合。WOE转换是装箱的一种特殊情况,因为首先需要将数据装箱,然后将装箱的信息映射到相应的WOE值。这个转换是使用bindata
函数。bindata
具有为模型拟合步骤准备数据的参数。通过设置bindata
的名称-值对参数“OutputType”
来WOEModelInput”
:
所有预测器都转换为WOE值。
输出只包含预测器和响应(no
“IDVar”
或任何未使用的变量)。具有无限或未定义的预测符(
南
悲哀的价值观被抛弃了。响应值被映射,所以“Good”是
1
“坏”就是0
(这意味着较高的未缩放分数对应于更好、风险更低的客户)。
Bd = bindata(sc,“OutputType”,“WOEModelInput”);
例如,变量原始数据中的前十行“CustAge”
,“ResStatus”
,“CustIncome”
,“状态”
(响应变量)是这样的:
数据(1:10,{“CustAge”“ResStatus”“CustIncome”“状态”})
ans =10×4表CustAge ResStatus CustIncome status _______ __________ __________ ______ 53租户50000 0 61房主52000 0 47租户37000 0 50房主53000 0 68房主53000 0 65房主48000 0 34房主32000 1 50其他51000 0 50租户52000 1 49房主53000 1
下面是调用后相同的十行bindata
使用名称-值对参数“OutputType”
设置为“WOEModelInput”
:
bd (1:10, {“CustAge”“ResStatus”“CustIncome”“状态”})
ans =10×4表CustAge 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
使用统计和机器学习工具箱™功能逐步拟合逻辑线性回归模型stepwiseglm
的值使用非默认值“囚禁”
而且“PRemove”
可选参数。的预测因素“ResStatus”
而且“OtherCC”
通常包括在逻辑线性回归模型中,使用逐步过程的默认选项。
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-063 .添加AMBalance, Deviance = 1455.5715, Chi2Stat = 11.569967, PValue = 0.00067025601。5.添加EmpStatus, Deviance = 1447.3451, Chi2Stat = 8.2264038, PValue = 0.0041285257。添加CustAge, Deviance = 1441.994, Chi2Stat = 5.3511754, PValue = 0.020708306
mdl =广义线性回归模型:logit(status) ~ 1 + CustAge + EmpStatus + CustIncome + TmWBank + AMBalance分布=二项估计系数:估计SE tStat pValue ________ ________ ______ __________(拦截)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 1200观测值,1194误差自由度离散度:1 Chi^2统计与常数模型:81.4,p值= 4.18e-16
使用setmodel
更新模型预测因子和模型系数creditscorecard
对象。的ModelPredictors
Input参数没有显式地包括用于截取的字符串。然而,ModelCoefficients
Input参数确实将截取信息作为其第一个元素。
ModelPredictors = mdl。PredictorNames
ModelPredictors =5 x1细胞{'CustAge'} {'EmpStatus'} {'CustIncome'} {'TmWBank'} {'AMBalance'}
模型系数= mdl.Coefficients.Estimate
ModelCoefficients =6×10.7026 0.5726 0.8836 0.7040 1.1000 1.0313
sc = setmodel(sc,ModelPredictors,ModelCoefficients);
通过显示记分卡点,验证所需的模型预测器是记分卡预测器的一部分。
PI = 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}{“失踪> <”}南{‘EmpStatus}{‘未知’}-0.035716{‘EmpStatus}{“雇佣”}0.35417{‘EmpStatus}{“失踪> <”}南{‘CustIncome}{-0.41884}[无穷,29000){'CustIncome'} {'[29000,33000)'} -0.065161 {'CustIncome'} {'[33000,35000)'} 0.092353 {'CustIncome'} {'[35000,40000)'} 0.12173 {'CustIncome'} {'[40000,42000)'} 0.13259}
输入参数
sc
- - - - - -信用记分卡模型
creditscorecard
对象
信用记分卡模型,指定为creditscorecard
对象。使用creditscorecard
要创建creditscorecard
对象。
ModelPredictors
- - - - - -拟合模型中包括预测器名称
具有预测值的特征向量的单元格数组{‘PredictorName1’,‘PredictorName2’,…}
包含在拟合模型中的预测器名称,指定为字符向量的单元格数组{‘PredictorName1’,‘PredictorName2’,…}
.类型中的预测器变量名称必须匹配creditscorecard
对象。
请注意
不包括常数项的字符向量ModelPredictors
,setmodel
内部处理“(拦截)”
项基于模型系数的数量(见ModelCoefficients
).
数据类型:细胞
ModelCoefficients
- - - - - -模型系数对应于模型预测因子
带值的数值数组(coeff1、coeff2 . .)
对应于模型预测因子的模型系数,指定为模型系数的数值数组,(coeff1、coeff2 . .)
.如果N是否提供了预测器名称的数量ModelPredictors
的大小ModelCoefficients
可以N或N+ 1。如果ModelCoefficients
有N+1个元素,则第一个系数作为“(拦截)”
适合的模型。否则,“(拦截)”
设置为0
.
数据类型:双
输出参数
sc
-信用记分卡模型
creditscorecard
对象
信用记分卡模型,作为更新返回creditscorecard
对象。的creditscorecard
对象包含关于拟合模型的模型预测因子和系数的信息。的详细信息creditscorecard
对象,看到creditscorecard
.
更多关于
使用流程setmodel
当使用setmodel
,有两种可能的工作流程,将最终的模型预测因子和模型系数设置为acreditscorecard
对象。
第一个工作流是:
使用
fitmodel
获取可选输出参数mdl
.这是一个GeneralizedLinearModel
对象,您可以添加和删除项,或修改逐步过程的参数。模型中只有线性项(没有交互或任何其他高阶项)。一旦
GeneralizedLinearModel
对象是满意的,最后设定模型的预测因子和模型系数creditscorecard
对象使用setmodel
的输入参数ModelPredictors
而且ModelCoefficients
.
另一个工作流程是:
获取证据权重(WOE)数据使用
bindata
.使用“WOEModelInput”
选项。“OutputType”
中的名称-值对参数bindata
确保:预测器数据转换为WOE。
只有那些容器具有有限WOE值的预测器才会被包括在内。
响应变量放在最后一列。
映射响应变量(“Good”是
1
“坏”就是0
).
使用上一步的数据来拟合线性逻辑回归模型(模型中只有线性项,没有相互作用,或任何其他高阶项)。比如,
stepwiseglm
.一旦
GeneralizedLinearModel
对象是满意的,最后设定模型的预测因子和模型系数creditscorecard
对象使用setmodel
的输入参数ModelPredictors
而且ModelCoefficients
.
参考文献
[1]安德森信用评分工具包。牛津大学出版社,2007年。
[2] Refaat, M。信用风险记分卡:使用SAS开发和实现。lulu.com, 2011。
另请参阅
creditscorecard
|autobinning
|bininfo
|predictorinfo
|modifypredictor
|plotbins
|modifybins
|bindata
|displaypoints
|formatpoints
|分数
|stepwiseglm
|fitglm
|fitmodel
|probdefault
|validatemodel
|GeneralizedLinearModel
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。