proc logistic 中的权重语句是否影响自变量或因变量?
Does the weight statement in proc logistic impact the independent variable or dependent variable?
我正在 运行ning 一个项目,该项目实施了一个两步程序来预测个人是否会偿还贷款。该项目旨在向我们介绍零售信用风险和日常个人借贷,例如信用卡。
两个步骤如下
运行 "resolved" 个案例的多元逻辑回归。也就是说,这些观察有一个明确的结果,即 "Cure" 的因变量为 1,"liquidated" 的因变量为 0
对于这一部分,我使用 factors
- 每日活期账户变化/交易量
- 长期债务总额
- 信用利用
- 自上次付款以来的时间
- 信用卡提供商的时间
现在我有了一个模型,该模型包含有关个人是否设法清偿债务或宣布破产的过去信息。我将把这个模型应用到目前无法偿还贷款的个人身上。
这样做的前提是结案补结案。因此,打开的案例将有可能附加 "paying back" 或 "cure"。
现在我的输入 table 看起来像这样
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 中估计的治愈概率
使用权重语句有什么影响?我应该改用膨胀的零一贝塔回归还是分数对数模型?
我已经尝试 运行将上面的例子与 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;
重量声明在我尝试的上下文中是否有效?我的 objective 本质上是 运行 对 1 和 0 的逻辑回归,但要考虑到 "unresolved" 案例是重复的 "probability of cure" 附加的
权重语句将权重应用于整行。它既适用于独立人士,也适用于受抚养人
例如,如果数据集中只有这四行,
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
看待这个问题的方法是:虽然你实际上有 4 行,但出于所有计算目的,这个数据集被理解为只有 3 (Sigma(weight) = 1 + 1 + 0.6 + 0.4 = 3) 行.
因此,当您在上述 4 个观察数据集上 运行 一个权重变量为 'weight' 的 proc logistic 时,您在技术上是在以下方面建模逻辑回归:
3个观测值,其中(dependent_var=1)的观测值个数为1.6;并且 (dependent_var = 0) 的观察次数为 1.4;
权重也隐含在自变量 (X1 - X5) 上。例如,如果要计算 X1 的均值,则不再是 (30+15+5+5)/4;相反,它是 (30*1+15*1+5*0.6 +5*0.4)/3
从技术角度来看,这是重量。然而,关于你的前提的评论,以及这种方法的有效性问题,我不会在这里发表评论,因为这取决于对你的案例的进一步理解以及你对从信用风险角度做出的假设的舒适程度......
希望这对您有所帮助...
我正在 运行ning 一个项目,该项目实施了一个两步程序来预测个人是否会偿还贷款。该项目旨在向我们介绍零售信用风险和日常个人借贷,例如信用卡。
两个步骤如下
运行 "resolved" 个案例的多元逻辑回归。也就是说,这些观察有一个明确的结果,即 "Cure" 的因变量为 1,"liquidated" 的因变量为 0 对于这一部分,我使用 factors
- 每日活期账户变化/交易量
- 长期债务总额
- 信用利用
- 自上次付款以来的时间
- 信用卡提供商的时间
现在我有了一个模型,该模型包含有关个人是否设法清偿债务或宣布破产的过去信息。我将把这个模型应用到目前无法偿还贷款的个人身上。
这样做的前提是结案补结案。因此,打开的案例将有可能附加 "paying back" 或 "cure"。
现在我的输入 table 看起来像这样
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 中估计的治愈概率
使用权重语句有什么影响?我应该改用膨胀的零一贝塔回归还是分数对数模型?
我已经尝试 运行将上面的例子与 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;
重量声明在我尝试的上下文中是否有效?我的 objective 本质上是 运行 对 1 和 0 的逻辑回归,但要考虑到 "unresolved" 案例是重复的 "probability of cure" 附加的
权重语句将权重应用于整行。它既适用于独立人士,也适用于受抚养人
例如,如果数据集中只有这四行,
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
看待这个问题的方法是:虽然你实际上有 4 行,但出于所有计算目的,这个数据集被理解为只有 3 (Sigma(weight) = 1 + 1 + 0.6 + 0.4 = 3) 行.
因此,当您在上述 4 个观察数据集上 运行 一个权重变量为 'weight' 的 proc logistic 时,您在技术上是在以下方面建模逻辑回归:
3个观测值,其中(dependent_var=1)的观测值个数为1.6;并且 (dependent_var = 0) 的观察次数为 1.4;
权重也隐含在自变量 (X1 - X5) 上。例如,如果要计算 X1 的均值,则不再是 (30+15+5+5)/4;相反,它是 (30*1+15*1+5*0.6 +5*0.4)/3
从技术角度来看,这是重量。然而,关于你的前提的评论,以及这种方法的有效性问题,我不会在这里发表评论,因为这取决于对你的案例的进一步理解以及你对从信用风险角度做出的假设的舒适程度......
希望这对您有所帮助...