Práctica de Series Temporales

1. Importación de Datos

library(readxl)
library(forecast)
serie.ivae<-read_excel("C:/Users/User/Downloads/tableExport_IMAE.xlsx", 
    col_types = c("skip", "numeric"),skip = 5)

2. Descomposición de la Serie Temporal (Enfoque Tradicional)

serie.ivae.ts<- ts(data = serie.ivae,start = c(2018,1),frequency = 12)
serie.ivae.ts %>% 
  autoplot(main = "IVAE, EL Salvador 2009-2024 [Marzo]", 
           xlab = "Anos",
           ylab = "Indice")

2.1 Modelo aditivo

Para este caso la serie temporal es el resultado de la suma de los componentes teóricos.

\[ Y~t~= T~t~+C~t~+S~t~+I~t~\]

Componente de Tendencia Tt [Componente TCt]

2.1.1 Estimación del Componente Tendencia Ciclo a través de las medias móviles.

ma2_12 <- ma(serie.ivae.ts, 12, centre = TRUE)
autoplot(serie.ivae.ts,main = "IVAE, El Salvador 2018-2024[marzo]",
           xlab = "Anos/Meses",
           ylab = "Indice")+
  autolayer(ma2_12,series = "Tt")

2.1.2 Calculo de los Factores Estacionales [Componente St]

library(magrittr)
Yt <- serie.ivae.ts 
Tt <- ma2_12 
SI <- Yt-Tt 
St <- tapply(SI, cycle(SI), mean, na.rm = TRUE) 
St <- St - sum(St) / 12 
St <- rep(St, len = length(Yt)) %>% ts(start = c(2009, 1), frequency = 12) 
autoplot(St,
         main = "Factores Estacionales",
         xlab = "Anos/Meses",
         ylab = "Factor Estacional") 

2.1.3 Cálculo del Componente Irregular It

It=Yt−Tt−St

 # Supongamos que 'It' es un vector de datos
It<-c(105.13,102.51,108.40,107.96,112.50,113.56,
108.75,111.88,107.52,105.86,112.22,120.01,107.83,
106.07,112.65,109.70,114.75,114.66,111.05,113.16,
111.80,108.84,116.81,122.66,109.05,109.55,103.92, 87.43,89.84,96.18,97.82,103.72,107.63,105.61,
111.45, 120.52,107.19,107.58,113.34,110.63,115.79,
117.57,112.28,115.19,114.58, 111.55,118.60,126.27,110.98,112.08,120.22,112.86,
121.77,119.19,115.94, 120.09, 117.75,115.39,121.53,129.58,114.63,114.23,125.02,
116.45,128.28,126.59,121.50,122.41,118.04,116.37,
128.12,134.09,121.72,120.18,122.06)
It <- ts(It, start = c(2018, 1), frequency = 12)  # Ejemplo de serie mensual que comienza en enero de 2018

# Cargar ggplot2
library(ggplot2)

# Utilizar autoplot
autoplot(It, main = "Componente Irregular", xlab = "Años/Meses", ylab = "It")

2.1.4 Usando la libreria stats

descomposicion_Aditiva<-decompose(serie.ivae.ts,type = "additive")
autoplot(descomposicion_Aditiva,main="Descomposicion Aditiva",xlab="Anos/Meses")

library(tsibble)
library(feasts)
library(ggplot2)
Yt %>% as_tsibble() %>%
  model( classical_decomposition(value, type = "additive")
  ) %>%
  components() %>%
  autoplot() +
  labs(title = "Descomposicion Clasica Aditiva, IVAE")+xlab("Anos/Meses")
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_line()`).

2.1.5 Usando la librería feasts

library(tsibble)
library(feasts)
library(ggplot2)
Yt %>% as_tsibble() %>%
  model( classical_decomposition(value, type = "additive")
  ) %>%
  components() %>%
  autoplot() +
  labs(title = "Descomposicion Clasica Aditiva, IVAE")+xlab("Anos/Meses")
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_line()`).

2.2 Modelo multiplicativo

Yt=Tt⋅Ct⋅St⋅I~t

2.2.1 Componente Tendencia Ciclo [Tt=TCt]

Tt<- ma(serie.ivae.ts, 12, centre = TRUE)
autoplot(Tt,main = "Componente Tendencia [Ciclo]", xlab = "Anos/Meses",ylab = "Tt")

2.2.2 Cálculo de Factores Estacionales [St]

 SI <-Yt/Tt #Serie sin tendencia.
 St <- tapply(SI, cycle(SI), mean, na.rm = TRUE) #Promediando los resultados de cada mes
#Los factores estacionales deben promediar "1" en el modelo multiplicativo
St <- St*12/sum(St) 
#Generar la serie de factores para cada valor de la serie original
St <-rep(St, len = length(Yt)) %>% ts(start = c(2018, 1), frequency = 12) 
autoplot(St,
         main = "Factores Estacionales",
         xlab = "Anos/Meses",
         ylab = "Factor Estacional") 

St <- tapply(SI, cycle(SI), mean, na.rm = TRUE) 
St <- St*12/sum(St) 
St <-rep(St, len = length(Yt)) %>% ts(start = c(2018, 1), frequency = 12) 
autoplot(St,
         main = "Factores Estacionales",
         xlab = "Anos/Meses",
         ylab = "Factor Estacional") 

2.2.3 Cálculo del Componente Irregular [It]

It<-Yt/(Tt*St)
autoplot(It,main = "Componente Irregular",xlab = "Anos/Meses",ylab = "It")

2.2.4 Usando la librería Stats

Descomposicion_multiplicativa<-decompose(serie.ivae.ts,type = "multiplicative")
 autoplot(Descomposicion_multiplicativa,
         main="Descomposicion Multiplicativa",xlab="Anos/Meses")

2.2.5 Usando la librería feasts

library(tsibble)
library(feasts)
library(ggplot2)
Yt %>% as_tsibble() %>%
  model(classical_decomposition(value, type = "multiplicative")) %>%
  components() %>%
  autoplot() + labs(title = "Descomposicion Clasica Multiplicativa, IVAE") + xlab("Anos/Meses")
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_line()`).

3. Descomposición usando la libreria TSstudio

3..1 Modelo aditivo

library(TSstudio)
ts_decompose(Yt, type = "additive", showline = TRUE)
ts_seasonal(Yt,type = "box",title = "Analisis de Valores Estacionales")

3.2 Modelo multiplicativo

library(TSstudio)
ts_decompose(Yt, type = "multiplicative", showline = TRUE)
ts_seasonal(Yt,type = "box",title = "Analisis de Valores Estacionales")