2010-09-28 13 views
11

¿Es posible utilizar confintivamente la vcov robusta obtenida por vcovHC (del paquete sándwich) después de instalar un modelo?vcovHC e intervalo de confianza

+2

Trate de preguntar esto en stats.stackexchange.com –

Respuesta

13

No, no se puede usar la función confint directamente con el robusto vcov. Pero es bastante sencillo hacerlo a mano.

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 

De lo contrario, su puede adaptar la función confint.default() a sus propias necesidades:

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 
} 

Como ya se ha sugerido Brandon, se obtendría más posibilidades de una respuesta rápida si usted pide estas cosas en las estadísticas. stackexchange.com

+0

Como siempre-- Funciona a la perfección. Thx @Joris. Misha – Misha

+0

Respuesta excepcional –

+0

Una respuesta agradable, ¿por qué eligió qnorm en lugar de qt? El objeto $ df.residual tiene el parámetro df necesario. –

Cuestiones relacionadas