邏輯回歸中的截距是否捕獲了未觀察到的影響?
從理論上講,邏輯回歸模型中的截距項是否捕獲了所有未觀察到的影響?
換句話說,在具有完美擬合(即包括所有相關變量)的邏輯回歸模型中,截距項應該為零,對嗎?
從理論上講,邏輯回歸模型中的截距項是否捕獲了所有未觀察到的影響?
這是一個有趣的問題,我可以通過一些簡單的實驗看到,人們可能會認為是這種情況。事實上,在我第一次嘗試設置它時,我實際上創建了一個演示,它只會在我錯誤指定模型時錯誤地估計截距——否則,所有係數估計都很好!
在 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 次都是“成功”,而其他所有結果都是失敗(也許您正在為賭場)。如果我們假設骰子是公平的,那麼您將估計係數為某個非零值,純粹是因為您的數據中不利的結果多於有利的結果。
重要的是要了解您在帖子中提出了兩個不同的問題。第一個詢問截距是否捕獲了未建模的影響(它沒有!當模型指定錯誤時所有係數估計都是錯誤的!)第二個問題詢問截距是否應該為零 - 答案也是否定的,因為截距項由“成功”與“失敗”的比率固定。