【发布时间】:2019-10-03 18:40:47
【问题描述】:
我正在运行一个项目,该项目采用两步程序来预测个人是否会偿还贷款。该项目旨在向我们介绍零售信用风险和日常个人借贷,例如信用卡。
两个步骤如下
-
对“已解决”的案例运行多元逻辑回归。也就是说,这些观察有一个明确的结果,因为它们的因变量是 1 表示“治愈”,0 表示“清算” 对于本节,我使用因子
- 每日经常账户变化/数量
- 长期债务总额
- 信用使用率
- 自上次付款以来的时间
- 与信用卡提供商的时间
-
现在我有一个模型,该模型可以提供过去有关个人是否设法清偿债务或宣布无力偿债的信息。我要将此模型应用于目前无法偿还贷款的个人。
这样做的前提是用未结案件补充已结案件。因此,未结案件将有可能被“偿还”或“治愈”。
现在我的输入表是这样的
Resolution_status dependent_var weight X1 X2 X3 X4 X5
Resolved 1 1 30 1500 3 3
Resolved 0 1 15 750 1 1
----------------------------------------------------------------
Unresolved 1 0.6 5 500 6 6
Unresolved 0 0.4 5 500 6 6
我已将未解决的案例分开,以确定每个观察结果都遵循这些规则 - 每个未解决的观察都是重复的 - 第一个被赋予“1”表示治愈,权重等于模型在步骤 1 中估计的治愈概率
使用权重声明有什么影响?我应该使用膨胀的零一贝塔回归还是分数 logit 模型?
我已尝试使用 SAShelp.baseball 数据集运行上述示例以允许您运行它
/*Split the dataset into resolved and unresolved*/
DATA baseball_resolved
baseball_unresolved
;
SET sashelp.baseball
(KEEP = cr: logsalary);
IF NOT MISSING(logsalary) THEN DO;
IF logsalary > 6.5 THEN flag = 1;
ELSE flag = 0;
END;
IF NOT MISSING(logsalary) THEN OUTPUT baseball_resolved;
ELSE OUTPUT baseball_unresolved;
DROP logSalary;
RUN;
/*Predict the model on the resolved cases*/
PROC LOGISTIC DESCENDING
OUTMODEL = in_model_baseball
DATA = baseball_resolved
PLOTS(ONLY) = NONE;
MODEL flag (Event = '1') = cr:
/
SELECTION = NONE
LINK = LOGIT
;
RUN;
QUIT;
/*Apply the model to the unresolved cases*/
PROC LOGISTIC
INMODEL = in_model_baseball;
SCORE DATA = baseball_unresolved
OUT = unresolved_score
(KEEP = cr: p_1 p_0);
RUN;
/*Now output duplicate rows, with a weight attached*/
DATA unresolved_baseball_p_cure;
SET unresolved_score
(RENAME = (p_1 = weight));
flag = 1;
;
DROP p_0;
RUN;
DATA unresolved_baseball_p_non_cure;
SET unresolved_score
(RENAME = (p_0 = weight));
flag = 1;
;
DROP p_1;
RUN;
/*Attach a weight of 1 to all resolved cases*/
DATA baseball_resolved_weight;
SET baseball_resolved;
WEIGHT = 1;
RUN;
/*Merge the tables*/
DATA full_table
(rename = (weight = weight_var));
SET
baseball_resolved_weight
unresolved_baseball_p_cure
unresolved_baseball_p_non_cure;
RUN;
/*Run a logistic regression with weight*/
proc logistic
data = full_table;
model flag (EVENT = '1') = cr:;
weight weight_var;
RUN;
权重声明在我尝试的上下文中是否有效?我的目标本质上是对 1 和 0 进行逻辑回归,但要考虑到“未解决”的案例是重复的,并附有“治愈的概率”
【问题讨论】:
标签: sas regression logistic-regression mixed-models