【问题标题】:Does the weight statement in proc logistic impact the independent variable or dependent variable?proc 逻辑中的权重语句是否影响自变量或因变量?
【发布时间】:2019-10-03 18:40:47
【问题描述】:

我正在运行一个项目,该项目采用两步程序来预测个人是否会偿还贷款。该项目旨在向我们介绍零售信用风险和日常个人借贷,例如信用卡。

两个步骤如下

  1. 对“已解决”的案例运行多元逻辑回归。也就是说,这些观察有一个明确的结果,因为它们的因变量是 1 表示“治愈”,0 表示“清算” 对于本节,我使用因子

    • 每日经常账户变化/数量
    • 长期债务总额
    • 信用使用率
    • 自上次付款以来的时间
    • 与信用卡提供商的时间
  2. 现在我有一个模型,该模型可以提供过去有关个人是否设法清偿债务或宣布无力偿债的信息。我要将此模型应用于目前无法偿还贷款的个人。

    这样做的前提是用未结案件补充已结案件。因此,未结案件将有可能被“偿还”或“治愈”。

现在我的输入表是这样的

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


    【解决方案1】:

    权重语句将权重应用于整行。它既适用于独立者,也适用于依赖者

    例如,如果数据集中只有这四行,

    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 个观察数据集上运行权重变量为“权重”的 proc 逻辑时,从技术上讲,您在以下方面建模逻辑回归:

    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

    这是从技术角度来看的重量。但是,在您的前提下,以及这种方法的有效性问题,我不会在这里发表评论,因为这取决于对您的案例的进一步理解以及您对从信用风险角度做出的假设的舒适程度......

    希望这会有所帮助...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      • 1970-01-01
      相关资源
      最近更新 更多