Autocorrelación
## price assess bdrms lotsize sqrft colonial lprice lassess llotsize
## 1 300.000 349.1 4 6126 2438 1 5.703783 5.855359 8.720297
## 2 370.000 351.5 3 9903 2076 1 5.913503 5.862210 9.200593
## 3 191.000 217.7 3 5200 1374 0 5.252274 5.383118 8.556414
## 4 195.000 231.8 3 4600 1448 1 5.273000 5.445875 8.433811
## 5 373.000 319.1 4 6095 2514 1 5.921578 5.765504 8.715224
## 6 466.275 414.5 5 8566 2754 1 6.144775 6.027073 9.055556
## lsqrft
## 1 7.798934
## 2 7.638198
## 3 7.225482
## 4 7.277938
## 5 7.829630
## 6 7.920810
1- Estime el modelo.
library(wooldridge)
library(equatiomatic)
data(hprice1)
modelo_lineal <- lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice1)
equatiomatic::extract_eq(modelo_lineal)\[ \operatorname{price} = \alpha + \beta_{1}(\operatorname{lotsize}) + \beta_{2}(\operatorname{sqrft}) + \beta_{3}(\operatorname{bdrms}) + \epsilon \]
library(stargazer)
modelo_lineal <- lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice1)
stargazer(modelo_lineal, title = "Modelo lineal", type = "html", digits = 6)| Dependent variable: | |
| price | |
| lotsize | 0.002068*** |
| (0.000642) | |
| sqrft | 0.122778*** |
| (0.013237) | |
| bdrms | 13.852520 |
| (9.010145) | |
| Constant | -21.770310 |
| (29.475040) | |
| Observations | 88 |
| R2 | 0.672362 |
| Adjusted R2 | 0.660661 |
| Residual Std. Error | 59.833480 (df = 84) |
| F Statistic | 57.460230*** (df = 3; 84) |
| Note: | p<0.1; p<0.05; p<0.01 |
Autocorrelación 1º orden. (Durbin – Watson.)
Usando libreria “lmtest”
##
## Durbin-Watson test
##
## data: modelo_lineal
## DW = 2.1098, p-value = 0.6218
## alternative hypothesis: true autocorrelation is not 0
No se rechaza la H0, ya que 0.06218 > 0.05, por lo que no evidencia de autocorrelación
Usando libreria “car”
## lag Autocorrelation D-W Statistic p-value
## 1 -0.05900522 2.109796 0.64
## Alternative hypothesis: rho != 0
No se rechaza la H0, ya que p-value > 0.05, por lo que no evidencia de autocorrelación
Autocorrelación de Orden superior. (Prueba del Multiplicador de Lagrange)
1-Preparación de datos.
library(dplyr)
library(tidyr)
library(kableExtra)
u_i<-modelo_lineal$residuals
cbind(u_i,hprice1)%>%
as.data.frame()%>%
mutate(Lag_1=dplyr::lag(u_i,1),
Lag_2=dplyr::lag(u_i,2))%>%
replace_na(list(Lag_1=0,Lag_2=0))->data_prueba_BG
kable(head(data_prueba_BG,6))| u_i | price | assess | bdrms | lotsize | sqrft | colonial | lprice | lassess | llotsize | lsqrft | Lag_1 | Lag_2 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| -45.639765 | 300.000 | 349.1 | 4 | 6126 | 2438 | 1 | 5.703783 | 5.855359 | 8.720297 | 7.798934 | 0.000000 | 0.000000 |
| 74.848732 | 370.000 | 351.5 | 3 | 9903 | 2076 | 1 | 5.913503 | 5.862210 | 9.200593 | 7.638198 | -45.639765 | 0.000000 |
| -8.236558 | 191.000 | 217.7 | 3 | 5200 | 1374 | 0 | 5.252274 | 5.383118 | 8.556414 | 7.225481 | 74.848732 | -45.639765 |
| -12.081520 | 195.000 | 231.8 | 3 | 4600 | 1448 | 1 | 5.273000 | 5.445875 | 8.433811 | 7.277938 | -8.236558 | 74.848732 |
| 18.093192 | 373.000 | 319.1 | 4 | 6095 | 2514 | 1 | 5.921578 | 5.765504 | 8.715224 | 7.829630 | -12.081520 | -8.236558 |
| 62.939597 | 466.275 | 414.5 | 5 | 8566 | 2754 | 1 | 6.144775 | 6.027073 | 9.055556 | 7.920810 | 18.093192 | -12.081520 |
2- Calculando la regresión auxiliar y el estadistico LMBP
library(stargazer)
regresión_auxiliar_BG<-lm(u_i~lotsize+sqrft+bdrms+Lag_1+Lag_2,data = data_prueba_BG)
sumario_BG<-summary(regresión_auxiliar_BG)
R_2_BG<-sumario_BG$r.squared
n<-nrow(data_prueba_BG)
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 Critico","p value")
stargazer(salida_bg,title = "Resultados de la prueba de Breusch Godfrey",type = "html",digits = 6)| LMbg | Valor Critico | p value |
| 3.033403 | 5.991465 | 0.219435 |
Como el p-value > 0.05 no se rechaza H0, por lo que se puede concluir que los residuos del modelo no siguen autocorrelación de orden “2”
Usando la libreria “lmtest”
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: modelo_lineal
## LM test = 3.0334, df = 2, p-value = 0.2194
Como el p-value > 0.05 no se rechaza H0, por lo que se puede concluir que los residuos del modelo no siguen autocorrelación de orden “2”
El test BG tambien se puede utilizar para verificar la utocorrelación de 1° orden.
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo_lineal
## LM test = 0.39362, df = 1, p-value = 0.5304
Como el p-value > 0.05 no se rechaza H0, por lo que se puede concluir que los residuos del modelo no siguen autocorrelación de orden “1”