具有大量預測變量的邏輯回歸性能
我試圖了解邏輯回歸在高維問題中的行為(即,當您將邏輯回歸擬合到具有大量預測變量的數據時)。
每次我用大量預測變量擬合邏輯回歸時,我都會在 R 中收到以下警告:
Warning message: glm.fit: fitted probabilities numerically 0 or 1 occurred
我在某處讀到這被稱為 Hauck-Donner 現象,這是因為擬合概率太接近 0/1。
但是,我的假設是,隨著您增加預測變量的數量,您的擬合概率的方差必須在邏輯回歸中增加。這是因為您的對數賠率估計本質上是隨機變量的總和,並且 100 個類似分佈的隨機變量的總和將(可能)具有比 10 個 rvs 的總和更大的方差。因此,當您將邏輯回歸應用於非常高維的問題時,您的擬合概率將更接近 0/1(因為更高的方差),因此您的係數估計必須因為這個問題而有偏差(不正確)?這個假設正確嗎?
我使用以下代碼創建了一個模擬來嘗試回答這個問題:
genLogit <- function(n,dimens){ dimens <- floor(dimens/2)*2 #make sure dimens is even xdata <- cbind(replicate(dimens/2,runif(n)),replicate(dimens/2,runif(n,-1,0))) ydata <- apply(xdata,1,sum) prob <- exp(ydata)/(1+exp(ydata)) runis <- runif(length(prob)) ydata <- ifelse(runis<prob,1,0) model <- glm(ydata~.,data = data.frame(cbind(ydata,xdata)),family = binomial(link = return(summary(model)) }
代碼所做的基本上是從以下模擬邏輯回歸:
在哪裡和. 您可以改變模型中預測變量的數量以及生成的數據點的數量。然後該函數將對模擬數據進行邏輯回歸擬合,您可以檢查係數、殘差、擬合等。
我知道我所有的預測變量都具有相同的方差(在處理真實數據時不一定正確),但是這種模擬仍然足以證明我的假設嗎?
我認為我們應該向MASS的第 198 頁的 Venables 和 Ripley 說:
在一種相當普遍的情況下,收斂問題和 Hauck-Donner 現像都可能發生。這是當擬合概率非常接近零或一時。考慮一個包含數千個病例和大約 50 個二進制解釋變量的醫學診斷問題(這可能是由於編碼較少的分類因素而產生的);這些指標之一很少是真的,但總是表明疾病存在。那麼具有該指標的案例的擬合概率應該是1,這只能通過取. 結果
glm
將是警告和大約 +/- 10 的估計係數。除了潛在的數值困難之外,沒有將概率數值估計為 0 或 1 的正式問題。然而,-test,基於二次近似,用於檢驗假設可能成為似然比檢驗的一個很差的近似值,並且-test 可能看起來微不足道,但實際上該假設肯定是錯誤的。據我了解,這就是警告的內容。
對於許多預測器,可能很容易發生像 Venables 和 Ripley 所描述的情況。一個預測器大多不提供信息,但在某些情況下,它是一個案例的強預測器。