datos <- readxl::read_excel("C:/Users/ce_al/Downloads/PETROLEO_MEX.xlsx")
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.
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
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.
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.
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í
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
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
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.