Прогноз - это просто линейная комбинация оценочных коэффициентов. Коэффициенты асимптотически нормальны, поэтому линейная комбинация этих коэффициентов также будет асимптотически нормальной. Таким образом, если мы можем получить ковариационную матрицу для оценок параметров, мы можем легко получить стандартную ошибку для линейной комбинации этих оценок. Если я обозначу ковариационную матрицу как и запишу коэффициенты для моей линейной комбинации в векторе как C, то стандартная ошибка просто равна √ΣСC′Σ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
Мы видим, что метод «от руки», который я показываю, дает ту же стандартную ошибку, о которой сообщается через predict