library(wooldridge)
data(hprice1)
head(force(hprice1),n=5) #mostrar 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
price = ˆα + ˆα1(lotsize) + ˆα2(sqrft) + ˆα3(bdrms) + e
library(readr)
library(stargazer)
ejemplo_regresion <- hprice1
modelo_estimado<-lm(formula = price ~ lotsize + sqrft + bdrms, data = hprice1)
options(scipen = 9999)
stargazer(modelo_estimado, title = "Modelo estimado del precio", type = "html", digits = 5)
Dependent variable: | |
price | |
lotsize | 0.00207*** |
(0.00064) | |
sqrft | 0.12278*** |
(0.01324) | |
bdrms | 13.85252 |
(9.01015) | |
Constant | -21.77031 |
(29.47504) | |
Observations | 88 |
R2 | 0.67236 |
Adjusted R2 | 0.66066 |
Residual Std. Error | 59.83348 (df = 84) |
F Statistic | 57.46023*** (df = 3; 84) |
Note: | p<0.1; p<0.05; p<0.01 |
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
dwtest(modelo_estimado,alternative = "two.sided",iterations = 1000)
##
## Durbin-Watson test
##
## data: modelo_estimado
## DW = 2.1098, p-value = 0.6218
## alternative hypothesis: true autocorrelation is not 0
Teniendo en cuenta que existe 88 observaciones, 3 varibles explicativas y un nivel de significancia del 5%.
De acuerdo ala esquema de la tabla, el DW calculado, cae en la zona de no Rechazo de H0, por lo tanto no hay presencia de autocorrelación lineal.
library(car)
## Loading required package: carData
durbinWatsonTest(modelo_estimado,simulate = TRUE,reps = 1000)
## lag Autocorrelation D-W Statistic p-value
## 1 -0.05900522 2.109796 0.614
## Alternative hypothesis: rho != 0
En los dos casos, se puede rechazar la presencia de autocorrelación de primer orden, en los residuos del modelo y (No se rechaza la H0), ya que el pvalue de la prueba DW es 0.642>0.05
library(stargazer)
u_i<-modelo_estimado$residuals
data_prueba_BG<-as.data.frame(cbind(u_i,ejemplo_regresion))
library(dplyr)
library(tidyr)
library(kableExtra)
cbind(u_i,ejemplo_regresion) %>%
as.data.frame() %>%
mutate(Lag_1=dplyr::lag(u_i,1),
Lag_2=dplyr::lag(u_i,2),
Lag_3=dplyr::lag(u_i,3)) %>%
replace_na(list(Lag_1=0,Lag_2=0,Lag_3=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 | Lag_3 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
-45.639765 | 300.000 | 349.1 | 4 | 6126 | 2438 | 1 | 5.703783 | 5.855359 | 8.720297 | 7.798934 | 0.000000 | 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 | 0.000000 |
-8.236558 | 191.000 | 217.7 | 3 | 5200 | 1374 | 0 | 5.252274 | 5.383118 | 8.556414 | 7.225481 | 74.848732 | -45.639765 | 0.000000 |
-12.081520 | 195.000 | 231.8 | 3 | 4600 | 1448 | 1 | 5.273000 | 5.445875 | 8.433811 | 7.277938 | -8.236558 | 74.848732 | -45.639765 |
18.093192 | 373.000 | 319.1 | 4 | 6095 | 2514 | 1 | 5.921578 | 5.765504 | 8.715224 | 7.829630 | -12.081520 | -8.236558 | 74.848732 |
62.939597 | 466.275 | 414.5 | 5 | 8566 | 2754 | 1 | 6.144775 | 6.027073 | 9.055556 | 7.920810 | 18.093192 | -12.081520 | -8.236558 |
regresion_auxiliar_BG<-lm(u_i~lotsize+sqrft+bdrms+Lag_1+Lag_2+Lag_3,data = data_prueba_BG)
sumario_BG<-summary(regresion_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 Crítico","p value")
stargazer(salida_bg,title = "Resultados de la prueba de Breusch Godfrey",type = "html",digits = 6)
LMbg | Valor Crítico | p value |
3.989284 | 5.991465 | 0.136062 |
Como pvalue es de 0.136062>0.05 No se rechazara la H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”.
library(lmtest)
bgtest(modelo_estimado,order = 1)
##
## Breusch-Godfrey test for serial correlation of order up to 1
##
## data: modelo_estimado
## LM test = 0.39362, df = 1, p-value = 0.5304
Como pvalue es de 0.5304>0.05 , No se rechazara la H0, por lo tanto se puede concluir que los residuos del modelo, no siguen autocorrelación de orden “2”, respaldando asi la comprobacion del calculo manual de la regresión auxiliar y el estadístico LMBP, donde de igual manera No se rechazara la H0.
library(lmtest)
bgtest(modelo_estimado,order = 2)
##
## Breusch-Godfrey test for serial correlation of order up to 2
##
## data: modelo_estimado
## LM test = 3.0334, df = 2, p-value = 0.2194
Como pvalue es de 0.2194>0.05 ,No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de 1° orden.