Wenn ich über einen Datensatz mit einer sehr seltenen positiven Klasse verfüge und die negative Klasse heruntersuche, muss ich dann eine logistische Regression durchführen, um die Regressionskoeffizienten anzupassen, um die Tatsache widerzuspiegeln, dass ich die Prävalenz der positiven Klasse geändert habe?
Angenommen, ich habe einen Datensatz mit 4 Variablen: Y, A, B und C. Y, A und B sind binär, C ist stetig. Für 11.100 Beobachtungen ist Y = 0 und für 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)
Ich passe eine logistische Regression an, um Y vorauszusagen, wenn A, B und C gegeben sind.
dat1 <- data.frame(Y, A, B, C)
mod1 <- glm(Y~., dat1, family=binomial)
Um Zeit zu sparen, konnte ich jedoch 10.200 Nicht-Y-Beobachtungen entfernen, was 900 Y = 0 und 900 Y = 1 ergab:
require('caret')
dat2 <- downSample(data.frame(A, B, C), factor(Y), list=FALSE)
mod2 <- glm(Class~., dat2, family=binomial)
Die Regressionskoeffizienten der beiden Modelle sehen sehr ähnlich aus:
> 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
Was mich zu der Annahme veranlasst, dass das Downsampling die Koeffizienten nicht beeinflusst hat. Dies ist jedoch ein einziges Beispiel, und ich möchte es lieber mit Sicherheit wissen.
mod2
) ist Pr(>|z|)
for A
fast 1. Wir können die Nullhypothese, dass der Koeffizient A
0 ist, nicht zurückweisen, also haben wir eine Kovariate verloren, die in verwendet wird mod1
. Ist das nicht ein wesentlicher Unterschied?