下采样会改变逻辑回归系数吗?


34

如果我有一个非常罕见的阳性类别的数据集,并且对阴性类别进行了下采样,然后执行逻辑回归,是否需要调整回归系数以反映我改变了阳性类别的患病率这一事实?

例如,假设我有一个包含4个变量的数据集:Y,A,B和C。Y,A和B是二进制的,C是连续的。对于11,100个观察,Y = 0,对于900个Y = 1:

set.seed(42)
n <- 12000
r <- 1/12
A <- sample(0:1, n, replace=TRUE)
B <- sample(0:1, n, replace=TRUE)
C <- rnorm(n)
Y <- ifelse(10 * A + 0.5 * B + 5 * C + rnorm(n)/10 > -5, 0, 1)

给定A,B和C,我拟合了logistic回归来预测Y。

dat1 <- data.frame(Y, A, B, C)
mod1 <- glm(Y~., dat1, family=binomial)

但是,为了节省时间,我可以删除10,200个非Y观测值,从而得出900 Y = 0和900 Y = 1:

require('caret')
dat2 <- downSample(data.frame(A, B, C), factor(Y), list=FALSE)
mod2 <- glm(Class~., dat2, family=binomial)

这两个模型的回归系数看起来非常相似:

> coef(summary(mod1))
              Estimate Std. Error   z value     Pr(>|z|)
(Intercept) -127.67782  20.619858 -6.191983 5.941186e-10
A           -257.20668  41.650386 -6.175373 6.600728e-10
B            -13.20966   2.231606 -5.919353 3.232109e-09
C           -127.73597  20.630541 -6.191596 5.955818e-10
> coef(summary(mod2))
              Estimate  Std. Error     z value    Pr(>|z|)
(Intercept) -167.90178   59.126511 -2.83970391 0.004515542
A           -246.59975 4059.733845 -0.06074284 0.951564016
B            -16.93093    5.861286 -2.88860377 0.003869563
C           -170.18735   59.516021 -2.85952165 0.004242805

这使我相信下采样不会影响系数。但是,这是一个人为的示例,我想肯定知道。


8
除了截距,您在下采样时估计的是相同的总体参数,但精度较低-截距除外,您可以在知道响应的总体流行度时进行估计。有关证明,请参见Hosmer&Lemeshow(2000),《应用逻辑回归》,第6.3章。有时,在对大多数响应进行下采样时,您可能会引入分离(尽管不常见)。
Scortchi-恢复莫妮卡

@Scortchi发表您的评论作为答案-这似乎足以回答我的问题。感谢您的参考。
Zach

@Scortchi和Zach:根据下采样模型(mod2),Pr(>|z|)for A几乎为1。我们不能拒绝系数A为0的原假设,因此我们失去了用于的协变量mod1。这不是实质性的区别吗?
朱巴卜2015年

@Zhubarb:如我所述,您可能会引入分离,从而使Wald标准误差估计完全不可靠。
Scortchi-恢复莫妮卡

另请参见Scott 2006
StasK 2015年

Answers:


28

下采样等效于医学统计中的病例对照设计-您正在固定响应计数并观察协变量模式(预测变量)。也许关键参考文献是Prentice&Pyke(1979),“ Logistic疾病发病率模型和病例对照研究”,Biometrika66,3

他们使用贝叶斯定理重写了每个条件,以给定的协变量模式作为案例或控制为两个因素的可能性。一个代表普通逻辑回归(以协变量模式为条件的案例或控制的概率),另一个代表协变量模式的边际概率。他们表明,最大化总体可能性受到抽样方案固定的作为案例或控件的边际概率的约束,其优势比估计与最大化没有约束的第一个因子的可能性相同(即,进行普通的逻辑回归) 。

β0β^0π

β^0=β^0-日志1个-ππñ1个ñ0

ñ0ñ1个

当然,尽管丢掉了数据,但是麻烦的是收集了尽管是最不有用的部分,但却降低了估算的准确性。对计算资源的限制是我这样做的唯一好的理由,但是我之所以提及它,是因为有人似乎认为“平衡的数据集”由于其他我无法确定的其他原因而很重要。


感谢您的详细回答。是的,我这样做的原因是运行完整模型(不进行下采样)在计算上令人望而却步。
Zach 2013年

尊敬的@Scortchi,感谢您的解释,但是在我要使用逻辑回归的情况下,无论计算资源如何,平衡数据集似乎都是必需的。我尝试使用“ Firth偏向减少的惩罚似然Logit”,但没有任何结果。如此看来,下采样对我来说是唯一的选择,对吗?
Shahin

@Shahin好吧,(1)为什么对最大似然的逻辑回归拟合不满意?&(2)使用Firth方法究竟出了什么问题?
Scortchi-恢复莫妮卡

@Scortchi,问题在于该模型在检测success实例方面非常糟糕。换句话说,TPR非常低。通过更改阈值,TPR会增加,但精度非常差,这意味着标记为正的实例中有70%以上确实是负值。我读到,在极少数情况下,逻辑回归效果不佳,这是Firth方法发挥作用的地方,或者至少是它可以扮演的角色之一。但是Firth方法的结果恰好与通常的logit非常相似。我以为做Firth可能不对,但似乎一切都很好
Shahin

3
@Shahin:您似乎在树错树上:下采样不会改善模型的辨别力。偏差校正或正则化可能会(在新数据上-您是否正在测试集上评估其性能?),但更复杂的规范可能会有所帮助,或者仅仅是您需要更多信息量丰富的预测变量即可。您可能应该问一个新问题,提供数据的详细信息,主题上下文,模型,诊断和目标。
Scortchi-恢复莫妮卡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.