Erfasst der Intercept-Term in einem logistischen Regressionsmodell theoretisch alle nicht beobachteten Effekte?
Dies ist eine interessante Frage, und ich kann sehen, wie man bei einigen einfachen Experimenten denken könnte, dass dies der Fall ist. Tatsächlich habe ich bei meinem ersten Versuch, dies einzurichten, eine Demonstration erstellt, die den Achsenabschnitt nur dann falsch einschätzt, wenn ich das Modell falsch angegeben habe - ansonsten waren alle Koeffizientenschätzungen in Ordnung!
In einer OLS - Regression, ist der Fehlerterm , wo wir würden gerne für alle Effekte , die wir nicht zu gehen , haben einen Anteil ... aber wenn es Effekte , die wir nicht berücksichtigt haben (dh das Modell ist falsch angegeben) dann neigen sie dazu, ihre Köpfe in anderen Merkmalen des Modells zu erheben, insbesondere wenn es verwirrende Beziehungen zwischen Variablen gibt. Dies gilt auch für alle anderen herkömmlichen Regressionsmethoden. Wenn das Modell falsch angegeben ist, sind die Koeffizientenschätzungen nicht vertrauenswürdig (aber möglicherweise sind die Vorhersagen hilfreich oder das Modell dient einem anderen nützlichen Zweck).
Hier ist zum Beispiel ein Binomialmodell, bei dem es nur zwei Merkmale gibt und eine gewisse Abhängigkeit zwischen ihnen. Ich habe es so manipuliert, dass die Koeffizienten sein solltenβ0= 10 , β1= - 5 , β2= 5.x2
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 ***
Wenn wir das Modell jedoch korrekt spezifizieren, erhalten wir unsere Koeffizienten zurück, jedoch mit einem Schätzfehler.
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 ***
Mit anderen Worten, in einem logistischen Regressionsmodell mit perfekter Anpassung (dh alle relevanten Variablen sind enthalten) sollte der Intercept-Term Null sein, oder?
Warum sollte das so sein? Angenommen, Sie führen eine logistische Regression durch und haben keine Kovariaten. Beispielsweise würfelt Ihr Experiment und jede 6 ist ein "Erfolg", und jedes andere Ergebnis ist ein Fehlschlag (vielleicht führen Sie eine Qualitätssicherung für eine durch Kasino). Wenn wir davon ausgehen, dass die Würfel fair sind, würden Sie den Koeffizienten auf einen Wert ungleich Null schätzen, nur weil Ihre Daten ungünstigere Ergebnisse als günstige Ergebnisse enthalten.
Es ist wichtig zu verstehen, dass Sie in Ihrem Beitrag zwei verschiedene Fragen gestellt haben. Die erste Frage fragt, ob der Achsenabschnitt nicht modellierte Effekte erfasst (nicht! Alle Koeffizientenschätzungen sind falsch, wenn das Modell falsch angegeben ist!). Die zweite Frage fragt, ob der Achsenabschnitt Null sein soll - und die Antwort lautet ebenfalls Nein. weil der Intercept-Term durch das Verhältnis von "Erfolgen" zu "Misserfolgen" festgelegt ist.