Series Temporales aplicadas en la economía de México (2011 - 2021)

Jueves 02 de junio del 2022

Introducción

Aplicaremos dichas series de tiempo en el presente trabajo para obtener una comprensión de las fuerzas subyacentes y la estructura que produjo los datos observados, así como proceder a la revisión, el control e incluso retroalimentación de las gráficas que se expongan.

En el presente trabajo se pretenden analizar los datos arrojados por el INEGI del Producto Interno Bruto como indicador de la economía durante el año 2011 con el 2019, 2020 y 2021, con el fin de hacer una retrospectiva de dichos años y contrastar los datos entre sí; se han encontrado ciertas similitudes en los indicadores de estos años que demuestran que la economía mexicana a través y como consecuencia de la crisis sanitaria (y posteriormente económica) del 2020 tuvo como resultado un retroceso general en la producción, desarrollo, demanda agregada y exportaciones situándola en el mismo punto que en 2011.

Aplicación

Aplicación de las series temporales en la composición de la economía mexicana.

Utilizaremos el archivo previamente descargado del INEGI.

Para trabajar necesitaremos de los siguiente packages cargados dentro del primer chunk:

\[\begin{equation} \begin{array}{l|c|c|c|c|c|c|r} \text{Package} \\ \hline \text{library(tidyverse)} \\ \text{library(lubridate)} \\ \text{library(openxlsx)} \\ \text{library(forecast)} \\ \text{library(tseries)} \\ \text{library(ggfortify)} \\ \text{library(readxl)} \\ \end{array} \end{equation}\]

#Cargamos nuestros datos a través de la función read.xls.
PIB <- read.xlsx("PIB.xlsx")

#Transformamos los datos en una serie temporal con la función ts 

PIBts <- ts(PIB$Cantidad, star = c(2011, 1), frequency = 4)
print(PIBts)
##          Qtr1     Qtr2     Qtr3     Qtr4
## 2011 13909575 14142726 14309061 14665576
## 2012 15412890 15562012 15631590 15817755
## 2013 15768215 15983283 16056716 16277187
## 2014 16770232 17098987 17219643 17484306
## 2015 17779728 18140683 18323803 18572109
## 2016 18973179 19479159 19707071 20129057
## 2017 21323240 21565758 21618977 21934168
## 2018 22674466 23163127 23239379 23524390
## 2019 23944429 24166418 24238469 24445735
## 2020 24699548 22448269 22794405 23415586
## 2021 25131928 25703792 25846920 26273538
#Trazamos la serie de tiempo con autoplot

autoplot(PIBts, ts.colour = "purple")

La variable de una serie de tiempo es la consecuencia de tres componentes, cuya actuación conjunta da como resultado los valores medidos:

  1. Componente tendencia. Se puede definir como un cambio a largo plazo de la media. La tendencia se identifica con un movimiento suave de la serie a largo plazo.

Por lo que podemos observar el patrón que sigue la evolución de los datos a través del tiempo nos muestra una tendencia ascendente o positiva aunque en el periodo de la pandemia se vio afectada.

  1. Componente estacional. Las series presentan periocidad, que normalmente es semestral, mensual, etc. Por lo tanto, este componente puede ser:

Estacionaria, cuando es estable a lo largo del tiempo, dicho de otra manera, cuando la media y varianza son constantes en el tiempo. Se refleja gráficamente en que los valores de la serie de tiempo tienden a oscilar alrededor de una media constante y la variabilidad con respecto a esa media también permanece constante en el tiempo.

No estacionaria, cuando la tendencia o variabilidad cambian a lo largo del tiempo. Los cambios en la media determinan una tendencia a crecer o decrecer a largo plazo, por lo que la serie no oscila alrededor de un valor constante.

De igual forma podemos notar que la tendencia no cambia a lo largo del tiempo, lo que nos confirma que es una serie no estacionaria en media. También se puede apreciar que la serie es estacionaria en cuanto a la varianza, ya que no se aprecia gran variabilidad.

  1. Componente aleatorio. Este componente no responde a ningún patrón de comportamiento, sino que es el resultado de factores fortuitos (aleatorios) que inciden de forma aislada en una serie de tiempo. Explica la variabilidad irregular del comportamiento de la serie y es impredecible.

Utilizando este componente podemos describir el comportamiento de la serie en el año 2020 donde fue afectado por factores de corto plazo, que no pudieron preverse.

#Para confirmar la no estacionalidad se utiliza la función de autocorrelación 
autoplot(acf(PIBts, plot = FALSE))

En la práctica, la mayoría de las series de tiempo son no estacionarias.

