Modelos corregidos con estimadores HAC_Bryan Daniel Guevara GC21023
Estimación del modelo.
load("C:/Users/PC-GUEVARA/Desktop/Econometria/Estimadores HAC/Bryan Daniel Guevara Castro - smoke.RData")
options(scipen = 999999)
library(lmtest)
modelo_estimado<-lm(formula = cigs~ cigpric+lcigpric+income+lincome+age+agesq+educ+white+restaurn, data=data)
coeftest(modelo_estimado)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 340.804374604 260.015587269 1.3107 0.190334
## cigpric 2.002267667 1.492831189 1.3413 0.180220
## lcigpric -115.273464445 85.424315195 -1.3494 0.177585
## income -0.000046194 0.000133491 -0.3460 0.729402
## lincome 1.404061178 1.708165841 0.8220 0.411340
## age 0.778359013 0.160555612 4.8479 0.0000015001 ***
## agesq -0.009150353 0.001749292 -5.2309 0.0000002158 ***
## educ -0.494780616 0.168180198 -2.9420 0.003356 **
## white -0.531051635 1.460721806 -0.3636 0.716287
## restaurn -2.644241351 1.129998690 -2.3400 0.019528 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
\[ \operatorname{cigs} = \alpha + \beta_{1}(\operatorname{cigpric}) + \beta_{2}(\operatorname{lcigpric}) + \beta_{3}(\operatorname{income}) + \beta_{4}(\operatorname{lincome}) + \beta_{5}(\operatorname{age}) + \beta_{6}(\operatorname{agesq}) + \beta_{7}(\operatorname{educ}) + \beta_{8}(\operatorname{white}) + \beta_{9}(\operatorname{restaurn}) + \epsilon \]
Presentación del modelo con stargazer
Dependent variable: | |
cigs | |
cigpric | 2.002 |
(1.493) | |
lcigpric | -115.273 |
(85.424) | |
income | -0.00005 |
(0.0001) | |
lincome | 1.404 |
(1.708) | |
age | 0.778*** |
(0.161) | |
agesq | -0.009*** |
(0.002) | |
educ | -0.495*** |
(0.168) | |
white | -0.531 |
(1.461) | |
restaurn | -2.644** |
(1.130) | |
Constant | 340.804 |
(260.016) | |
Observations | 807 |
R2 | 0.055 |
Adjusted R2 | 0.044 |
Residual Std. Error | 13.413 (df = 797) |
F Statistic | 5.169*** (df = 9; 797) |
Note: | p<0.1; p<0.05; p<0.01 |
Verificación de Pruebas de Heterocedasticidad y Autocorrelación.
Prueba de White (prueba de Breusch Pagan).
library(lmtest)
white_test<-bptest(modelo_estimado,~I(cigpric^2)+I(lcigpric^2)+I(income^2)+I(lincome^2)+I(age^2)+I(agesq^2)+I(educ^2)+I(white^2)+I(restaurn^2),data = data)
print(white_test)
##
## studentized Breusch-Pagan test
##
## data: modelo_estimado
## BP = 26.323, df = 9, p-value = 0.001809
Como P-value ≤ 0.05 Se rechaza la H0, por lo tanto hay evidencia de que la varianza de los residuos es heterocedástica
Prueba del Multiplicador de Lagrange (Breusch Godfrey).
Autocorrelación de 2º Orden:
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: modelo_estimado
## LM test = 0.26889, df = 2, p-value = 0.8742
No hay evidencia de Autocorrelación de 2º orden ya que p-value > 0.05.
Autocorrelación de 1º orden (prueba de Durbin Watson.
## lag Autocorrelation D-W Statistic p-value
## 1 -0.009243664 2.017442 0.898
## Alternative hypothesis: rho != 0
No hay evidencia de Autocorrelación de 1º orden ya que p-value > 0.05.
La matriz de Varianza-Covarianza del modelo es no escalar, por la presencia de heterocedasticidad en el modelo.
Usando un estimador HAC.
options(scipen = 99999)
library(lmtest)
library(sandwich)
#Corregido
#HC0 Corrige Sólo Heterocedasticidad
vcov_HAC<-vcovHC(modelo_estimado,type = "HC0")
coeftest(modelo_estimado,vcov. = vcov_HAC)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 340.804374604 278.565072832 1.2234 0.221530
## cigpric 2.002267667 1.602727983 1.2493 0.211927
## lcigpric -115.273464445 91.344424868 -1.2620 0.207331
## income -0.000046194 0.000115593 -0.3996 0.689540
## lincome 1.404061178 1.228970726 1.1425 0.253602
## age 0.778359013 0.136944678 5.6837 0.0000000184838 ***
## agesq -0.009150353 0.001451548 -6.3039 0.0000000004804 ***
## educ -0.494780616 0.162968371 -3.0361 0.002475 **
## white -0.531051635 1.361907703 -0.3899 0.696691
## restaurn -2.644241351 1.038254938 -2.5468 0.011058 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Presentación del modelo “original” y el modelo “corregido”.
library(stargazer)
library(sandwich)
vcov_HAC<-vcovHC(modelo_estimado,type = "HC0")
robust.se<-sqrt(diag(vcov_HAC))
stargazer(modelo_estimado, modelo_estimado, se=list(NULL, robust.se),
column.labels=c("Original","Corregido"), align=TRUE, type = "html", title = "Modelo de consumo de cigarros.")
Dependent variable: | ||
cigs | ||
Original | Corregido | |
(1) | (2) | |
cigpric | 2.002 | 2.002 |
(1.493) | (1.603) | |
lcigpric | -115.273 | -115.273 |
(85.424) | (91.344) | |
income | -0.00005 | -0.00005 |
(0.0001) | (0.0001) | |
lincome | 1.404 | 1.404 |
(1.708) | (1.229) | |
age | 0.778*** | 0.778*** |
(0.161) | (0.137) | |
agesq | -0.009*** | -0.009*** |
(0.002) | (0.001) | |
educ | -0.495*** | -0.495*** |
(0.168) | (0.163) | |
white | -0.531 | -0.531 |
(1.461) | (1.362) | |
restaurn | -2.644** | -2.644** |
(1.130) | (1.038) | |
Constant | 340.804 | 340.804 |
(260.016) | (278.565) | |
Observations | 807 | 807 |
R2 | 0.055 | 0.055 |
Adjusted R2 | 0.044 | 0.044 |
Residual Std. Error (df = 797) | 13.413 | 13.413 |
F Statistic (df = 9; 797) | 5.169*** | 5.169*** |
Note: | p<0.1; p<0.05; p<0.01 |