Answers:
预测只是估计系数的线性组合。这些系数是渐近正态的,因此这些系数的线性组合也将是渐近正态的。因此,如果我们可以获取参数估计的协方差矩阵,则可以轻松获得这些估计的线性组合的标准误差。如果我将协方差矩阵表示为,并将向量中线性组合的系数写为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
o <- glm(y ~ x, data = dat, family = binomial)
。你能修改一下吗?您的解释适用于估计对数SE(使用type = "link"
选项),但不适predict
用于使用type = "response"
选项时的SE 。