Carga de datos

Modelo estimado

library(readr)
library(stargazer)
ejemplo_regresion <- read_csv("C:/Users/74/Desktop/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

Calculo de Prueba White

library(stargazer)
errores<-modelo_lineal$residuals
data_prueba_white<-as.data.frame(cbind(errores,ejemplo_regresion))
regresion_auxiliar<-lm(I(errores^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 Critico","P-value")
stargazer(salida_white,title = "Resultados de la prueba de White",type = "text",digits = 6)
## 
## Resultados de la prueba de White
## ===============================
## LMw      Valor Critico P-value 
## -------------------------------
## 3.690182   11.070500   0.594826
## -------------------------------
#Obtenemos p-value>valor de significancia, Por lo tanto no se rechaza la Hipotesis nula, concluimos que hay evidencia de que la varianza de los errores es homocedastica.

Calculo de PW usando la libreria “lmtest”

library(lmtest)
prueba_white<-bptest(modelo_lineal,~I(X1^2)+I(X2^2)+X1*X2,data = ejemplo_regresion)
print(prueba_white, type = "text")
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_lineal
## BP = 3.6902, df = 5, p-value = 0.5948
#Obtenemos p-value>valor de significancia, Por lo tanto no se rechaza la Hipotesis nula, concluimos que hay evidencia de que la varianza de los errores es homocedastica.

Prueba de Durbin Watson

Usando 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

Usando libreria “car”

library(car)
durbinWatsonTest(modelo_lineal,simulate = TRUE,reps = 1000)
##  lag Autocorrelation D-W Statistic p-value
##    1     -0.04366918      1.948305   0.548
##  Alternative hypothesis: rho != 0
#En los dos calculos, se puede rechazar la presencia de autocorrelacion (No se rechaza la Hiptesis nula), ya que el pvalue>0.05

Prueba del Multiplicador de Lagrange [Breusch-Godfrey]

Preparacion de datos

library(dplyr)
library(tidyr)
library(kableExtra)
cbind(errores,ejemplo_regresion) %>% 
  as.data.frame() %>% 
  mutate(Lag_1=dplyr::lag(errores,1),
         Lag_2=dplyr::lag(errores,2)) %>% 
  replace_na(list(Lag_1=0,Lag_2=0))->data_prueba_BG
kable(head(data_prueba_BG,6))
errores 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

Calculando la regresion auxiliar y el estadistico LMBP

Calculo de DW usando libreria “lmtest”

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 errores del modelo, no siguen autocorrelacion de orden 2

El test BG puede usarse tambien para verificar la autocorrelacion 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 errores del modelo, no siguen autocorrelacion de 1 orden