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.