Théoriquement, le terme d'interception dans un modèle de régression logistique capture-t-il tous les effets non observés?
C'est une question intéressante, et je peux voir comment avec quelques expériences simples, on pourrait penser que c'est le cas. En fait, lors de ma première tentative de configuration, j'ai créé une démonstration qui ne permettait d'estimer l'ordonnée à l'origine que lorsque j'avais mal spécifié le modèle - sinon, toutes les estimations de coefficient étaient correctes!
Dans une régression OLS, le terme d'erreur est l'endroit où nous aimerions que tous les effets pour lesquels nous n'avons pas pris en compte ... mais s'il y a des effets pour lesquels nous n'avons pas pris en compte (c'est-à-dire que le modèle est mal spécifié) ils auront alors tendance à élever la tête dans d'autres caractéristiques du modèle, en particulier s'il existe des relations de confusion entre les variables. Cela est également vrai pour toutes les autres méthodes de régression conventionnelles - si le modèle est mal spécifié, les estimations de coefficient ne sont pas fiables (mais peut-être que les prédictions seront utiles ou que le modèle servira à d'autres fins utiles).
Par exemple, voici un modèle binomial où il n'y a que deux fonctionnalités et une certaine dépendance entre elles. Je l'ai truqué de telle sorte que les coefficients soientβ0= 10 ,β1= - 5 ,β2= 5. Mais si nous omettons X2 à partir de l'estimation du modèle, tous nos coefficients sont estimés de manière incorrecte - et sauvagement!
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 ***
Mais si nous spécifions correctement le modèle, nous récupérons nos coefficients, mais avec une erreur d'estimation.
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 d'autres termes, dans un modèle de régression logistique avec un ajustement parfait (c'est-à-dire que toutes les variables pertinentes sont incluses), le terme d'interception devrait être nul, non?
Pourquoi en serait-il ainsi? Supposons que vous effectuez une régression logistique et que vous n'avez pas de covariables - par exemple, votre expérience lance un dé et chaque 6 est un "succès", et chaque autre résultat est un échec (peut-être que vous faites de l'assurance qualité pour un casino). Si nous supposons que les dés sont justes, vous estimeriez le coefficient à une valeur non nulle uniquement parce qu'il y a des résultats plus défavorables que des résultats favorables dans vos données.
Il est important de comprendre que vous avez posé deux questions différentes dans votre message. La première demande si l'ordonnée à l'origine capture des effets non modélisés (ce n'est pas le cas! Toutes les estimations de coefficient sont erronées lorsque le modèle est mal spécifié!) La deuxième question demande si l'ordonnée à l'origine doit être nulle - et la réponse est également non, parce que le terme d'interception est fixé par le rapport des "succès" aux "échecs".