Ejercicio de Autocorrelación

Importación de datos

library(wooldridge)
data(hprice1)
head(force(hprice1),n=5) #Se muestras las primeras 5 observaciones
##   price assess bdrms lotsize sqrft colonial   lprice  lassess llotsize   lsqrft
## 1   300  349.1     4    6126  2438        1 5.703783 5.855359 8.720297 7.798934
## 2   370  351.5     3    9903  2076        1 5.913503 5.862210 9.200593 7.638198
## 3   191  217.7     3    5200  1374        0 5.252274 5.383118 8.556414 7.225482
## 4   195  231.8     3    4600  1448        1 5.273000 5.445875 8.433811 7.277938
## 5   373  319.1     4    6095  2514        1 5.921578 5.765504 8.715224 7.829630

Estimación del modelo

library(stargazer)
modelo_price<-lm(formula = price~lotsize+sqrft+bdrms,data = hprice1)
stargazer(modelo_price,title = "Modelo Price",type = "html")
Modelo Price
Dependent variable:
price
lotsize 0.002***
(0.001)
sqrft 0.123***
(0.013)
bdrms 13.853
(9.010)
Constant -21.770
(29.475)
Observations 88
R2 0.672
Adjusted R2 0.661
Residual Std. Error 59.833 (df = 84)
F Statistic 57.460*** (df = 3; 84)
Note: p<0.1; p<0.05; p<0.01

Prueba Durbin-Watson con libreria lmtest

library(lmtest)
dwtest(modelo_price,alternative = "two.sided", iterations = 1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_price
## DW = 2.1098, p-value = 0.6218
## alternative hypothesis: true autocorrelation is not 0
#Interpretación: Al ser el p-value mayor que el nivel de significancia se puede determinar que existe evidencia que no hay autocorrelación de orden uno, por ende no se rechaza la hipótesis nula.

Prueba Durbin-Watson con libreria car

library(car)
durbinWatsonTest(modelo_price,simulate = TRUE,reps = 1000)
##  lag Autocorrelation D-W Statistic p-value
##    1     -0.05900522      2.109796   0.632
##  Alternative hypothesis: rho != 0
#Interpretación: Al ser el p-value mayor que el nivel de significancia se puede determinar que existe evidencia que no hay autocorrelación de orden uno, por ende no se rechaza la hipótesis nula.

Autocorrelación de orden superior (orden “m”)

Construcción del Data-frame
library(dplyr)
library(tidyr)
library(kableExtra)
residuos<-modelo_price$residuals
cbind(residuos,hprice1) %>% as.data.frame() %>% 
  mutate(Lag_1=dplyr::lag(residuos,1),
         Lag_2=dplyr::lag(residuos,2)) %>% 
  replace_na(list(Lag_1=0,Lag_2=0))->data_prueba_BG
print(head(data_prueba_BG,n=6))
##     residuos   price assess bdrms lotsize sqrft colonial   lprice  lassess
## 1 -45.639765 300.000  349.1     4    6126  2438        1 5.703783 5.855359
## 2  74.848732 370.000  351.5     3    9903  2076        1 5.913503 5.862210
## 3  -8.236558 191.000  217.7     3    5200  1374        0 5.252274 5.383118
## 4 -12.081520 195.000  231.8     3    4600  1448        1 5.273000 5.445875
## 5  18.093192 373.000  319.1     4    6095  2514        1 5.921578 5.765504
## 6  62.939597 466.275  414.5     5    8566  2754        1 6.144775 6.027073
##   llotsize   lsqrft      Lag_1      Lag_2
## 1 8.720297 7.798934   0.000000   0.000000
## 2 9.200593 7.638198 -45.639765   0.000000
## 3 8.556414 7.225482  74.848732 -45.639765
## 4 8.433811 7.277938  -8.236558  74.848732
## 5 8.715224 7.829630 -12.081520  -8.236558
## 6 9.055556 7.920810  18.093192 -12.081520
Regresión auxiliar BG
regresion_auxiliar_BG<-lm(residuos~lotsize+sqrft+bdrms+Lag_1+Lag_2,data = data_prueba_BG)
sumario_BG<-summary(regresion_auxiliar_BG)
R_2_BG<-sumario_BG$r.squared
n<-nrow(hprice1)
LM_BG<-n*R_2_BG
gl=2
p_value<-1-pchisq(q = LM_BG,df = gl)
VC<-qchisq(p = 0.95,df = gl)
salida_bg<-c(LM_BG,VC,p_value)
names(salida_bg)<-c("LMbg","Valor Crítico","p value")
stargazer(salida_bg,title = "Resultados de la prueba de Breusch Godfrey",type = "html",digits = 6)
Resultados de la prueba de Breusch Godfrey
LMbg Valor Crítico p value
3.033403 5.991465 0.219435
Prueba BG con lmtest (verificando orden 1 y orden 2)
library(lmtest)
bgtest(modelo_price, order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_price
## LM test = 0.39362, df = 1, p-value = 0.5304
bgtest(modelo_price, order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_price
## LM test = 3.0334, df = 2, p-value = 0.2194
#Interpretación: Al ser el p-value mayor que el nivel de significancia, podemos concluir que no hay autocorrelación de orden uno ni orden dos, por lo que no se rechaza la hipótesis nula.