Como os erros padrão são calculados para os valores ajustados a partir de uma regressão logística?

29

Quando você prevê um valor ajustado a partir de um modelo de regressão logística, como os erros padrão são calculados? Quero dizer para os valores ajustados , não para os coeficientes (que envolvem a matriz de informações de Fishers).

Eu só descobri como obter os números R(por exemplo, aqui no r-help ou aqui no Stack Overflow), mas não consigo encontrar a fórmula.

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

Se você pudesse fornecer fonte on-line (de preferência em um site da universidade), isso seria fantástico.

user2457873
fonte

Respostas:

35

A previsão é apenas uma combinação linear dos coeficientes estimados. Os coeficientes são assintoticamente normais, de modo que uma combinação linear desses coeficientes também será assintoticamente normal. Portanto, se pudermos obter a matriz de covariância para as estimativas de parâmetros, podemos obter facilmente o erro padrão para uma combinação linear dessas estimativas. Se eu denotar a matriz de covariância como e escrever os coeficientes para minha combinação linear em um vetor como C , o erro padrão será apenas Σ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 o método 'manual' que mostro fornece o mesmo erro padrão relatado via predict

Dason
fonte
2
Eu tenho uma pergunta relacionada. Quando prevemos um valor e intervalo de confiança em uma regressão linear (não logística), incorporamos a variação de erro / erro padrão. Mas a regressão logística não. Essa diferença vem do fato de que os valores observados da regressão logística são 0 ou 1 e que não faz sentido estimar a variação do erro? Sinto que deveríamos pelo menos fazer alguma coisa, mas posso estar perdendo alguma coisa.
user2457873
3
Pergunta antiga, mas esse segmento me ajudou agora, então aqui vai: O logit observa 0 ou 1, mas prevê uma probabilidade. Quando você obtém um erro padrão de um valor ajustado, ele está na escala do preditor linear. Você começa um intervalo de confiança na probabilidade falando logit (ajuste +/- 1,96 * se.fit)
generic_user
Esteja ciente de que isso usa o aproximado normal assintótico, o que pode ser bastante ruim para o modelo logístico (procure neste site pelo fenômeno de Hauss-Donner). Para os coeficientes, isso pode ser remediado por, por exemplo, perfil de probabilidade (usado pela função confint no MASS). Isso não é possível para os preditores lineares ...
Kjetil b Halvorsen
2
Isso está incorreto para o que o OP solicitou; o GLM que você ajusta usa a função de link de identidade, não a função de link de logit. Você deveria ter se encaixado o <- glm(y ~ x, data = dat, family = binomial). Você poderia revisar? Sua explicação funciona para estimar o SE de probabilidades de log (usando a type = "link"opção), mas não o SE quando predictusa a type = "response"opção.
Zhe Zhang