¿Cómo se calculan los errores estándar para los valores ajustados de una regresión logística?

29

Cuando predice un valor ajustado de un modelo de regresión logística, ¿cómo se calculan los errores estándar? Me refiero a los valores ajustados , no a los coeficientes (que implica la matriz de información de Fishers).

Solo descubrí cómo obtener los números con R(por ejemplo, aquí en r-help o aquí en Stack Overflow), pero no puedo encontrar la fórmula.

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

Si pudiera proporcionar una fuente en línea (preferiblemente en el sitio web de una universidad), sería fantástico.

usuario2457873
fuente

Respuestas:

35

La predicción es solo una combinación lineal de los coeficientes estimados. Los coeficientes son asintóticamente normales, por lo que una combinación lineal de esos coeficientes también será asintóticamente normal. Entonces, si podemos obtener la matriz de covarianza para las estimaciones de parámetros, podemos obtener fácilmente el error estándar para una combinación lineal de esas estimaciones. Si denoto la matriz de covarianza como y escribo los coeficientes para mi combinación lineal en un vector como entonces el error estándar es simplemente \ sqrt {C '\ Sigma C}Σ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

Vemos que el método 'a mano' que muestro muestra el mismo error estándar que el informado a través de predict

Razón
fuente
2
Tengo una pregunta relacionada. Cuando predecimos un valor y un intervalo de confianza en una regresión lineal (no logística), incorporamos la varianza de error / error estándar. Pero la regresión logística no lo hace. ¿Esta diferencia proviene del hecho de que los valores observados de la regresión logística son 0 o 1 y que no tiene sentido estimar la varianza del error? Siento que al menos deberíamos hacer algo, pero es posible que me falte algo.
user2457873
3
Antigua pregunta, pero este hilo me ayudó justo ahora, así que aquí va: el logit observa 0 o 1, pero predice una probabilidad. Cuando obtiene un error estándar de un valor ajustado, está en la escala del predictor lineal. Obtiene un intervalo de confianza en la probabilidad al hablar logit (fit +/- 1.96 * se.fit)
generic_user
Solo tenga en cuenta que esto utiliza el aprox. Normal asintótico, que puede ser bastante malo para el modelo logístico (busque en este sitio el fenómeno Hauss-Donner). Para los coeficientes, eso puede remediarse mediante, por ejemplo, el perfil de probabilidad (utilizado por la función confint en MASS). Eso no es posible para los predictores lineales ...
kjetil b halvorsen
2
Esto es incorrecto para lo que solicitó el OP; el GLM que usted usa usa la función de enlace de identidad, no la función de enlace logit. Deberías haber encajado en su o <- glm(y ~ x, data = dat, family = binomial)lugar. ¿Podría por favor revisar? Su explicación funciona para estimar el log-odds SE (usando la type = "link"opción), pero no el SE cuando predictusa la type = "response"opción.
Zhe Zhang