Cargar datos

library(readr)
library(stargazer)
ejemplo_regresion <- read_csv("C:/Users/luisn/Downloads/ejemplo_regresion.csv")
modelo_lineal<-lm(Y~X1+X2,data = ejemplo_regresion)
stargazer(modelo_lineal,title = "modelo estimado",type = "text")
## 
## modelo estimado
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                                  Y             
## -----------------------------------------------
## X1                           0.237***          
##                               (0.056)          
##                                                
## X2                          -0.0002***         
##                              (0.00003)         
##                                                
## Constant                     1.564***          
##                               (0.079)          
##                                                
## -----------------------------------------------
## Observations                    25             
## R2                             0.865           
## Adjusted R2                    0.853           
## Residual Std. Error       0.053 (df = 22)      
## F Statistic           70.661*** (df = 2; 22)   
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

Heterocedasticidad

Prueba de White

-Manera más compleja de aplicar la prueba de white

library(stargazer)
u_i<-modelo_lineal$residuals
data_prueba_white<-as.data.frame(cbind(u_i,ejemplo_regresion))
regresion_auxiliar<-lm(I(u_i^2)~X1+X2+I(X1^2)+I(X2^2)+X1*X2,data = data_prueba_white)
sumario<-summary(regresion_auxiliar)
n<-nrow(data_prueba_white)
R_2<-sumario$r.squared
LM_w<-n*R_2
gl=2+2+1
p_value<-1-pchisq(q = LM_w,df = gl)
VC<-qchisq(p = 0.95,df = gl)
salida_white<-c(LM_w,VC,p_value)
names(salida_white)<-c("LMw","Valor Crítico","p value")
stargazer(salida_white,title = "Resultados de la prueba de White",type = "text",digits = 6)
## 
## Resultados de la prueba de White
## ===============================
## LMw      Valor Crítico p value 
## -------------------------------
## 3.690182   11.070500   0.594826
## -------------------------------

Como p_value(0.5948)>Nivel de significancia(0.05), entonces concluimos que no se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica.

Uso de la librería “lmtest” para la prueba de White

-Manera más sencilla de aplicar la prueba de White

library(lmtest)
prueba_white<-bptest(modelo_lineal,~I(X1^2)+I(X2^2)+X1*X2,data = ejemplo_regresion)
print(prueba_white)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_lineal
## BP = 3.6902, df = 5, p-value = 0.5948

Como p_value(0.5948)>Nivel de significancia(0.05), entonces concluimos que no se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica.

Autocorrelacion

Autocorrelacion de 1° orden

Prueba de Durbin – Watson

-Utilizando libreria “lmtest”

library(lmtest)
dwtest(modelo_lineal,alternative = "two.sided",iterations = 1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_lineal
## DW = 1.9483, p-value = 0.5649
## alternative hypothesis: true autocorrelation is not 0

Como p_value(0.5649)>Nivel de significancia(0.05), entonces no rechazamos la Ho, por lo que se puede rechazar la presencia de autocorrelación.

Utilizando la libreria “car” para la prueba de Durbin - Watson

library(car)
durbinWatsonTest(modelo_lineal,simulate = TRUE,reps = 1000)
##  lag Autocorrelation D-W Statistic p-value
##    1     -0.04366918      1.948305   0.552
##  Alternative hypothesis: rho != 0

Como p_value(0.562)>Nivel de significancia(0.05), entonces no rechazamos la Ho, por lo que se puede rechazar la presencia de autocorrelación.

Autocorrelacion de orden superior

Prueba del Multiplicador de Lagrange (Breusch-Godfrey)

-Manera más compleja de aplicar la prueba BG

1 Preparación de datos

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)) %>% 
  replace_na(list(Lag_1=0,Lag_2=0))->data_prueba_BG
kable(head(data_prueba_BG,6))
u_i X1 X2 Y Lag_1 Lag_2
0.0734697 3.92 7298 0.75 0.0000000 0.0000000
-0.0033412 3.61 6855 0.71 0.0734697 0.0000000
-0.0391023 3.32 6636 0.66 -0.0033412 0.0734697
-0.0621832 3.07 6506 0.61 -0.0391023 -0.0033412
0.0162403 3.06 6450 0.70 -0.0621832 -0.0391023
0.0124247 3.11 6402 0.72 0.0162403 -0.0621832

2. Calculando la regresión auxiliar y el estadístico \(LM_{BP}\)

regresion_auxiliar_BG<-lm(u_i~X1+X2+Lag_1+Lag_2,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 = "text",digits = 6)
## 
## Resultados de la prueba de Breusch Godfrey
## ===============================
## LMbg     Valor Crítico p value 
## -------------------------------
## 3.305189   5.991465    0.191552
## -------------------------------

Como pvalue>0.05 No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”

Usando la librería “lmtest” para la prueba BG

-Manera más sencilla

library(lmtest)
bgtest(modelo_lineal,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_lineal
## LM test = 3.3052, df = 2, p-value = 0.1916

Como pvalue>0.05 No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”

El test BG puede usarse también para verificar la autocorrelación de 1° orden:

library(lmtest)
bgtest(modelo_lineal,order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_lineal
## LM test = 0.051063, df = 1, p-value = 0.8212

Como pvalue>0.05 No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de 1° orden