Importación de datos

datos <- readxl::read_excel("C:/Users/ce_al/Downloads/PETROLEO_MEX.xlsx")

Test de Ramsey

El test de Ramsey evalúa si el modelo está mal especificado, es decir, si falta alguna variable relevante o si la forma funcional no es adecuada.

library(lmtest)
modelo <- lm(CREC_PIB ~ CREC_PPET + D1995, data = datos)
resettest(modelo, power = 2:3)
## 
##  RESET test
## 
## data:  modelo
## RESET = 0.39095, df1 = 2, df2 = 25, p-value = 0.6805

Como el p-value es mayor a 0.05, no existe evidencia para afirmar que el modelo esté mal especificado.

Prueba J de Davidson–MacKinnon

Esta prueba compara dos modelos no anidados. En este caso, solo hay un modelo, por lo que no es necesaria, pero se muestra como referencia.

library(car)
modelo <- lm(CREC_PIB ~ CREC_PPET + D1995, data = datos)
summary(modelo)
## 
## Call:
## lm(formula = CREC_PIB ~ CREC_PPET + D1995, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.2970 -1.6595  0.0248  1.8825  5.1949 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   3.49380    0.53103   6.579 4.67e-07 ***
## CREC_PPET     0.05826    0.02044   2.850  0.00827 ** 
## D1995       -10.29185    2.89685  -3.553  0.00143 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.844 on 27 degrees of freedom
## Multiple R-squared:  0.4213, Adjusted R-squared:  0.3784 
## F-statistic: 9.828 on 2 and 27 DF,  p-value: 0.0006213

Métricas del modelo

r2 <- summary(modelo)$r.squared
r2_adj <- summary(modelo)$adj.r.squared
aic_val <- AIC(modelo)
bic_val <- BIC(modelo)

resumen <- data.frame(
  Métrica = c("R2", "R2 ajustado", "AIC", "BIC"),
  Valor = c(r2, r2_adj, aic_val, bic_val)
)
resumen
##       Métrica       Valor
## 1          R2   0.4212850
## 2 R2 ajustado   0.3784173
## 3         AIC 152.6783632
## 4         BIC 158.2831527

El modelo presenta un R² del 42% y un R² ajustado del 38%, lo que indica que explica aproximadamente entre 38% y 42% de la variabilidad del crecimiento del PIB.

Pruebas de estacionariedad (ADF)

library(tseries)
adf.test(datos$CREC_PIB)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  datos$CREC_PIB
## Dickey-Fuller = -2.5584, Lag order = 3, p-value = 0.3582
## alternative hypothesis: stationary
adf.test(datos$CREC_PPET)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  datos$CREC_PPET
## Dickey-Fuller = -2.6212, Lag order = 3, p-value = 0.334
## alternative hypothesis: stationary

En ambos casos, los p-values son mayores a 0.05, indicando que no se rechaza la hipótesis nula. Esto refleja que ambas series son no estacionarias.

Pruebas de diagnóstico

Prueba del vif

library(car)
vif(modelo)
## CREC_PPET     D1995 
##  1.003258  1.003258

El VIF para ambas variables es aproximadamente 1, lo que indica ausencia de multicolinealidad. Esto significa que las variables explicativas no presentan correlación alta entre sí

Prueba de normalidad

shapiro.test(residuals(modelo))  
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(modelo)
## W = 0.97256, p-value = 0.6115

El p-value es mayor a 0.05, lo que da a entender que los residuos del modelo tienen una forma normal y no muestran algo fuera de lo común

Prueba de heterocedasticidad

bptest(modelo)     
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo
## BP = 1.3813, df = 2, p-value = 0.5013

El p-value del modelo es mayor a 0.05, indicando que Los errores del modelo mantienen una variación estable y no muestran problemas de heterocedasticidad

Prueba de Autocorrelación

dwtest(modelo)                   
## 
##  Durbin-Watson test
## 
## data:  modelo
## DW = 1.1658, p-value = 0.008173
## alternative hypothesis: true autocorrelation is greater than 0

El p-value es 0.008, que es menor que 0.05. Esto significa que sí hay problemas de autocorrelación, los errores del modelo están relacionados entre sí, es decir, siguen un patrón en lugar de comportarse de manera independiente.