En teoría, ¿el término de intercepción de un modelo de regresión logística recoge todos los efectos no observados?
Esta es una pregunta interesante, y puedo ver cómo con algunos experimentos simples, uno podría pensar que este es el caso. De hecho, en mi primer intento de configurar esto, realmente creé una demostración que sólo estimaba incorrectamente el intercepto cuando especificaba mal el modelo -- ¡por lo demás, todas las estimaciones de los coeficientes estaban bien!
En una regresión OLS, el término de error es donde como pero si hay efectos que no hemos tenido en cuenta (es decir, el modelo está mal especificado), tenderán a aparecer en otras características del modelo, especialmente si hay relaciones de confusión entre las variables. Lo mismo ocurre con todos los demás métodos de regresión convencionales: si el modelo está mal especificado, las estimaciones de los coeficientes no son fiables (pero quizá las predicciones sean útiles o el modelo sirva para algún otro propósito).
Por ejemplo, aquí hay un modelo binomial en el que sólo hay dos características, y cierta dependencia entre ellas. Lo he manipulado de tal manera que los coeficientes deben ser $\beta_0=10, \beta_1=-5, \beta_2=5.$ Pero si omitimos $x_2$ de la estimación del modelo, todos nuestros coeficientes se estiman de forma incorrecta, ¡y de forma salvaje!
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 ***
Pero si especificamos correctamente el modelo, recuperamos nuestros coeficientes, pero con algún error de estimación.
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 ***
En otras palabras, en un modelo de regresión logística con un ajuste perfecto (es decir, con todas las variables relevantes incluidas), el término de intercepción debería ser cero, ¿no?
¿Por qué? Supongamos que está realizando una regresión logística y no tiene covariables; por ejemplo, su experimento consiste en lanzar un dado y cada 6 es un "éxito", y cualquier otro resultado es un fracaso (tal vez esté realizando un control de calidad para un casino). Si asumimos que los dados son justos, se estimaría el coeficiente en algún valor distinto de cero simplemente porque hay más resultados desfavorables que favorables en sus datos.
Es importante entender que ha pedido dos diferentes preguntas en su puesto. La primera pregunta es si el intercepto capta los efectos no modelados (¡no lo hace! Todas las estimaciones de coeficientes son erróneas cuando el modelo está mal especificado). La segunda pregunta se refiere a si el intercepto debería ser cero, y la respuesta también es no, porque el término del intercepto está fijado por la proporción de "éxitos" y "fracasos".