En este caso decae lentamente a cero, lo que comprueba que la serie es no estacionaria.

#Se termina con una recopilación 
autoplot(stl(PIBts, s.window = "periodic"), ts.colour = "blue")

Al descomponer la serie en sus componentes estimamos los efectos de tendencia y estacionalidad. Esto también nos ayuda a una mejor toma de decisiones, no solamente a manera informativo.

La figura muestra la serie original (Data), la variación irregular (remainder), la estacionalidad (seasonal) y, por último, la tendencia (trend).

Modelado de la serie

Los objetivos del modelado de serie es explicar el pasado y pronosticar el futuro, pero es indispensable que las características del proceso estocástico sean fijas en el tiempo (proceso estacionario) para poder modelar. Es decir, se tiene que eliminar la tendencia y obtener la estacionalidad de la serie. Así que, el modelo que vamos a utilizar es un modelo ARIMA, diferenciando la serie lograremos convertirla a estacionaria, por lo tanto, haremos uso de las funciones ndiffs y nsdiffs, que calculan cada una el número de diferenciaciones regulares y estacionales, respectivamente, que se necesitan para llevar a cabo la conversión.

ndiffs(PIBts)
## [1] 1
nsdiffs(PIBts)
## [1] 0

En este caso solo fue necesaria una diferenciación para lograr lo deseado, ya que el primer valor es igual a 1, mientras que el segundo es igual a 0.

diffPIBts <- autoplot(diff(PIBts), ts.linetype = "dashed", ts.colour = "purple")
diffPIBts

Para comprobar la estacionariedad de la serie, se espera que la función de autocorrelación caiga rápidamente a cero.

autoplot(acf(diff(PIBts), plot = FALSE))

Vistas las gráficas se pueden plantear varios modelos tentativos para el análisis, como lo serían los ARIMA.

arima1 <- Arima(PIBts, order=c(0,1,2), seasonal = list(order=c(0,1,1), period=4)) 
arima2 <- Arima(PIBts, order=c(1,1,0), seasonal = list(order=c(2,1,0), period=4))
arima3 <- Arima(PIBts, order=c(1,1,2), seasonal = list(order=c(2,1,1), period=4))
arima4 <- Arima(PIBts, order=c(0,1,1), seasonal = list(order=c(2,1,1), period=4))
arima5 <- Arima(PIBts, order=c(1,1,2), seasonal = list(order=c(1,1,1), period=4))
arima6 <- Arima(PIBts, order=c(0,1,0), seasonal = list(order=c(0,1,0), period=4))
arima7 <- Arima(PIBts, order=c(1,1,0), seasonal = list(order=c(1,1,0), period=4))

Calculamos los criterios AIC y BIC.

AIC(arima1,arima2,arima3,arima4,arima5,arima6,arima7)
##        df      AIC
## arima1  4 1146.632
## arima2  4 1146.255
## arima3  7 1150.008
## arima4  5 1147.639
## arima5  6 1149.397
## arima6  1 1161.981
## arima7  3 1149.802
BIC(arima1,arima2,arima3,arima4,arima5,arima6,arima7)
##        df      BIC
## arima1  4 1153.286
## arima2  4 1152.910
## arima3  7 1161.653
## arima4  5 1155.957
## arima5  6 1159.378
## arima6  1 1163.644
## arima7  3 1154.793

Aquí se puede apreciar que los ajustes que mejor presentan los criterios AIC y BIC son aquellos que sólo tienen componente de medias móviles y no tienen componente autorregresiva, siendo ARIMA(1, 1, 0)(2, 1, 0) el modelo que los test arrojan con un menor valor y, por tanto, con una mayor consideración. Una vez estimados los modelos y elegido el mejor de ellos se procede a validarlo.

Predicción de la serie

#Donde el level (nivel) refleja el nivel de confianza, normalmente 95
#Mientras que la letra h, significa el número de períodos para la previsión
forecast1 <- forecast(arima2, level = c(95), h = 36)
autoplot(forecast1)

Conclusiones

Tras el análisis podemos concluir que las series de tiempo nos ayudan a visualizar la actividad de la variable, así como predecir su comportamiento en un futuro. De igual manera, nos permite saber si los datos son estacionarios o no estacionarios. Su aplicación en el PIB nos ayudó a conocer la tendencia, el comportamiento y a determinar si es una gráfica estacionaria o no estacionaria. De igual forma, nos ayudó a predecir el comportamiento de dicho indicador en el futuro.

Referencias

Integrantes

Calzada Ochoa Mariana Eugenia

Frías Rivas Daniela

Galván Paul Karol María

Vázquez Marmolejo Miguel Ángel