Pregunta

Me gustaría encontrar la aplicación R que más se parece salida de Stata para el ajuste de una función de regresión de mínimos cuadrados con Heterocedástico Corregido errores estándar. En concreto me gustaría que los errores estándar corregidos para estar en el "Resumen" y no tener que hacer cálculos adicionales para mi ronda inicial de la prueba de hipótesis. Busco a una solución que es tan "limpia" como lo Eviews y Stata proporcionan.

Hasta ahora, el uso de la "lmtest" paquete lo mejor que puedo llegar a es:

model <- lm(...)
coeftest(model, vcov = hccm) 

Esto me da la salida que quiero, pero no parece ser el uso de "coeftest" para el fin indicado. También me gustaría tener que utilizar el resumen con los errores estándar incorrectas a leer el R ^ 2 y F de estadísticas, etc. Siento que debería existir una solución "una línea" a este problema dado lo dinámico R es.

Gracias

¿Fue útil?

Solución

creo que usted está en el camino correcto con coeftest en lmtest paquete. Echar un vistazo a la sándwich paquete que incluye esta funcionalidad y es diseñado para trabajar de la mano con el paquete lmtest ya se ha encontrado.

> # generate linear regression relationship
> # with Homoskedastic variances
> x <- sin(1:100)
> y <- 1 + x + rnorm(100)
> ## model fit and HC3 covariance
> fm <- lm(y ~ x)
> vcovHC(fm)
            (Intercept)           x
(Intercept) 0.010809366 0.001209603
x           0.001209603 0.018353076
> coeftest(fm, vcov. = vcovHC)

t test of coefficients:

            Estimate Std. Error t value  Pr(>|t|)    
(Intercept)  1.01973    0.10397  9.8081 3.159e-16 ***
x            0.93992    0.13547  6.9381 4.313e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Para obtener la prueba F, vistazo a waldtest() función:

> waldtest(fm, vcov = vcovHC)
Wald test

Model 1: y ~ x
Model 2: y ~ 1
  Res.Df Df      F    Pr(>F)    
1     98                        
2     99 -1 48.137 4.313e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Siempre se puede cocinar una función simple de combinar estos dos para que si quería la de una sola línea ...

Hay un montón de ejemplos en la Econometric Computing con HC y HAC matriz de covarianza estimadores viñeta que viene con el paquete sándwich de vincular lmtest y sándwich para hacer lo que quiera.

Editar: A de una sola línea podría ser tan simple como:

mySummary <- function(model, VCOV) {
    print(coeftest(model, vcov. = VCOV))
    print(waldtest(model, vcov = VCOV))
}

¿Qué podemos usar como esto (en los ejemplos de arriba):

> mySummary(fm, vcovHC)

t test of coefficients:

            Estimate Std. Error t value  Pr(>|t|)    
(Intercept)  1.01973    0.10397  9.8081 3.159e-16 ***
x            0.93992    0.13547  6.9381 4.313e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Wald test

Model 1: y ~ x
Model 2: y ~ 1
  Res.Df Df      F    Pr(>F)    
1     98                        
2     99 -1 48.137 4.313e-10 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Otros consejos

He encontrado una función de R que hace exactamente lo que busca. Se le da errores estándar robustos sin tener que hacer cálculos adicionales. Ejecutar summary() en una lm.object y si se establece el parámetro robust=T que le da una copia de Stata como heterocedasticidad errores estándar consistentes.

summary(lm.object, robust=T)

Se puede encontrar la función de https: // economictheoryblog .com / 2016/08/08 / robustos-sTANDARD-errores-in-r /

En la actualidad existe una solución de una línea usando lm_robust del href="http://estimatr.declaredesign.org/" rel="nofollow noreferrer"> estimatr paquete install.packages(estimatr) CRAN.

> library(estimatr)
> lmro <- lm_robust(mpg ~ hp, data = mtcars, se_type = "stata")
> summary(lmro)

Call:
lm_robust(formula = mpg ~ hp, data = mtcars, se_type = "stata")

Standard error type:  HC1 

Coefficients:
            Estimate Std. Error  Pr(>|t|) CI Lower CI Upper DF
(Intercept) 30.09886    2.07661 4.348e-15 25.85785 34.33987 30
hp          -0.06823    0.01356 2.132e-05 -0.09592 -0.04053 30

Multiple R-squared:  0.6024 ,   Adjusted R-squared:  0.5892 
F-statistic: 45.46 on 1 and 30 DF,  p-value: 1.788e-07

También puede obtener una salida ordenada:

> tidy(lmro)
         term    estimate std.error      p.value    ci.lower
1 (Intercept) 30.09886054 2.0766149 4.347723e-15 25.85784704
2          hp -0.06822828 0.0135604 2.131785e-05 -0.09592231
     ci.upper df outcome
1 34.33987404 30     mpg
2 -0.04053425 30     mpg

Los errores estándar "stata" defecto en "HC1" errores estándar, que son los errores estándar por defecto rob en Stata. También puede obtener "classical", "HC0", "HC1", "HC2", "HC3" y varios errores estándar agrupados también (incluyendo aquellos que coincidan con Stata).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top