GLM標準エラー


7

GLMモデルの係数の標準誤差を取得する方法について質問があります。手作業で計算したフィッシャー情報マトリックスを持っていますが、スケーリングされていません。GLM関数から同じ標準エラーを取得できるように、フィッシャー情報マトリックスをどのようにスケーリングできますか?


再現可能な例を提供できますか?モデルをglm()で近似し、FI行列を取得する方法を示しますか?
atiretoo-モニカを

私は使用フィッシャー情報行列計算、重み行列です。結果を見ると、「summary(m1)を見るときに得られる結果と正確に一致しています。ただし、これでは各係数の標準誤差はわかりません。スケールパラメータを計算する必要がありますか?私のモデルの分散パラメータは1です(XTWX)1Wcov.unscaledϕ
T.ネストル

回答:


6

あなたはとても近いです!係数の標準誤差は、マトリックスの対角線の平方根であり、フィッシャー情報マトリックスの逆です。ここに例があります。


data <- caret::twoClassSim()
model <- glm(Class~TwoFactor1*TwoFactor2, data = data, family="binomial")
# here are the standard errors we want
SE <- broom::tidy(model)$std.error

X <- model.matrix(model)
p <- fitted(model)
W <- diag(p*(1-p))
# this is the covariance matrix (inverse of Fisher information)
V <- solve(t(X)%*%W%*%X)
all.equal(vcov(model), V)
#> [1] "Mean relative difference: 1.066523e-05"
# close enough

# these are the standard errors: take square root of diagonal 
all.equal(SE, sqrt(diag(V)))
#> [1] "names for current but not for target"  
#> [2] "Mean relative difference: 4.359204e-06"

5

GLM関数から同じ標準エラーを取得できるように、フィッシャー情報マトリックスをどのようにスケーリングできますか?

で行われるように、スケーリングされていない共分散行列と分散パラメーターの時間を計測しsummary.glmます。からの関連コードsummary.glm

if (is.null(dispersion)) 
    dispersion <- if (object$family$family %in% c("poisson", 
        "binomial")) 
        1
    else if (df.r > 0) {
        est.disp <- TRUE
        if (any(object$weights == 0)) 
            warning("observations with zero weight not used for calculating dispersion")
        sum((object$weights * object$residuals^2)[object$weights > 
            0])/df.r
    }
    else {
        est.disp <- TRUE
        NaN
    }
# [other code...]
if (p > 0) {
    p1 <- 1L:p
    Qr <- qr.lm(object)
    coef.p <- object$coefficients[Qr$pivot[p1]]
    covmat.unscaled <- chol2inv(Qr$qr[p1, p1, drop = FALSE])
    dimnames(covmat.unscaled) <- list(names(coef.p), names(coef.p))
    covmat <- dispersion * covmat.unscaled
    # [more code ...]

chol2inv(Qr$qr[p1, p1, drop = FALSE])計算あなたはについてのコメントを作ります。ここで、はQR分解の上三角行列です。(RR)1=(XWX)1RQR=WX


atiretooの回答は、ポアソン分布と二項分布のように分散パラメーターが1の場合にのみ有効です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.