如果我有一个非常罕见的阳性类别的数据集,并且对阴性类别进行了下采样,然后执行逻辑回归,是否需要调整回归系数以反映我改变了阳性类别的患病率这一事实?
例如,假设我有一个包含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:根据下采样模型(
—
朱巴卜2015年
mod2
),Pr(>|z|)
for A
几乎为1。我们不能拒绝系数A
为0的原假设,因此我们失去了用于的协变量mod1
。这不是实质性的区别吗?
@Zhubarb:如我所述,您可能会引入分离,从而使Wald标准误差估计完全不可靠。
—
Scortchi-恢复莫妮卡
另请参见Scott 2006
—
StasK 2015年