Como posso escalar a matriz de informações do fisher para obter os mesmos erros padrão da função GLM?
Cronometre sua matriz de co-variância não dimensionada no parâmetro de dispersão, conforme feito em summary.glm
. O código relevante de 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 ...]
Os chol2inv(Qr$qr[p1, p1, drop = FALSE])
cálculos quais você faz um comentário. Aqui, é a matriz triangular superior do Code decomposição .(R⊤R)−1=(X⊤WX)−1RQR=W−−√X
as respostas do atiretoo só são válidas quando o parâmetro de dispersão é um, como ocorre com a distribuição de Poisson e Binomial.