अगर मेरे पास एक बहुत ही दुर्लभ सकारात्मक वर्ग के साथ एक डेटासेट है, और मैं नकारात्मक वर्ग का नमूना देता हूं, तो एक लॉजिस्टिक प्रतिगमन करें, क्या मुझे इस तथ्य को प्रतिबिंबित करने के लिए प्रतिगमन गुणांक को समायोजित करने की आवश्यकता है कि मैंने सकारात्मक वर्ग की व्यापकता को बदल दिया है?
उदाहरण के लिए, मान लें कि मेरे पास 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 को Y की भविष्यवाणी करने के लिए एक लॉजिस्टिक रिग्रेशन फिट करता हूं।
dat1 <- data.frame(Y, A, B, C)
mod1 <- glm(Y~., dat1, family=binomial)
हालाँकि, समय बचाने के लिए मैं १०,२०० गैर-वाई अवलोकन निकाल सकता था, जिससे 900 Y = 0, और 900 Y = १ हो सकता है:
require('caret')
dat2 <- downSample(data.frame(A, B, C), factor(Y), list=FALSE)
mod2 <- glm(Class~., dat2, family=binomial)
2 मॉडल के प्रतिगमन गुणांक बहुत समान दिखते हैं:
> 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
जो मुझे विश्वास दिलाता है कि डाउन-सैंपलिंग ने गुणांक को प्रभावित नहीं किया है। हालाँकि, यह एक एकल, आकस्मिक उदाहरण है, और मुझे यकीन है कि पता होगा।
mod2
), Pr(>|z|)
के लिए A
लगभग 1. हम शून्य परिकल्पना कि गुणांक अस्वीकार नहीं कर सकते है A
0 है तो हम एक covariate जिसमें प्रयोग किया जाता है खो दिया है mod1
। क्या यह पर्याप्त अंतर नहीं है?