回答:
予測は、推定係数の単なる線形結合です。係数は漸近的に正常であるため、これらの係数の線形結合も漸近的に正常になります。したがって、パラメータ推定値の共分散行列を取得できれば、それらの推定値の線形結合の標準誤差を簡単に取得できます。共分散行列をとして示し、線形結合の係数をベクトルとして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)
代わりにフィットする必要があります。修正していただけますか?説明は、type = "link"
オプションを使用してlog-odds SEを推定するために機能しますがpredict
、type = "response"
オプションを使用する場合はSEには使用できません。