library(wooldridge)
library(lmtest)
data(hprice1)
# Estimamos el modelo original
modelo_price <- lm(price ~ lotsize + sqrft + bdrms, data = hprice1)
#  2. Prueba de Durbin-Watson 
# Esta prueba evalúa autocorrelación de primer orden [AR(1)]
# H0: No hay autocorrelación de primer orden
dw_resultado <- dwtest(modelo_price)
print(dw_resultado)
## 
##  Durbin-Watson test
## 
## data:  modelo_price
## DW = 2.1098, p-value = 0.6777
## alternative hypothesis: true autocorrelation is greater than 0

Nota: El estadístico DW oscila entre 0 y 4. Un valor cercano a 2 sugiere ausencia de autocorrelación.

# 3. Prueba del Multiplicador de Lagrange / Breusch-Godfrey 
# Autocorrelación de primer orden (order = 1)
lm_primer_orden <- bgtest(modelo_price, order = 1)
print("--- Prueba LM: Primer Orden ---")
## [1] "--- Prueba LM: Primer Orden ---"
print(lm_primer_orden)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_price
## LM test = 0.39362, df = 1, p-value = 0.5304
# Autocorrelación de segundo orden (order = 2)
lm_segundo_orden <- bgtest(modelo_price, order = 2)
print("--- Prueba LM: Segundo Orden ---")
## [1] "--- Prueba LM: Segundo Orden ---"
print(lm_segundo_orden)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_price
## LM test = 3.0334, df = 2, p-value = 0.2194

Durbin-Watson:Si el p-value > 0.05, no puedes rechazar la hipótesis nula . Concluyes que no hay evidencia de autocorrelación de primer orden.Si el estadístico es muy cercano a 2, es una buena señal de independencia.

Multiplicador de Lagrange (Breusch-Godfrey):Primer orden: Busca si el residuo de hoy depende del de ayer .Segundo orden: Busca si depende de los dos periodos anteriores .Al igual que en la anterior, si el p-value > 0.05 en ambos casos, tus residuos son independientes (no autocorrelacionados).