Logistic

下採樣會改變邏輯回歸係數嗎?

  • August 20, 2013

如果我有一個包含非常罕見的正類的數據集,並且我對負類進行了下採樣,然後執行邏輯回歸,我是否需要調整回歸係數以反映我改變了正類的普遍性這一事實?

例如,假設我有一個包含 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)

但是,為了節省時間,我可以刪除 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

這使我相信下採樣不會影響係數。然而,這是一個單一的、人為的例子,我寧願知道。

下採樣等效於醫學統計中的病例對照設計——您正在修復響應計數並觀察協變量模式(預測變量)。或許關鍵參考文獻是 Prentice & Pyke (1979),“Logistic 疾病發病模型和病例對照研究”,Biometrika66,3

他們使用貝葉斯定理重寫了給定協變量模式概率的每個項,條件是作為兩個因素的案例或控制;一個代表普通邏輯回歸(作為協變量模式條件下的案例或控制的概率),另一個代表協變量模式的邊際概率。他們表明,最大化總體似然性受限於作為病例或控制的邊際概率由抽樣方案固定的約束,與在沒有約束的情況下最大化第一個因素(即執行普通邏輯回歸)相同的優勢比估計值.

人口的截距可以從病例對照截距估計如果人口流行已知:

在哪裡&分別是抽樣的控制和案例的數量。

當然,通過丟棄數據,您會費力地收集數據,儘管是最沒用的部分,但您正在降低估計的精確度。計算資源的限制是我知道這樣做的唯一充分理由,但我之所以提到它,是因為有些人似乎認為“平衡的數據集”很重要,因為我無法確定其他一些原因。

引用自:https://stats.stackexchange.com/questions/67903

comments powered by Disqus