Jika saya memiliki dataset dengan kelas positif yang sangat langka, dan saya mengambil sampel kelas negatif, kemudian melakukan regresi logistik, apakah saya perlu menyesuaikan koefisien regresi untuk mencerminkan fakta bahwa saya mengubah prevalensi kelas positif?
Sebagai contoh, katakanlah saya memiliki dataset dengan 4 variabel: Y, A, B dan C. Y, A, dan B adalah biner, C kontinu. Untuk 11.100 pengamatan Y = 0, dan untuk 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)
Saya cocok dengan regresi logistik untuk memprediksi Y, mengingat A, B dan C.
dat1 <- data.frame(Y, A, B, C)
mod1 <- glm(Y~., dat1, family=binomial)
Namun, untuk menghemat waktu saya bisa menghapus 10.200 pengamatan non-Y, memberikan 900 Y = 0, dan 900 Y = 1:
require('caret')
dat2 <- downSample(data.frame(A, B, C), factor(Y), list=FALSE)
mod2 <- glm(Class~., dat2, family=binomial)
Koefisien regresi dari 2 model terlihat sangat mirip:
> 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
Yang membuat saya percaya bahwa down-sampling tidak mempengaruhi koefisien. Namun, ini adalah contoh tunggal, buat-buat, dan saya lebih suka tahu pasti.
mod2
), Pr(>|z|)
untuk A
hampir 1. Kami tidak dapat menolak hipotesis nol bahwa koefisiennya A
adalah 0 sehingga kami telah kehilangan kovariat yang digunakan dalam mod1
. Bukankah ini perbedaan yang substansial?