Práctica de Series Temporales
1. Importación de Datos
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]
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()`).