逻辑回归中罕见事件SAS中的补偿过采样
有谁能帮助我理解逻辑回归中使用偏移方法(最好是在Proc Logistic和评分中的Base SAS中)进行过采样的模型前和模型后调整逻辑回归中罕见事件SAS中的补偿过采样,sas,logistic-regression,Sas,Logistic Regression,有谁能帮助我理解逻辑回归中使用偏移方法(最好是在Proc Logistic和评分中的Base SAS中)进行过采样的模型前和模型后调整 我举个例子。考虑到银行的传统信用评分模型,假设我们有10000个客户,其中50000个是好客户,2000个是坏客户。现在,对于我的逻辑回归,我使用了2000个坏客户和2000个好客户的随机样本。我如何在过程逻辑中使用偏移和评分等选项调整过采样。关于这个话题,你有没有带插图的参考资料? 提前感谢您的帮助 好的,这是我的2美分 有时,目标变量是一个罕见的事件,比如欺
我举个例子。考虑到银行的传统信用评分模型,假设我们有10000个客户,其中50000个是好客户,2000个是坏客户。现在,对于我的逻辑回归,我使用了2000个坏客户和2000个好客户的随机样本。我如何在过程逻辑中使用偏移和评分等选项调整过采样。关于这个话题,你有没有带插图的参考资料?
提前感谢您的帮助 好的,这是我的2美分 有时,目标变量是一个罕见的事件,比如欺诈。在这种情况下,由于事件数据不足,使用逻辑回归将有显著的样本偏差。由于其简单性,过采样是一种常见的方法 然而,当分数用于决策时,需要进行模型校准(这是您的情况)-但是,如果模型仅用于排名排序,则无需进行任何操作(请记住,概率会增加,但排序仍然相同) 协变量的参数和优势比估计(及其置信限)不受此类抽样(或过抽样)的影响,因此不需要加权。但是,截距估计受采样影响,因此任何基于全套参数估计的计算都是不正确的 假设真实模型为:
ln(y/(1-y))=b0+b1*x。
当使用过采样时,b1′
与真实模型一致,但是,b0′
不等于bo
通常有两种方法:
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/偏置=关闭;
跑
标准瓦尔德
参数测向估计