Ist es möglich, den robusten vcov, der von vcovHC (aus dem Sandwich-Paket) erhalten wird, nach dem Einbau eines Modells zu verwenden?vcovHC und Konfidenzintervall
Antwort
Nein, Sie können die Funktion confint nicht direkt mit dem robusten vcov verwenden. Aber es ist ziemlich einfach, das per Hand zu machen.
x <- sin(1:100)
y <- 1 + x + rnorm(100)
## model fit and HC3 covariance
fm <- lm(y ~ x)
Cov <- vcovHC(fm)
tt <-qt(c(0.025,0.975),summary(fm)$df[2])
se <- sqrt(diag(Cov))
ci <-coef(fm) + se %o% tt
Andernfalls können Ihre die confint.default()
Funktion an die eigenen Bedürfnisse anpassen:
confint.robust <- function (object, parm, level = 0.95, ...)
{
cf <- coef(object)
pnames <- names(cf)
if (missing(parm))
parm <- pnames
else if (is.numeric(parm))
parm <- pnames[parm]
a <- (1 - level)/2
a <- c(a, 1 - a)
pct <- stats:::format.perc(a, 3)
fac <- qnorm(a)
ci <- array(NA, dim = c(length(parm), 2L), dimnames = list(parm,
pct))
ses <- sqrt(diag(sandwich::vcovHC(object)))[parm]
ci[] <- cf[parm] + ses %o% fac
ci
}
Wie Brandon bereits vorgeschlagen, würden Sie mehr Chancen auf eine schnelle Antwort, wenn man diese Dinge auf Statistiken fragen. staplexchange.com
Wie immer-- Funktioniert perfekt. Thx @Joris. Misha – Misha
Außergewöhnliche Antwort –
Schöne Antwort, warum hast du qnorm anstelle von qt gewählt? Das Objekt $ df.residual hat den benötigten df-Parameter. –
Versuchen Sie, dieses auf stats.stackexchange.com zu fragen –