Estimacion del modelo
options(scipen = 99999)
library(foreign)
datos_regresion <- read.dta("https://stats.idre.ucla.edu/stat/data/crime.dta")
modelo_estimado<-lm(crime~poverty+single,data=datos_regresion)
print(modelo_estimado)
##
## Call:
## lm(formula = crime ~ poverty + single, data = datos_regresion)
##
## Coefficients:
## (Intercept) poverty single
## -1368.189 6.787 166.373
Estimacion Robusta
options(scipen = 99999)
library(lmtest)
library(sandwich)
#Sin corregir:
coeftest(modelo_estimado)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1368.1887 187.2052 -7.3085 0.00000000247861 ***
## poverty 6.7874 8.9885 0.7551 0.4539
## single 166.3727 19.4229 8.5658 0.00000000003117 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Presentacion usando Stargaze.
library(stargazer)
stargazer(modelo_estimado, type = "html", title = "MODELO CRIME")
MODELO CRIME
|
|
|
|
Dependent variable:
|
|
|
|
|
|
crime
|
|
|
|
poverty
|
6.787
|
|
|
(8.989)
|
|
|
|
|
single
|
166.373***
|
|
|
(19.423)
|
|
|
|
|
Constant
|
-1,368.189***
|
|
|
(187.205)
|
|
|
|
|
|
|
Observations
|
51
|
|
R2
|
0.707
|
|
Adjusted R2
|
0.695
|
|
Residual Std. Error
|
243.610 (df = 48)
|
|
F Statistic
|
57.964*** (df = 2; 48)
|
|
|
|
Note:
|
p<0.1; p<0.05; p<0.01
|
Corregido usando un estimador HAC
options(scipen = 99999)
#Corregido:
#HC0 corrige Heterocedasticidad
#HC1 corrige tambien Autocorrelacion orden 1
estimacion_omega<-vcovHC(modelo_estimado,type = "HC0")
coeftest(modelo_estimado,vcov. = estimacion_omega)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1368.1887 276.4111 -4.9498 0.00000956181 ***
## poverty 6.7874 10.6010 0.6403 0.5251
## single 166.3727 25.4510 6.5370 0.00000003774 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Presentacion con Stargazer
library(stargazer)
#Errores estandat
errores <- sqrt(diag(estimacion_omega))
stargazer(modelo_estimado, modelo_estimado,
se=list(NULL, errores), # Agregando la correción HAC
type = "html",
title = "Comparación de modelos: corrección HAC.")
Comparación de modelos: corrección HAC.
|
|
|
|
Dependent variable:
|
|
|
|
|
|
crime
|
|
|
(1)
|
(2)
|
|
|
|
poverty
|
6.787
|
6.787
|
|
|
(8.989)
|
(10.601)
|
|
|
|
|
|
single
|
166.373***
|
166.373***
|
|
|
(19.423)
|
(25.451)
|
|
|
|
|
|
Constant
|
-1,368.189***
|
-1,368.189***
|
|
|
(187.205)
|
(276.411)
|
|
|
|
|
|
|
|
Observations
|
51
|
51
|
|
R2
|
0.707
|
0.707
|
|
Adjusted R2
|
0.695
|
0.695
|
|
Residual Std. Error (df = 48)
|
243.610
|
243.610
|
|
F Statistic (df = 2; 48)
|
57.964***
|
57.964***
|
|
|
|
Note:
|
p<0.1; p<0.05; p<0.01
|
Estimador HAC de NeweyWest
#si se dectecta correlacion de segundo orden se corrige asi
library(lmtest)
library(sandwich)
estimacion_omega2<- NeweyWest(modelo_estimado, lag = 2)
coeftest(modelo_estimado, vcov. = estimacion_omega2)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1368.1887 303.8466 -4.5029 0.00004279768 ***
## poverty 6.7874 10.5943 0.6407 0.5248
## single 166.3727 25.9154 6.4198 0.00000005708 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#presentado con Stargazer
library(stargazer)
#obtener los errores estándar
errores2 <- sqrt(diag(estimacion_omega2))
# Comparando modelos
stargazer(modelo_estimado, modelo_estimado,
se=list(NULL, errores2), # Agregando la correción HAC
type = "html",
title = "Comparación de modelos: corrección HAC de NeweyWest.")
Comparación de modelos: corrección HAC de NeweyWest.
|
|
|
|
Dependent variable:
|
|
|
|
|
|
crime
|
|
|
(1)
|
(2)
|
|
|
|
poverty
|
6.787
|
6.787
|
|
|
(8.989)
|
(10.594)
|
|
|
|
|
|
single
|
166.373***
|
166.373***
|
|
|
(19.423)
|
(25.915)
|
|
|
|
|
|
Constant
|
-1,368.189***
|
-1,368.189***
|
|
|
(187.205)
|
(303.847)
|
|
|
|
|
|
|
|
Observations
|
51
|
51
|
|
R2
|
0.707
|
0.707
|
|
Adjusted R2
|
0.695
|
0.695
|
|
Residual Std. Error (df = 48)
|
243.610
|
243.610
|
|
F Statistic (df = 2; 48)
|
57.964***
|
57.964***
|
|
|
|
Note:
|
p<0.1; p<0.05; p<0.01
|
Estimacion Robusta
options(scipen = 999999)
library(robustbase)
library(stargazer)
modelo_crime_robust <- lmrob(crime~poverty+single, data = datos_regresion)
stargazer(modelo_estimado, modelo_crime_robust, type = "html", title = "comparativa")
comparativa
|
|
|
|
Dependent variable:
|
|
|
|
|
|
crime
|
|
|
OLS
|
MM-type
|
|
|
|
linear
|
|
|
(1)
|
(2)
|
|
|
|
poverty
|
6.787
|
11.466
|
|
|
(8.989)
|
(9.263)
|
|
|
|
|
|
single
|
166.373***
|
176.569***
|
|
|
(19.423)
|
(23.223)
|
|
|
|
|
|
Constant
|
-1,368.189***
|
-1,539.640***
|
|
|
(187.205)
|
(235.765)
|
|
|
|
|
|
|
|
Observations
|
51
|
51
|
|
R2
|
0.707
|
0.795
|
|
Adjusted R2
|
0.695
|
0.787
|
|
Residual Std. Error (df = 48)
|
243.610
|
191.864
|
|
F Statistic
|
57.964*** (df = 2; 48)
|
|
|
|
|
Note:
|
p<0.1; p<0.05; p<0.01
|