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