逻辑回归中罕见事件SAS中的补偿过采样

逻辑回归中罕见事件SAS中的补偿过采样,sas,logistic-regression,Sas,Logistic Regression,有谁能帮助我理解逻辑回归中使用偏移方法(最好是在Proc Logistic和评分中的Base SAS中)进行过采样的模型前和模型后调整 我举个例子。考虑到银行的传统信用评分模型,假设我们有10000个客户,其中50000个是好客户,2000个是坏客户。现在,对于我的逻辑回归,我使用了2000个坏客户和2000个好客户的随机样本。我如何在过程逻辑中使用偏移和评分等选项调整过采样。关于这个话题,你有没有带插图的参考资料? 提前感谢您的帮助 好的,这是我的2美分 有时,目标变量是一个罕见的事件,比如欺

有谁能帮助我理解逻辑回归中使用偏移方法(最好是在Proc Logistic和评分中的Base SAS中)进行过采样的模型前和模型后调整


我举个例子。考虑到银行的传统信用评分模型,假设我们有10000个客户,其中50000个是好客户,2000个是坏客户。现在,对于我的逻辑回归,我使用了2000个坏客户和2000个好客户的随机样本。我如何在过程逻辑中使用偏移和评分等选项调整过采样。关于这个话题,你有没有带插图的参考资料?
提前感谢您的帮助

好的,这是我的2美分

有时,目标变量是一个罕见的事件,比如欺诈。在这种情况下,由于事件数据不足,使用逻辑回归将有显著的样本偏差。由于其简单性,过采样是一种常见的方法

然而,当分数用于决策时,需要进行模型校准(这是您的情况)-但是,如果模型仅用于排名排序,则无需进行任何操作(请记住,概率会增加,但排序仍然相同)

协变量的参数和优势比估计(及其置信限)不受此类抽样(或过抽样)的影响,因此不需要加权。但是,截距估计受采样影响,因此任何基于全套参数估计的计算都是不正确的

假设真实模型为:
ln(y/(1-y))=b0+b1*x。
当使用过采样时,
b1′
与真实模型一致,但是,
b0′
不等于
bo

