A través de la siguiente investigación, se analiza la inflación de precios de alimentos mediante técnicas de series de tiempo, siguiendo un enfoque exploratorio y metodológico para la selección y evaluación de modelos predictivos.
library(readr)
library(tidyverse)
library(dplyr)
library(lubridate)
library(forecast)
library(ggplot2)
library(plotly)
library(zoo)
library(tseries)
library(dynlm)
data <- read_csv("food_price_inflation.csv")
data <- data %>%
mutate(date = as.Date(TIME_PERIOD,format="%m/%d/%Y"))
str(data)
## tibble [59,839 × 5] (S3: tbl_df/tbl/data.frame)
## $ REF_AREA : chr [1:59839] "AFG" "AFG" "AFG" "AFG" ...
## $ REF_AREA_LABEL: chr [1:59839] "Afghanistan" "Afghanistan" "Afghanistan" "Afghanistan" ...
## $ TIME_PERIOD : Date[1:59839], format: "2001-01-01" "2001-02-01" ...
## $ OBS_VALUE : num [1:59839] 22.94 24.36 21.2 17.3 9.33 ...
## $ date : Date[1:59839], format: "2001-01-01" "2001-02-01" ...
# Formato de serie de tiempo
attach(data)
data.ts <- ts(OBS_VALUE, start = c(2001,1), frequency = 12)
summary(data)
## REF_AREA REF_AREA_LABEL TIME_PERIOD OBS_VALUE
## Length:59839 Length:59839 Min. :2001-01-01 Min. : -25.0
## Class :character Class :character 1st Qu.:2007-02-01 1st Qu.: 1.5
## Mode :character Mode :character Median :2013-03-01 Median : 4.1
## Mean :2013-02-21 Mean : 45.5
## 3rd Qu.:2019-04-01 3rd Qu.: 8.6
## Max. :2025-06-01 Max. :371537.5
## date
## Min. :2001-01-01
## 1st Qu.:2007-02-01
## Median :2013-03-01
## Mean :2013-02-21
## 3rd Qu.:2019-04-01
## Max. :2025-06-01
#Preparación y construcción de la serie de tiempo
usa <- data %>%
filter(REF_AREA_LABEL == "United States") %>%
mutate(date = as.Date(TIME_PERIOD, format = "%m/%d/%Y")) %>%
arrange(date)
data.ts <- ts(
usa$OBS_VALUE,
start = c(year(min(usa$date)), month(min(usa$date))),
frequency = 12
)
En esta etapa se realizó la preparación de los datos para el análisis de series de tiempo. Primero, se filtró la base de datos para incluir únicamente las observaciones correspondientes a United States, asegurando que la serie analizada fuera homogénea y representara un solo país. Posteriormente, la variable TIME_PERIOD, originalmente almacenada como texto en formato mes/día/año, fue convertida a un objeto de tipo Date utilizando la función as.Date().
Una vez creada la variable de fecha, los datos se ordenaron cronológicamente para mantener la secuencia temporal correcta. A partir de esta información, se construyó una serie de tiempo mensual (ts) utilizando la variable OBS_VALUE, que representa la inflación mensual de precios de alimentos. La serie se definió con una frecuencia de 12 observaciones por año, correspondiente a datos mensuales, y con un punto inicial determinado por el año y mes de la primera observación disponible en el conjunto de datos.
Este proceso permitió obtener una serie de tiempo correctamente estructurada y adecuada para la aplicación de modelos predictivos como ARIMA y ETS.
# Inicio, fin y frecuencia
start(data.ts)
## [1] 2001 1
end(data.ts)
## [1] 2025 6
frequency(data.ts)
## [1] 12
summary(usa)
## REF_AREA REF_AREA_LABEL TIME_PERIOD OBS_VALUE
## Length:294 Length:294 Min. :2001-01-01 Min. :-2.8619
## Class :character Class :character 1st Qu.:2007-02-08 1st Qu.: 0.7959
## Mode :character Mode :character Median :2013-03-16 Median : 1.9675
## Mean :2013-03-17 Mean : 2.5721
## 3rd Qu.:2019-04-23 3rd Qu.: 3.7185
## Max. :2025-06-01 Max. :13.5332
## date
## Min. :2001-01-01
## 1st Qu.:2007-02-08
## Median :2013-03-16
## Mean :2013-03-17
## 3rd Qu.:2019-04-23
## Max. :2025-06-01
Inicio, fin y frecuencia de la serie: La serie de tiempo contiene observaciones mensuales, iniciando en enero de 2001 y extendiéndose hasta junio de 2025, con una frecuencia de 12 observaciones por año. Esto confirma que la serie está correctamente estructurada para análisis de series de tiempo y es adecuada para la aplicación de modelos predictivos.
Resumen estadístico de la serie: La serie presenta valores de inflación de precios de alimentos que fluctúan dentro de un rango amplio a lo largo del período analizado. El valor mínimo observado corresponde a episodios de baja inflación o incluso desaceleración de precios, mientras que el valor máximo refleja períodos de inflación elevada asociados a choques económicos y presiones en los costos de los alimentos. La media y la mediana de la serie son relativamente cercanas, lo que sugiere una distribución moderadamente simétrica, aunque con posibles valores extremos en ciertos períodos específicos.
Interpretación general: La serie de inflación de precios de alimentos ofrece una perspectiva histórica clara sobre la evolución de los costos alimentarios en Estados Unidos durante más de dos décadas. A lo largo del período analizado, se observan fluctuaciones asociadas a ciclos económicos, cambios en políticas monetarias, interrupciones en las cadenas de suministro y eventos extraordinarios como crisis económicas globales. En conjunto, la serie proporciona una base sólida para el análisis y la aplicación de modelos de pronóstico, permitiendo evaluar patrones temporales y generar predicciones a corto y mediano plazo.
# Gráfica interactiva con plotly
fig <- plot_ly(
data = usa,
x = ~date,
y = ~OBS_VALUE,
type = 'scatter',
mode = 'lines',
line = list(color = 'orange', width = 2)
) %>%
layout(
xaxis = list(title = "Año"),
yaxis = list(title = "Inflación (%)"),
hovermode = "x unified"
)
fig
Comportamiento de la serie de tiempo:
La gráfica muestra el comportamiento mensual de la inflación de precios de alimentos en Estados Unidos desde el año 2001 hasta 2025. A lo largo del período analizado, la serie presenta fluctuaciones significativas, evidenciando episodios de inflación, períodos de desaceleración e incluso valores negativos en algunos años.
Durante los primeros años del período (2001–2007), la inflación se mantiene mayormente en niveles positivos moderados, con variaciones cíclicas alrededor de un promedio estable. Posteriormente, alrededor de 2008–2009, se observa una caída pronunciada que coincide con la crisis financiera global, reflejando una contracción en los precios de los alimentos.
Entre 2010 y 2015, la serie muestra nuevamente episodios de aumentos y disminuciones, con picos intermedios seguidos por correcciones, lo que sugiere un comportamiento influenciado por condiciones económicas y de mercado variables. En el período 2016–2019, la inflación se mantiene relativamente baja y estable, con oscilaciones de menor magnitud.
A partir de 2020, la serie experimenta un aumento notable en la volatilidad, alcanzando su punto máximo alrededor de 2022, donde se observan los valores más altos de inflación del período completo. Este comportamiento coincide con choques externos como la pandemia, interrupciones en las cadenas de suministro y presiones inflacionarias globales. Posteriormente, se observa una desaceleración gradual hacia 2024–2025, aunque los niveles permanecen por encima de algunos valores históricos.
En conjunto, la serie evidencia cambios estructurales, alta volatilidad en ciertos períodos y ausencia de una media constante, lo que sugiere que el proceso generador de datos no es estacionario y justifica la aplicación de técnicas de modelación como ARIMA y ETS para capturar adecuadamente su dinámica temporal.
data.ts_clean <- na.approx(data.ts) # NA
descomp <- decompose(data.ts_clean)
plot(descomp)
Interpretación
Tendencia: La componente de tendencia muestra variaciones de largo plazo en la inflación de precios de alimentos en Estados Unidos. Se observa un comportamiento relativamente estable durante los primeros años del período analizado, seguido por una disminución alrededor de la crisis financiera de 2008–2009. Posteriormente, la tendencia presenta fluctuaciones moderadas hasta aproximadamente 2019. A partir de 2020, se evidencia un aumento marcado en la inflación, alcanzando un punto máximo alrededor de 2022, asociado a choques económicos y disrupciones en las cadenas de suministro. En los años más recientes, la tendencia muestra una desaceleración gradual.
Estacionalidad: El componente estacional revela la presencia de variaciones que se repiten de manera consistente cada año. Estas oscilaciones reflejan patrones estacionales en los precios de alimentos, posiblemente asociados a ciclos de producción, distribución y consumo. La magnitud de la estacionalidad es relativamente moderada en comparación con la variabilidad total de la serie, pero se mantiene estable a lo largo del tiempo.
Componente aleatorio: El componente aleatorio o irregular recoge las fluctuaciones no explicadas por la tendencia ni por la estacionalidad. Se observan episodios de mayor volatilidad en períodos específicos, particularmente alrededor de eventos económicos extraordinarios, lo que sugiere la presencia de choques externos y variaciones impredecibles que afectan la inflación de precios de alimentos a corto plazo.
monthplot(data.ts_clean,
ylab = "Inflación (%)",
xlab = "Mes")
Los valores estacionales muestran variaciones que se repiten de manera consistente cada año, aunque con una magnitud moderada. En general, algunos meses presentan niveles de inflación de precios de alimentos ligeramente más altos o más bajos que el promedio anual, lo que indica la presencia de un patrón estacional estable pero no dominante. Este comportamiento es característico de series económicas en las que la estacionalidad existe, pero el componente principal está determinado por la tendencia y los choques externos.
#La autocorrelación cuantifica la relación entre observaciones separadas por distintos intervalos de tiempo (rezagos).
acf(data.ts_clean, lag.max = 36, main = "")
pacf(data.ts_clean, lag.max = 36, main = "")
Interpretación ACF:
La función de autocorrelación (ACF) muestra valores muy altos y estadísticamente significativos en los primeros rezagos, los cuales disminuyen de manera gradual conforme aumenta la distancia temporal. Este comportamiento indica una fuerte persistencia temporal, es decir, los niveles de inflación de precios de alimentos de un mes están estrechamente relacionados con los de los meses anteriores.
El descenso lento de la ACF es característico de series que presentan tendencia y posible no estacionariedad, donde los cambios ocurren de forma progresiva y no abrupta. Esto sugiere que los choques en la inflación tienden a tener efectos prolongados en el tiempo, afectando varios períodos consecutivos.
En conjunto, el patrón observado en la ACF respalda la necesidad de aplicar técnicas de diferenciación o modelos que capturen adecuadamente la dependencia temporal, como los modelos ARIMA, antes de realizar pronósticos confiables.
Interpretación PACF:
La función de autocorrelación parcial (PACF) muestra coeficientes parciales que, en su mayoría, se mantienen dentro de los límites de significancia estadística. Este comportamiento sugiere que la dependencia temporal de la inflación de precios de alimentos está fuertemente influenciada por los valores del período inmediatamente anterior.
La presencia de pocos rezagos significativos indica que la estructura autorregresiva de la serie es de orden bajo, lo cual es consistente con la utilización de modelos ARIMA con uno o pocos términos autorregresivos. En conjunto con el patrón observado en la ACF, los resultados de la PACF refuerzan la idea de que la serie presenta persistencia temporal y que la diferenciación es necesaria para lograr estacionariedad antes de realizar el ajuste del modelo final.
adf.test(data.ts_clean)
##
## Augmented Dickey-Fuller Test
##
## data: data.ts_clean
## Dickey-Fuller = -4.7119, Lag order = 6, p-value = 0.01
## alternative hypothesis: stationary
H₀: la serie no es estacionaria
H₁: la serie es estacionaria
Interpretación ADF:
La prueba de Dickey-Fuller aumentada (ADF) rechaza la hipótesis nula de presencia de raíz unitaria, dado que el valor p es menor al nivel de significancia del 5%. El mensaje: p-value smaller than printed p-value significa que el p-value real es menor que 0.01, reforzando aún más la conclusión de estacionariedad. Este resultado indica que la serie de inflación de precios de alimentos es estacionaria en niveles, es decir, su media y varianza se mantienen relativamente constantes a lo largo del tiempo.
El estadístico de prueba obtenido sugiere una fuerte evidencia a favor de la estacionariedad, lo cual es consistente con los patrones observados en el análisis previo de la ACF y la PACF. En consecuencia, no es necesario aplicar diferenciación adicional a la serie antes de proceder con el ajuste de modelos de series de tiempo.
En conjunto, los resultados de la ACF, la PACF y la prueba ADF confirman que la serie cumple con el supuesto de estacionariedad, permitiendo la aplicación directa de modelos ARIMA sin necesidad de diferenciación adicional.
# AR(1)
AR1 <- dynlm(data.ts_clean ~ L(data.ts_clean, 1))
summary(AR1)
##
## Time series regression with "ts" data:
## Start = 2001(2), End = 2025(6)
##
## Call:
## dynlm(formula = data.ts_clean ~ L(data.ts_clean, 1))
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.05476 -0.33093 0.02869 0.31175 2.97020
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.05103 0.04558 1.119 0.264
## L(data.ts_clean, 1) 0.97952 0.01179 83.071 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5825 on 291 degrees of freedom
## Multiple R-squared: 0.9595, Adjusted R-squared: 0.9594
## F-statistic: 6901 on 1 and 291 DF, p-value: < 2.2e-16
# AR(2)
AR2 <- dynlm(data.ts_clean ~ L(data.ts_clean, 1:2))
summary(AR2)
##
## Time series regression with "ts" data:
## Start = 2001(3), End = 2025(6)
##
## Call:
## dynlm(formula = data.ts_clean ~ L(data.ts_clean, 1:2))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.92812 -0.28732 -0.00864 0.28219 2.83971
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.07523 0.04075 1.846 0.0659 .
## L(data.ts_clean, 1:2)1 1.42883 0.05225 27.347 <2e-16 ***
## L(data.ts_clean, 1:2)2 -0.45872 0.05225 -8.780 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5191 on 289 degrees of freedom
## Multiple R-squared: 0.9681, Adjusted R-squared: 0.9679
## F-statistic: 4383 on 2 and 289 DF, p-value: < 2.2e-16
# AR(3)
AR3 <- dynlm(data.ts_clean ~ L(data.ts_clean, 1:3))
summary(AR3)
##
## Time series regression with "ts" data:
## Start = 2001(4), End = 2025(6)
##
## Call:
## dynlm(formula = data.ts_clean ~ L(data.ts_clean, 1:3))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.91465 -0.24792 -0.03318 0.22731 2.82905
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.09701 0.03958 2.451 0.0148 *
## L(data.ts_clean, 1:3)1 1.30238 0.05673 22.956 < 2e-16 ***
## L(data.ts_clean, 1:3)2 -0.06445 0.09545 -0.675 0.5000
## L(data.ts_clean, 1:3)3 -0.27604 0.05672 -4.867 1.88e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5006 on 287 degrees of freedom
## Multiple R-squared: 0.9705, Adjusted R-squared: 0.9702
## F-statistic: 3148 on 3 and 287 DF, p-value: < 2.2e-16
# AR(4)
AR4 <- dynlm(data.ts_clean ~ L(data.ts_clean, 1:4))
summary(AR4)
##
## Time series regression with "ts" data:
## Start = 2001(5), End = 2025(6)
##
## Call:
## dynlm(formula = data.ts_clean ~ L(data.ts_clean, 1:4))
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.90327 -0.25242 -0.02723 0.22768 2.83150
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.10343 0.04007 2.581 0.0103 *
## L(data.ts_clean, 1:4)1 1.28420 0.05913 21.719 <2e-16 ***
## L(data.ts_clean, 1:4)2 -0.06864 0.09568 -0.717 0.4737
## L(data.ts_clean, 1:4)3 -0.19052 0.09584 -1.988 0.0478 *
## L(data.ts_clean, 1:4)4 -0.06566 0.05922 -1.109 0.2685
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5013 on 285 degrees of freedom
## Multiple R-squared: 0.9706, Adjusted R-squared: 0.9702
## F-statistic: 2354 on 4 and 285 DF, p-value: < 2.2e-16
Interpretación: Ajuste de modelos autorregresivos AR(p)
Siguiendo el procedimiento presentado en los recursos de Modelos Estacionarios, se ajustaron modelos autorregresivos de distintos órdenes con el objetivo de identificar cuántos rezagos explican adecuadamente el comportamiento de la serie de inflación de precios de alimentos.
Modelo AR(1) El modelo AR(1) muestra un coeficiente autorregresivo altamente significativo, con un valor cercano a uno, lo que indica una fuerte persistencia temporal. El coeficiente de determinación ajustado es elevado, lo que sugiere que una gran proporción de la variabilidad de la serie es explicada por el rezago inmediato. No obstante, la magnitud del coeficiente sugiere que la dinámica de la serie podría requerir más de un rezago para capturar adecuadamente su estructura.
Modelo AR(2) Al incluir un segundo rezago, ambos coeficientes resultan estadísticamente significativos, con signos opuestos, lo que indica una relación dinámica más compleja entre los valores actuales y pasados de la inflación. Además, el error estándar residual disminuye y el coeficiente de determinación ajustado aumenta con respecto al modelo AR(1), evidenciando una mejora en el ajuste. Este comportamiento es consistente con lo observado en la PACF, donde se identificaron rezagos significativos en los primeros períodos.
Modelo AR(3) En el modelo AR(3), aunque el primer y tercer rezago resultan significativos, el segundo rezago no es estadísticamente significativo. Si bien el ajuste mejora ligeramente en términos de R^2, la ganancia es marginal y se introduce mayor complejidad al modelo. Esto sugiere que el tercer rezago no aporta información sustancial adicional para explicar la serie.
Modelo AR(4) El modelo AR(4) incorpora un cuarto rezago que no resulta significativo, y el ajuste global es muy similar al del modelo AR(3). La reducción en el error estándar residual es mínima, lo que indica que el aumento en complejidad no se traduce en una mejora relevante del modelo.
Conclusión del ajuste:
A partir de la comparación entre los modelos autorregresivos AR(1), AR(2), AR(3) y AR(4), se concluye que el modelo AR(2) es el más adecuado para describir el comportamiento de la inflación de precios de alimentos. Este modelo presenta un buen balance entre simplicidad y capacidad explicativa, con coeficientes estadísticamente significativos y un ajuste superior al modelo AR(1), sin introducir complejidad innecesaria como en los modelos de orden superior.
# MA(1)
MA1 <- arima(data.ts_clean, order = c(0,0,1))
# MA(2)
MA2 <- arima(data.ts_clean, order = c(0,0,2))
summary(MA1)
##
## Call:
## arima(x = data.ts_clean, order = c(0, 0, 1))
##
## Coefficients:
## ma1 intercept
## 0.985 2.5685
## s.e. 0.017 0.1800
##
## sigma^2 estimated as 2.426: log likelihood = -549.17, aic = 1104.35
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set -0.0001240087 1.557415 1.161972 9.42476 118.363 2.724526 0.7376248
summary(MA2)
##
## Call:
## arima(x = data.ts_clean, order = c(0, 0, 2))
##
## Coefficients:
## ma1 ma2 intercept
## 0.9844 1.0000 2.5801
## s.e. 0.0181 0.0175 0.1848
##
## sigma^2 estimated as 1.135: log likelihood = -440.97, aic = 889.93
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.001482623 1.065535 0.8002361 3.605859 79.64973 1.876347
## ACF1
## Training set 0.736396
Siguiendo la metodología del curso, se estimaron modelos de media móvil de orden 1 y 2 con el objetivo de evaluar si la dinámica de la inflación de precios de alimentos puede explicarse principalmente por choques aleatorios pasados.
Modelo MA(1) El modelo MA(1) presenta un coeficiente de media móvil altamente significativo, cercano a uno, lo que indica que los choques del período anterior influyen de manera importante en el valor actual de la serie. Sin embargo, el valor del criterio de información AIC es relativamente alto (AIC = 1104.35) y las medidas de error, como RMSE y MAE, sugieren un ajuste limitado.
Modelo MA(2) Al extender el modelo a un MA(2), ambos coeficientes resultan estadísticamente significativos y se observa una mejora sustancial en el ajuste. Esto se refleja en una reducción considerable del AIC (AIC = 889.93) y en una disminución de las medidas de error en comparación con el modelo MA(1). No obstante, el desempeño del modelo sigue siendo inferior al obtenido con los modelos autorregresivos.
Conclusión del ajuste: Los modelos MA(q) capturan parcialmente la dinámica de la serie, observándose mejoras al aumentar el orden del modelo. Sin embargo, en comparación con los modelos AR, su desempeño es inferior, lo que sugiere que la inflación de precios de alimentos depende en mayor medida de sus valores pasados que de los choques aleatorios pasados.
# ARMA(1,1)
ARMA11 <- arima(data.ts_clean, order = c(1,0,1))
# ARMA(2,1)
ARMA21 <- arima(data.ts_clean, order = c(2,0,1))
# ARMA(2,2)
ARMA22 <- arima(data.ts_clean, order = c(2,0,2))
summary(ARMA11)
##
## Call:
## arima(x = data.ts_clean, order = c(1, 0, 1))
##
## Coefficients:
## ar1 ma1 intercept
## 0.9670 0.3057 2.5903
## s.e. 0.0137 0.0449 1.1351
##
## sigma^2 estimated as 0.2913: log likelihood = -237.54, aic = 483.08
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.001419436 0.5397339 0.3920595 -6.052375 37.40167 0.9192785
## ACF1
## Training set 0.1046362
summary(ARMA21)
##
## Call:
## arima(x = data.ts_clean, order = c(2, 0, 1))
##
## Coefficients:
## ar1 ar2 ma1 intercept
## 0.0951 0.8583 0.9999 2.6706
## s.e. 0.0307 0.0307 0.0153 1.2526
##
## sigma^2 estimated as 0.316: log likelihood = -250.87, aic = 511.74
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.003957639 0.5621352 0.422092 -11.21548 40.69321 0.989697
## ACF1
## Training set 0.3662876
summary(ARMA22)
##
## Call:
## arima(x = data.ts_clean, order = c(2, 0, 2))
##
## Coefficients:
## ar1 ar2 ma1 ma2 intercept
## 1.8418 -0.8637 -0.5810 0.0059 2.5747
## s.e. 0.0528 0.0507 0.0802 0.0596 0.5503
##
## sigma^2 estimated as 0.2416: log likelihood = -210.35, aic = 432.7
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -8.577121e-05 0.491575 0.3472381 -2.326901 32.65921 0.8141838
## ACF1
## Training set 0.003654649
Siguiendo la metodología del curso, se estimaron modelos ARMA con el objetivo de combinar la dependencia en valores pasados de la serie con el efecto de choques aleatorios y evaluar si un modelo mixto describe mejor la inflación de precios de alimentos.
ARMA(1,1) El modelo presenta coeficientes autorregresivo y de media móvil estadísticamente significativos y una mejora en el ajuste con respecto a los modelos MA (AIC = 483.08). Sin embargo, aún se observa autocorrelación residual, lo que sugiere que el modelo no captura completamente la estructura temporal de la serie.
ARMA(2,1) La inclusión de un segundo término autorregresivo no mejora el ajuste del modelo. Esto se refleja en un aumento del criterio de información (AIC = 511.74) y en mayores errores en comparación con el modelo ARMA(1,1).
ARMA(2,2) Este modelo presenta el mejor desempeño entre los evaluados, con el menor valor del criterio de información (AIC = 432.70) y las menores medidas de error (RMSE y MAE). Además, la autocorrelación residual es prácticamente nula, lo que indica un ajuste adecuado de la dependencia temporal.
Conclusión del ajuste A partir de la comparación de los modelos ARMA, se concluye que el modelo ARMA(2,2) es el más adecuado, ya que ofrece el mejor balance entre ajuste y complejidad, superando a los modelos ARMA de menor orden y a los modelos MA.
AIC(AR1, AR2, AR3, AR4,
MA1, MA2,
ARMA11, ARMA21, ARMA22)
## df AIC
## AR1 3 518.7773
## AR2 4 450.6962
## AR3 5 429.0923
## AR4 6 429.4015
## MA1 3 1104.3493
## MA2 4 889.9317
## ARMA11 4 483.0780
## ARMA21 5 511.7426
## ARMA22 6 432.7023
Interpretación: Comparación de modelos (criterio AIC)
Para seleccionar el modelo más adecuado, se utilizó el criterio de información de Akaike (AIC), el cual permite comparar modelos considerando simultáneamente la calidad del ajuste y la complejidad del modelo. Un valor menor de AIC indica un mejor balance entre ambos aspectos.
Los resultados muestran diferencias claras entre los modelos evaluados:
Los modelos MA, en particular MA(1) y MA(2), presentan los valores de AIC más altos, lo que indica un ajuste deficiente y confirma que la dinámica de la serie no está dominada únicamente por choques aleatorios.
Los modelos AR muestran una mejora en el AIC a medida que aumenta el orden del modelo. En particular, los modelos AR(3) y AR(4) presentan valores de AIC considerablemente menores que AR(1) y AR(2), evidenciando una mejor capacidad explicativa.
Los modelos ARMA superan a los modelos MA y son comparables a los modelos AR de mayor orden. Entre ellos, el modelo ARMA(2,2) presenta un AIC bajo, aunque con mayor complejidad debido al número de parámetros estimados.
El menor valor de AIC corresponde al modelo AR(3), seguido muy de cerca por el modelo AR(4) y el ARMA(2,2). No obstante, el modelo AR(3) ofrece el mejor compromiso entre simplicidad y capacidad de ajuste.
Modelo seleccionado
A partir del criterio de información AIC, se concluye que el modelo AR(3) es el más adecuado para describir el comportamiento de la inflación de precios de alimentos. Este modelo presenta el menor valor de AIC y logra capturar de manera eficiente la dependencia temporal de la serie sin introducir complejidad innecesaria. Esta selección es consistente con los resultados obtenidos en la ACF y la PACF, donde se identificó una fuerte dependencia en los primeros rezagos, así como con los modelos ARIMA y ARMA previamente ajustados. En conjunto, los resultados confirman que la serie presenta una estructura predominantemente autorregresiva.
checkresiduals(AR3)
##
## Breusch-Godfrey test for serial correlation of order up to 24
##
## data: Residuals
## LM test = 111.93, df = 24, p-value = 2.592e-13
Interpretación:
Residuos en el tiempo: Los residuos del modelo AR(3) oscilan alrededor de cero sin mostrar patrones sistemáticos ni tendencia evidente a lo largo del tiempo. Esto sugiere que el modelo captura adecuadamente la estructura temporal principal de la serie y que no queda información relevante sin modelar.
Autocorrelación de los residuos (ACF): La ACF de los residuos muestra que la mayoría de los rezagos se encuentran dentro de los límites de significancia, indicando ausencia de autocorrelación serial relevante. Se observa un rezago significativo en el período 12, lo que sugiere una leve componente estacional anual no capturada completamente por el modelo, sin comprometer su validez global.
Distribución de los residuos: El histograma de los residuos muestra una distribución aproximadamente simétrica y centrada en cero, cercana a la normal. Esto sugiere que los supuestos de normalidad y varianza constante se cumplen de forma razonable, aunque se observan algunos valores extremos asociados a períodos de mayor volatilidad.
En conjunto, los resultados del diagnóstico indican que el modelo AR(3) es estadísticamente adecuado, ya que los residuos se comportan de manera cercana a ruido blanco y no presentan patrones estructurales no explicados por el modelo.
AR3_arima <- Arima(data.ts_clean, order = c(3,0,0))
summary(AR3_arima)
## Series: data.ts_clean
## ARIMA(3,0,0) with non-zero mean
##
## Coefficients:
## ar1 ar2 ar3 mean
## 1.2984 -0.0640 -0.2736 2.5818
## s.e. 0.0558 0.0941 0.0558 0.7145
##
## sigma^2 = 0.2483: log likelihood = -212.31
## AIC=434.61 AICc=434.82 BIC=453.03
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.0004447472 0.4949081 0.3502887 -2.232259 32.69849 0.1236883
## ACF1
## Training set -0.01370638
fc_ar3 <- forecast(AR3_arima, h = 12)
autoplot(fc_ar3) +
labs(
title = "Pronóstico de la inflación de precios de alimentos (12 meses)",
x = "Año",
y = "Inflación (%)"
)
Pronóstico con el modelo AR(3):
El pronóstico obtenido a partir del modelo ARIMA(3,0,0) muestra la trayectoria esperada de la inflación de precios de alimentos para los próximos 12 meses. El pronóstico puntual indica que la inflación tendería a mantenerse en niveles moderados, con fluctuaciones alrededor de su promedio histórico y sin evidenciar cambios abruptos en el corto plazo.
Los intervalos de confianza se amplían conforme aumenta el horizonte de predicción, reflejando la incertidumbre inherente al proceso inflacionario. Este comportamiento es consistente con series económicas, donde la precisión de los pronósticos disminuye a medida que se proyectan períodos más lejanos.
En conjunto, el modelo sugiere una estabilización gradual de la inflación de precios de alimentos, aunque reconoce la posibilidad de variaciones al alza o a la baja dentro de los rangos estimados. Estos resultados deben interpretarse con cautela, dado que choques externos o eventos económicos no incorporados en el modelo podrían alterar el comportamiento futuro de la serie.
Conclusión general:
En este estudio se aplicaron técnicas de análisis de series de tiempo para modelar y pronosticar la inflación de precios de alimentos. A partir del análisis exploratorio, la descomposición, el estudio de la estacionalidad, la ACF, la PACF y la prueba de estacionariedad, se ajustaron modelos AR, MA y ARMA. La comparación mediante el criterio AIC permitió seleccionar el modelo AR(3) como el más adecuado. El diagnóstico de residuos confirmó la validez del modelo y el pronóstico generado ofrece una proyección razonable del comportamiento futuro de la inflación en el corto plazo, reconociendo las limitaciones a modelos univariados.