options(scipen = 99999999)
library(foreign)
datos_regresion<-read.dta("https://stats.idre.ucla.edu/stat/data/crime.dta")
modelo_crime<-lm(crime~poverty+single,data = datos_regresion)
print(modelo_crime)
Call: lm(formula = crime ~ poverty + single, data = datos_regresion)
Coefficients: (Intercept) poverty single
-1368.189 6.787 166.373
#Prueba de White
library(lmtest)
white_test<-bptest(modelo_crime,~I(poverty^2)+I(single^2)+poverty*single,data = datos_regresion)
print(white_test)
##
## studentized Breusch-Pagan test
##
## data: modelo_crime
## BP = 10.73, df = 5, p-value = 0.057
#Segundo Orden
library(lmtest)
prueba_LM<-bgtest(modelo_crime,order = 2)
print(prueba_LM)
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: modelo_crime
## LM test = 0.27165, df = 2, p-value = 0.873
#Estimacion Robusta
options(scipen = 99999)
library(lmtest)
#Sin corregir:
coeftest(modelo_crime)
##
## 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
#Correccion con Estimador
options(scipen = 99999)
library(lmtest)
library(sandwich)
#Corregido
#HC0 Corrige unicamente Heterocedasticidad, usamos HC1 para corregir también Autocorrelación de Primer Orden
estimacion_omega<-vcovHC(modelo_crime,type = "HC1")
coeftest(modelo_crime,vcov. = estimacion_omega)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -1368.1887 284.9180 -4.8020 0.00001576624 ***
## poverty 6.7874 10.9273 0.6211 0.5374
## single 166.3727 26.2343 6.3418 0.00000007519 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#para correlacion de segundo orden
library(lmtest)
library(sandwich)
#Corregido:
estimacion_omega<-NeweyWest(modelo_crime,lag = 2)
coeftest(modelo_crime,vcov. = estimacion_omega)
##
## 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
#Estimacion Robusta
options(scipen = 99999999)
library(stargazer)
library(lmtest)
library(sandwich)
robust.se<-sqrt(diag(estimacion_omega))
stargazer(modelo_crime,modelo_crime, se=list(NULL, robust.se), column.labels=c("No corregido", "Corregido HAC"), align=TRUE,type = "html",title = "comparativa")
| Dependent variable: | ||
| crime | ||
| No corregido | Corregido HAC | |
| (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 | |