通常有两种方法:

  • 加权逻辑回归
  • 只需添加偏移量
  • 我将仅根据您的问题解释胶印版

    让我们创建一些虚拟数据,其中DP(y)和IV(IV)之间的真实关系是
    ln(y/(1-y))=-6+2iv

    data dummy_data;
        do j=1 to 1000;
            iv=rannor(10000); *independent variable;
            p=1/(1+exp(-(-6+2*iv))); * event probability;
            y=ranbin(10000,1,p);  * independent variable 1/0;
            drop j;
            output;
        end;
    run;
    
    让我们看看你的活动率:

    proc freq data=dummy_data;
    tables y;
    run;
    
    
        Cumulative    Cumulative
    y    Frequency     Percent     Frequency      Percent
    ------------------------------------------------------
    0         979       97.90           979        97.90  
    1          21        2.10          1000       100.00  
    
    与您的问题类似,事件发生率为p=0.0210,换句话说,非常罕见

    让我们使用poc逻辑来估计参数

    proc logistic data=dummy_data;
    model y(event="1")=iv;
    run;
    
                                   Standard          Wald
    Parameter    DF    Estimate       Error    Chi-Square    Pr > ChiSq
    
    Intercept     1     -5.4337      0.4874      124.3027        <.0001
    iv            1      1.8356      0.2776       43.7116        <.0001
    
    如您所见,iv估计值仍然接近真实值,但您的截距已从
    -5.43
    更改为
    -2.98
    ,这与我们的
    -6
    真实值非常不同

    这里是偏移量发挥作用的地方。偏移量是已知总体和样本事件概率之间比率的日志,并根据事件的真实分布而不是样本分布(过采样数据集)调整截距

    Offset=log(0.28)/(1-0.28)*(0.0210)/(1-0.0210)=2.897548

    因此,您的截距调整将是
    intercept=-2.9836-2.897548=-5.88115
    ,这非常接近实际值

    或使用过程物流中的“偏移”选项:

    data oversampling_with_offset;
    set oversampling;
    off= log((0.28/(1-0.28))*((1-0.0210)/0.0210)) ;
    run;
    
    proc logistic data=oversampling_with_offset;
    model y(event="1")=iv / offset=off;
    run;
    
    
                                   Standard          Wald
    Parameter    DF    Estimate       Error    Chi-Square    Pr > ChiSq
    
    Intercept     1     -5.8811      0.6982       70.9582        <.0001
    iv            1      2.0068      0.5138       15.2518        <.0001
    off           1      1.0000           0         .             .    
    
    带偏移量的数据过采样;
    设置过采样;
    off=对数((0.28/(1-0.28))*((1-0.0210)/0.0210));
    跑
    proc逻辑数据=带偏移量的过采样;
    y型(event=“1”)=iv/偏置=关闭;
    跑
    标准瓦尔德
    参数DF估计误差卡方Pr>ChiSq
    
    截距1-5.8811 0.6982 70.9582好的,这是我的2美分

    有时,目标变量是一个罕见的事件,比如欺诈。在这种情况下,由于事件数据不足,使用逻辑回归将有显著的样本偏差。由于其简单性,过采样是一种常见的方法

    然而,当分数用于决策时,需要进行模型校准(这是您的情况)-但是,如果模型仅用于排名排序,则无需进行任何操作(请记住,概率会增加,但排序仍然相同)

    协变量的参数和优势比估计(及其置信限)不受此类抽样(或过抽样)的影响,因此不需要加权。但是,截距估计受采样影响,因此任何基于全套参数估计的计算都是不正确的

    假设真实模型为:
    ln(y/(1-y))=b0+b1*x。
    当使用过采样时,
    b1′
    与真实模型一致,但是,
    b0′
    不等于
    bo

    通常有两种方法:

  • 加权逻辑回归
  • 只需添加偏移量
  • 我将仅根据您的问题解释胶印版

    让我们创建一些虚拟数据,其中DP(y)和IV(IV)之间的真实关系是
    ln(y/(1-y))=-6+2iv

    data dummy_data;
        do j=1 to 1000;
            iv=rannor(10000); *independent variable;
            p=1/(1+exp(-(-6+2*iv))); * event probability;
            y=ranbin(10000,1,p);  * independent variable 1/0;
            drop j;
            output;
        end;
    run;
    
    让我们看看你的活动率:

    proc freq data=dummy_data;
    tables y;
    run;
    
    
        Cumulative    Cumulative
    y    Frequency     Percent     Frequency      Percent
    ------------------------------------------------------
    0         979       97.90           979        97.90  
    1          21        2.10          1000       100.00  
    
    与您的问题类似,事件发生率为p=0.0210,换句话说,非常罕见

    让我们使用poc逻辑来估计参数

    proc logistic data=dummy_data;
    model y(event="1")=iv;
    run;
    
                                   Standard          Wald
    Parameter    DF    Estimate       Error    Chi-Square    Pr > ChiSq
    
    Intercept     1     -5.4337      0.4874      124.3027        <.0001
    iv            1      1.8356      0.2776       43.7116        <.0001
    
    如您所见,iv估计值仍然接近真实值,但您的截距已从
    -5.43
    更改为
    -2.98
    ,这与我们的
    -6
    真实值非常不同

    这里是偏移量发挥作用的地方。偏移量是已知总体和样本事件概率之间比率的日志,并根据事件的真实分布而不是样本分布(过采样数据集)调整截距

    Offset=log(0.28)/(1-0.28)*(0.0210)/(1-0.0210)=2.897548

    因此,您的截距调整将是
    intercept=-2.9836-2.897548=-5.88115
    ,这非常接近实际值

    或使用过程物流中的“偏移”选项:

    data oversampling_with_offset;
    set oversampling;
    off= log((0.28/(1-0.28))*((1-0.0210)/0.0210)) ;
    run;
    
    proc logistic data=oversampling_with_offset;
    model y(event="1")=iv / offset=off;
    run;
    
    
                                   Standard          Wald
    Parameter    DF    Estimate       Error    Chi-Square    Pr > ChiSq
    
    Intercept     1     -5.8811      0.6982       70.9582        <.0001
    iv            1      2.0068      0.5138       15.2518        <.0001
    off           1      1.0000           0         .             .    
    
    带偏移量的数据过采样;
    设置过采样;
    off=对数((0.28/(1-0.28))*((1-0.0210)/0.0210));
    跑
    proc逻辑数据=带偏移量的过采样;
    y型(event=“1”)=iv/偏置=关闭;
    跑
    标准瓦尔德
    参数测向估计