Wie werden die Standardfehler für die angepassten Werte aus einer logistischen Regression berechnet?

29

Wie werden Standardfehler berechnet, wenn Sie einen angepassten Wert aus einem logistischen Regressionsmodell vorhersagen? Ich meine für die angepassten Werte , nicht für die Koeffizienten (die Fishers Informationsmatrix beinhaltet).

Ich habe nur herausgefunden, wie ich die Zahlen erhalten kann R(z. B. hier in r-help oder hier in Stack Overflow), aber ich kann die Formel nicht finden.

pred <- predict(y.glm, newdata= something, se.fit=TRUE)

Wenn Sie eine Online-Quelle (vorzugsweise auf einer Website der Universität) bereitstellen könnten, wäre das fantastisch.

user2457873
quelle

Antworten:

35

Die Vorhersage ist nur eine lineare Kombination der geschätzten Koeffizienten. Die Koeffizienten sind asymptotisch normal, so dass eine lineare Kombination dieser Koeffizienten auch asymptotisch normal ist. Wenn wir also die Kovarianzmatrix für die Parameterschätzungen erhalten können, können wir den Standardfehler für eine lineare Kombination dieser Schätzungen leicht erhalten. Wenn ich die Kovarianzmatrix als und die Koeffizienten für meine Linearkombination in einen Vektor als C schreibe, ist der Standardfehler nur ΣCCΣC

# Making fake data and fitting the model and getting a prediction
set.seed(500)
dat <- data.frame(x = runif(20), y = rbinom(20, 1, .5))
o <- glm(y ~ x, data = dat)
pred <- predict(o, newdata = data.frame(x=1.5), se.fit = TRUE)

# To obtain a prediction for x=1.5 I'm really
# asking for yhat = b0 + 1.5*b1 so my
# C = c(1, 1.5)
# and vcov applied to the glm object gives me
# the covariance matrix for the estimates
C <- c(1, 1.5)
std.er <- sqrt(t(C) %*% vcov(o) %*% C)

> pred$se.fit
[1] 0.4246289
> std.er
          [,1]
[1,] 0.4246289

Wir sehen, dass die 'von Hand'-Methode, die ich zeige, den gleichen Standardfehler liefert, wie er über gemeldet wurde predict

Dason
quelle
2
Ich habe eine verwandte Frage. Wenn wir einen Wert und ein Konfidenzintervall für eine lineare Regression (nicht logistisch) vorhersagen, beziehen wir die Fehlervarianz / den Standardfehler ein. Bei der logistischen Regression ist dies nicht der Fall. Kommt dieser Unterschied von der Tatsache, dass die beobachteten Werte der logistischen Regression entweder 0 oder 1 sind und es keinen Sinn macht, die Fehlervarianz abzuschätzen? Ich habe das Gefühl, wir sollten zumindest etwas tun, aber mir fehlt möglicherweise etwas.
user2457873
3
Alte Frage, aber dieser Thread hat mir gerade geholfen, also geht es weiter: Das Logit beobachtet 0 oder 1, aber es sagt eine Wahrscheinlichkeit voraus. Wenn Sie einen Standardfehler eines angepassten Werts erhalten, liegt dieser auf der Skala des linearen Prädiktors. Sie erhalten ein Konfidenzintervall für die Wahrscheinlichkeit durch Sprechen von logit (fit +/- 1,96 * se.fit)
generic_user
Beachten Sie jedoch, dass hierbei die asymptotische Norm verwendet wird, die für das logistische Modell ziemlich schlecht sein kann (durchsuchen Sie diese Site nach dem Phänomen Hauss-Donner). Für die Koeffizienten kann dies beispielsweise durch Likelihood-Profiling behoben werden (wird von der Confint-Funktion in MASS verwendet).
Dies
2
Dies ist falsch für das, wonach das OP gefragt hat. Das von Ihnen angepasste GLM verwendet die Identity Link-Funktion, nicht die Logit Link-Funktion. Sie sollten o <- glm(y ~ x, data = dat, family = binomial)stattdessen fit haben . Könnten Sie bitte überarbeiten? Ihre Erklärung dient zur Schätzung der log-odds SE (unter Verwendung der type = "link"Option), nicht jedoch der SE, wenn predictdie type = "response"Option verwendet wird.
Zhe Zhang