Logistic

邏輯回歸中的截距是否捕獲了未觀察到的影響?

  • October 29, 2015

從理論上講,邏輯回歸模型中的截距項是否捕獲了所有未觀察到的影響?

換句話說,在具有完美擬合(即包括所有相關變量)的邏輯回歸模型中,截距項應該為零,對嗎?

從理論上講,邏輯回歸模型中的截距項是否捕獲了所有未觀察到的影響?

這是一個有趣的問題,我可以通過一些簡單的實驗看到,人們可能會認為是這種情況。事實上,在我第一次嘗試設置它時,我實際上創建了一個演示,它只會在我錯誤指定模型時錯誤地估計截距——否則,所有係數估計都很好!

在 OLS 回歸中,誤差項是我們希望所有我們沒有考慮到的影響的地方……但是如果有我們沒有考慮到的影響(即,模型指定錯誤)那麼他們就會傾向於關注模型的其他特徵,尤其是在變量之間存在混淆關係的情況下。所有其他傳統回歸方法也是如此——如果模型指定錯誤,則係數估計值不可信(但也許預測會有所幫助,或者模型有其他有用的目的)。

例如,這是一個二項式模型,其中只有兩個特徵,並且它們之間存在一些依賴關係。我已經操縱它,使得係數應該是但是如果我們省略從模型估計來看,我們所有的係數都被錯誤地估計了——而且非常嚴重!

set.seed(13)
N <- 100

inv_logit <- function(x){
   ifelse(x< -20, -20, x)
   out <- 1/(1+exp(-x))
   return(out)
}

x0 <- rep(1, N)
x1 <- rnorm(N)
x2 <- rnorm(N, mean=10+3*x1-0.5*x1^2)
zTransform <- cbind(x0, x1, x2)%*%c(-10,-5,1)
summary(zTransform)

yObs <- rbinom(N, size=1, prob=inv_logit(zTransform))

badModel <- glm(yObs~x1, family=binomial(link="logit"))
summary(badModel)

Coefficients:
           Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -0.1404     0.2327  -0.604    0.546    
x1           -1.3417     0.3041  -4.412 1.02e-05 ***

但是如果我們正確地指定模型,我們會得到我們的係數,但會有一些估計誤差。

goodModel <- glm(yObs~x1+x2, family=binomial(link="logit"))
summary(goodModel)

Coefficients:
           Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -9.9512     2.9331  -3.393 0.000692 ***
x1           -4.8657     1.1918  -4.083 4.45e-05 ***
x2            0.9970     0.2948   3.382 0.000720 ***

換句話說,在具有完美擬合(即包括所有相關變量)的邏輯回歸模型中,截距項應該為零,對嗎?

為什麼會這樣?假設您正在執行邏輯回歸併且您沒有協變量——例如,您的實驗是擲骰子,每 6 次都是“成功”,而其他所有結果都是失敗(也許您正在為賭場)。如果我們假設骰子是公平的,那麼您將估計係數為某個非零值,純粹是因為您的數據中不利的結果多於有利的結果。

重要的是要了解您在帖子中提出了兩個不同的問題。第一個詢問截距是否捕獲了未建模的影響(它沒有!當模型指定錯誤時所有係數估計都是錯誤的!)第二個問題詢問截距是否應該為零 - 答案也是否定的,因為截距項由“成功”與“失敗”的比率固定。

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

comments powered by Disqus