Instalar/Cargar librerias necesarias para el análisis
#Cargar librerías necesarias
library(readxl) # Para leer archivos Excel
library(tseries) # Para pruebas de estacionariedad
library(forecast) # Para modelado ARIMA y pronósticos
library(ggplot2) # Para visualización de datos
library(plotly) # Para gráficos interactivos
library(timetk) #timetk simplifica y acelera el análisis exploratorio, visualización, y preparación de datos temporales para modelado. Es ideal para quienes trabajan con series temporales en un flujo de trabajo "tidy" y buscan integrar análisis visuales, detección de patrones y forecasting en un solo paquete.
Cargar base de datos
data_col<- read_excel("~/Desktop/Analitica de datos/Base Caso2.xlsx",
col_types = c("date", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric", "numeric",
"numeric", "numeric"))
PASO INDISPENSABLE: Declarar la (s) variable (s) como serie (s) temporal (es):
Variable 1
# Convertir/declarar variable 1=ENER en serie de tiempo mensual
variable1_ts <- ts(data_col$ENER, start = c(2012, 1), frequency = 12)
Variable 2
# Convertir/declarar el ISE en serie de tiempo mensual
variable2_ts <- ts(data_col$ISE, start = c(2012, 1), frequency = 12)
Variable 3
# Convertir/declarar las exportaciones de combustibles en serie de tiempo mensual
variable3_ts <- ts(data_col$X_COMB, start = c(2012, 1), frequency = 12)
Gráfico inicial de la variable 1 en niveles -Original
library(ggplot2)
library(plotly)
# Convertir la serie temporal a un vector numérico para lograr graficar con ggplot2
data_col$variable1 <- as.numeric(variable1_ts)
# Crear el gráfico
grafico_serie <- ggplot(data_col, aes(x = seq.Date(from = as.Date("2012-01-01"), by = "month", length.out = nrow(data_col)),
y = variable1)) +
geom_line(color = "grey", linewidth = 0.4) + # Cambiado 'size' por 'linewidth'
geom_point(color = "black", size = 0.1) +
ggtitle("Variable 1: Serie original") +
xlab("Tiempo") +
ylab("Unidad Variable 1") +
theme_minimal()
ggplotly(grafico_serie)
**Extracción señales variable 1 Tendencia: Presenta un comportamiento alcista a largo plazo. Se observa un crecimiento gradual desde 2012 hasta inicios de 2020, donde ocurre una caída abrupta (shock negativo), seguida de una recuperación muy acelerada que estabiliza la serie en niveles superiores a los históricos (por encima de 2000 unidades).
Estacionalidad: Muestra un patrón cíclico constante y repetitivo con fluctuaciones de aproximadamente ±40 a 60 unidades. Es una estacionalidad de frecuencia alta (posiblemente mensual o trimestral) que se mantiene uniforme a lo largo de los años.
Residuo (Ruido): Generalmente estable, excepto por el evento de 2020, donde el residuo alcanza valores negativos extremos (cercanos a -300).**
# Cargar librerías necesarias
library(ggplot2)
library(plotly)
# Descomposición de la serie temporal
stl_decomp_var1 <- stl(variable1_ts, s.window = "periodic")
# Convertir la descomposición a un data frame para graficar con ggplot2
stl_df_var1 <- data.frame(
Time = rep(time(variable1_ts), 4), # Tiempo repetido para cada componente (son 4 componentes)
Value = c(stl_decomp_var1$time.series[, "seasonal"],
stl_decomp_var1$time.series[, "trend"],
stl_decomp_var1$time.series[, "remainder"],
variable1_ts),
Component = rep(c("Estacional", "Tendencia", "Residuo", "Serie Original"), each = length(variable1_ts))
)
# Crear gráfico con ggplot2
p <- ggplot(stl_df_var1, aes(x = Time, y = Value, color = Component)) +
geom_line() +
facet_wrap(~Component, scales = "free_y", ncol = 1) +
theme_minimal() +
labs(title = "Descomposición temporal de la variable 1",
x = "Tiempo",
y = "Valor")
# Convertir a gráfico interactivo con plotly
ggplotly(p)
**Extracción señales variable 2 Tendencia: Se extrae una línea suavizada que confirma un crecimiento compuesto. La pendiente se vuelve más pronunciada tras el cambio de nivel (level shift) observado en el periodo 2021-2025.
Estacionalidad: Revela una señal periódica determinista con oscilaciones simétricas. Los ciclos son constantes, lo que facilita la predicción de movimientos estacionales futuros.
Residuo (Ruido): Muestra una varianza controlada (ruido blanco) en la mayor parte de la serie, con una anomalía estructural masiva aislada en el año 2020.**
# Cargar librerías necesarias
library(ggplot2)
library(plotly)
# Descomposición de la serie temporal
stl_decomp_var2 <- stl(variable2_ts, s.window = "periodic")
# Convertir la descomposición a un data frame para graficar con ggplot2
stl_df_var2 <- data.frame(
Time = rep(time(variable2_ts), 4), # Tiempo repetido para cada componente
Value = c(stl_decomp_var2$time.series[, "seasonal"],
stl_decomp_var2$time.series[, "trend"],
stl_decomp_var2$time.series[, "remainder"],
variable2_ts),
Component = rep(c("Estacional", "Tendencia", "Residuo", "Serie Original"), each = length(variable2_ts))
)
# Crear gráfico con ggplot2
p <- ggplot(stl_df_var2, aes(x = Time, y = Value, color = Component)) +
geom_line() +
facet_wrap(~Component, scales = "free_y", ncol = 1) +
theme_minimal() +
labs(title = "Descomposición temporal de la variable 2",
x = "Tiempo",
y = "Valor")
# Convertir a gráfico interactivo con plotly
ggplotly(p)
**Extracción señales variable 3 Tendencia: Describe una trayectoria lineal ascendente casi perfecta. Inicia en valores cercanos a 88 y mantiene una progresión constante hasta superar los 120 en 2025.
Estacionalidad: Presenta una morfología de “picos” positivos muy agudos, alcanzando hasta 12 unidades. Es la señal con el patrón estacional más limpio y predecible de las tres variables.
Residuo (Ruido): La señal de error es mínima y estacionaria. La baja magnitud del residuo indica que el modelo captura con gran precisión la realidad de esta variable.**
# Cargar librerías necesarias
library(ggplot2)
library(plotly)
# Descomposición de la serie temporal
stl_decomp_var3 <- stl(variable3_ts, s.window = "periodic")
# Convertir la descomposición a un data frame para graficar con ggplot2
stl_df_var3 <- data.frame(
Time = rep(time(variable3_ts), 4), # Tiempo repetido para cada componente
Value = c(stl_decomp_var3$time.series[, "seasonal"],
stl_decomp_var3$time.series[, "trend"],
stl_decomp_var3$time.series[, "remainder"],
variable3_ts),
Component = rep(c("Estacional", "Tendencia", "Residuo", "Serie Original"), each = length(variable3_ts))
)
# Crear gráfico con ggplot2
p <- ggplot(stl_df_var3, aes(x = Time, y = Value, color = Component)) +
geom_line() +
facet_wrap(~Component, scales = "free_y", ncol = 1) +
theme_minimal() +
labs(title = "Descomposición temporal de la variable 3",
x = "Tiempo",
y = "Valor")
# Convertir a gráfico interactivo con plotly
ggplotly(p)
Después de la descomposición temporal de cada variable, se extrae la variable ajustada por estacionalidad para graficarla junto con la serie original:
**Se crea la variable1 ajustada por estacionalidad Tendencia: Muestra un comportamiento ciclo-tendencial. Se identifican fases de contracción (2014) y expansión (2022), con un valle profundo en 2020. No es una tendencia lineal, sino ondulada.
Estacionalidad: A pesar de la escala millonaria (10 6 ), mantiene oscilaciones rítmicas de gran magnitud, indicando que el tráfico tiene componentes temporales muy pesados.
Residuo (Ruido): Presenta una alta volatilidad, especialmente en los años recientes (2023-2025), donde los picos de ruido sugieren inestabilidad en los datos recolectados.**
# Extraer los componentes de la descomposición
variable1_sa <- variable1_ts - stl_decomp_var1$time.series[, "seasonal"]
Se crea la variable2 ajustada por estacionalidad
# Extraer los componentes de la descomposición
variable2_sa <- variable2_ts - stl_decomp_var2$time.series[, "seasonal"]
Se crea la variable3 ajustada por estacionalidad
# Extraer los componentes de la descomposición
variable3_sa <- variable3_ts - stl_decomp_var3$time.series[, "seasonal"]
Ahora si se puede graficar las series originales versus la ajustada por estacionalidad
Gráfico serie original VS ajustada Variable 1
# Crear vector de fechas correctamente alineado con la serie
fechas_var1 <- seq.Date(from = as.Date("2012-01-01"), by = "month", length.out = length(variable1_ts))
# Gráfico mejorado con fechas en el eje X
grafico_ajustada_var1 <- ggplot() +
geom_line(aes(x = fechas_var1, y = variable1_ts), color = "grey", size = 0.5, linetype = "solid", name = "Serie Original") +
geom_line(aes(x = fechas_var1, y = variable1_sa), color = "black", size = 0.6, linetype = "solid", name = "Serie Ajustada") +
ggtitle("Variable 1:Serie Original vs Serie Ajustada por Estacionalidad") +
xlab("Tiempo") +
ylab("Unidad de medida variable 1") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas para mejor visualización
# Convertir a gráfico interactivo
ggplotly(grafico_ajustada_var1)
**Gráfico serie original VS ajustada Variable 2 Tendencia: La serie ajustada (línea oscura) permite visualizar el crecimiento orgánico eliminando las fluctuaciones estacionales, confirmando que la tendencia actual es de expansión sólida.
Estacionalidad: Al ser removida en la línea negra, se evidencia cuánta de la volatilidad mensual de la línea gris se debe simplemente al calendario.
Residuo (Ruido): La comparación permite notar que el ruido de corto plazo disminuye significativamente en la serie ajustada, dejando ver solo los movimientos estructurales.**
# Crear vector de fechas correctamente alineado con la serie
fechas_var2 <- seq.Date(from = as.Date("2012-01-01"), by = "month", length.out = length(variable2_ts))
# Gráfico mejorado con fechas en el eje X
grafico_ajustada_var2 <- ggplot() +
geom_line(aes(x = fechas_var2, y = variable2_ts), color = "grey", size = 0.5, linetype = "solid", name = "Serie Original") +
geom_line(aes(x = fechas_var2, y = variable2_sa), color = "black", size = 0.6, linetype = "solid", name = "Serie Ajustada") +
ggtitle("Variable 2:Serie Original vs Serie Ajustada por Estacionalidad") +
xlab("Tiempo") +
ylab("Unidad de medida variable 2") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas para mejor visualización
# Convertir a gráfico interactivo
ggplotly(grafico_ajustada_var2)
**Gráfico serie original VS ajustada Variable 3 Tendencia: Se extrae una curva de crecimiento mucho más suave. La tendencia ajustada demuestra que el crecimiento es constante y no depende de los picos de temporada.
Estacionalidad: La diferencia entre la línea gris y la negra cuantifica el impacto estacional, el cual es muy alto en esta variable (picos recurrentes hacia arriba).
Residuo (Ruido): El ajuste estacional revela una serie muy “limpia”, sugiriendo que casi todo el ruido visual de la gráfica original es en realidad estacionalidad pura.**
# Crear vector de fechas correctamente alineado con la serie
fechas_var3 <- seq.Date(from = as.Date("2012-01-01"), by = "month", length.out = length(variable3_ts))
# Gráfico mejorado con fechas en el eje X
grafico_ajustada_var3 <- ggplot() +
geom_line(aes(x = fechas_var3, y = variable3_ts), color = "grey", size = 0.5, linetype = "solid", name = "Serie Original") +
geom_line(aes(x = fechas_var3, y = variable3_sa), color = "black", size = 0.6, linetype = "solid", name = "Serie Ajustada") +
ggtitle("Variable 3:Serie Original vs Serie Ajustada por Estacionalidad") +
xlab("Tiempo") +
ylab("Unidad de medida variable 3") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas para mejor visualización
# Convertir a gráfico interactivo
ggplotly(grafico_ajustada_var3)
Ahora graficamos serie original vs tendencia
Primero se debe obtener la tendencia de cada variable y luego graficarla
**Tendencia Variable 1 Tendencia: La tendencia domina la señal. Debido a la gran escala de los datos, la serie ajustada y la original convergen en sus puntos máximos y mínimos.
Estacionalidad: Se extrae como un componente de menor peso relativo; las oscilaciones estacionales no alteran el curso general de los ciclos de la Variable 3.
Residuo (Ruido): El ruido persiste incluso tras el ajuste, lo que indica que esta variable es intrínsecamente más volátil que las anteriores.**
library(ggplot2)
library(plotly)
# Convertir la serie a un vector numérico
variable1_vec <- as.numeric(variable1_ts)
tendencia_var1 <- as.numeric(stl_decomp_var1$time.series[, "trend"])
# Asegurar que 'fechas' tenga la misma longitud
fechas <- seq.Date(from = as.Date("2012-01-01"), by = "month", length.out = length(variable1_ts))
# Gráfico interactivo de la serie original vs tendencia
grafico_tendencia_var1 <- ggplot() +
geom_line(aes(x = fechas, y = variable1_vec, color = "Serie Original"), size = 0.7, linetype = "solid") +
geom_line(aes(x = fechas, y = tendencia_var1, color = "Tendencia"), size = 0.8, linetype = "solid") +
scale_color_manual(values = c("Serie Original" = "grey", "Tendencia" = "black")) +
ggtitle("Variable 1: Serie Original vs Tendencia") +
xlab("Tiempo") +
ylab("Unidad de medida Variable 1") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas del eje X
# Convertir a gráfico interactivo con plotly
ggplotly(grafico_tendencia_var1)
**Tendencia Variable 2 Tendencia: Se extrae mediante un filtro de paso bajo. Muestra la dirección general de la variable, ignorando las caídas mensuales y resaltando la aceleración de la pendiente post-2020.
Estacionalidad: Es ignorada en esta gráfica para resaltar únicamente el vector de crecimiento a largo plazo.
Residuo (Ruido): Se elimina visualmente para permitir un análisis de la fuerza subyacente de la señal sin distracciones de eventos transitorios.**
library(ggplot2)
library(plotly)
# Convertir la serie a un vector numérico
variable2_vec <- as.numeric(variable2_ts)
tendencia_var2 <- as.numeric(stl_decomp_var2$time.series[, "trend"])
# Asegurar que 'fechas' tenga la misma longitud
fechas <- seq.Date(from = as.Date("2012-01-01"), by = "month", length.out = length(variable2_ts))
# Gráfico interactivo de la serie original vs tendencia
grafico_tendencia_var2 <- ggplot() +
geom_line(aes(x = fechas, y = variable2_vec, color = "Serie Original"), size = 0.7, linetype = "solid") +
geom_line(aes(x = fechas, y = tendencia_var2, color = "Tendencia"), size = 0.8, linetype = "solid") +
scale_color_manual(values = c("Serie Original" = "grey", "Tendencia" = "black")) +
ggtitle("Variable 2: Serie Original vs Tendencia") +
xlab("Tiempo") +
ylab("Unidad de medida Variable 2") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas del eje X
# Convertir a gráfico interactivo con plotly
ggplotly(grafico_tendencia_var2)
**Tendencia Variable 3 Tendencia: Revela una resiliencia extrema. La línea de tendencia apenas se inmuta durante la crisis de 2020, manteniendo un ángulo de crecimiento constante.
Estacionalidad: Queda representada por las oscilaciones grises que “orbitan” alrededor de la línea de tendencia negra.
Residuo (Ruido): Es despreciable; la cercanía de la tendencia a los puntos medios de la serie original confirma un proceso muy estable.**
library(ggplot2)
library(plotly)
# Convertir la serie a un vector numérico
variable3_vec <- as.numeric(variable3_ts)
tendencia_var3 <- as.numeric(stl_decomp_var3$time.series[, "trend"])
# Asegurar que 'fechas' tenga la misma longitud
fechas <- seq.Date(from = as.Date("2012-01-01"), by = "month", length.out = length(variable3_ts))
# Gráfico interactivo de la serie original vs tendencia
grafico_tendencia_var3 <- ggplot() +
geom_line(aes(x = fechas, y = variable3_vec, color = "Serie Original"), size = 0.7, linetype = "solid") +
geom_line(aes(x = fechas, y = tendencia_var3, color = "Tendencia"), size = 0.8, linetype = "solid") +
scale_color_manual(values = c("Serie Original" = "grey", "Tendencia" = "black")) +
ggtitle("Variable 3: Serie Original vs Tendencia") +
xlab("Tiempo") +
ylab("Unidad de medida Variable 3") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas del eje X
# Convertir a gráfico interactivo con plotly
ggplotly(grafico_tendencia_var3)
Ahora calculamos la tasa de crecimiento de la serie original vs tendencia:
**Tasa de crecimiento de la serie de tendencia y original para la variable 1 Tendencia: Se extrae una curva sinusoide que define las fases de bonanza y recesión. Actualmente, la tendencia muestra una curvatura hacia abajo tras el pico de 2022.
Estacionalidad: Genera variaciones de alta frecuencia que se superponen a los ciclos largos de la tendencia.
Residuo (Ruido): Se manifiesta en los picos que se alejan drásticamente de la línea negra, indicando momentos de volatilidad atípica fuera del ciclo normal.**
#Cálculo de la tasa de crecimiento anual correctamente alineada
tasa_crecimiento_var1 <- (variable1_ts[(13:length(variable1_ts))] / variable1_ts[1:(length(variable1_ts) - 12)] - 1) * 100
tasa_tendencia_var1 <- (tendencia_var1[(13:length(tendencia_var1))] / tendencia_var1[1:(length(tendencia_var1) - 12)] - 1) * 100
# Crear vector de fechas corregido, es decir que inicie desde enero 2013
fechas_corregidas_var1 <- seq(from = as.Date("2013-01-01"), by = "month", length.out = length(tasa_crecimiento_var1))
# Verificar longitudes
print(length(fechas_corregidas_var1))
## [1] 144
print(length(tasa_crecimiento_var1))
## [1] 144
print(length(tasa_tendencia_var1))
## [1] 144
*Gráfico variable original y tendencia variable 1: tasa de crecimiento anual**
library(ggplot2)
library(plotly)
# Gráfico de la tasa de crecimiento anual variable 1
grafico_crecimiento_var1 <- ggplot() +
geom_line(aes(x = fechas_corregidas_var1, y = tasa_crecimiento_var1), color = "grey", size = 0.7) +
geom_line(aes(x = fechas_corregidas_var1, y = tasa_tendencia_var1), color = "black", size = 0.8, linetype = "dashed") +
ggtitle("Variable1: Tasa de crecimiento anual % de la serie Original y la tendencia") +
xlab("Tiempo") +
ylab("% de Crecimiento Anual") +
theme_minimal()
# Convertir a gráfico interactivo
ggplotly(grafico_crecimiento_var1)
**Ahora calculamos la tasa de crecimiento de la serie original vs tendencia: variable 2 Tendencia: La tasa de crecimiento promedio (línea discontinua) se mantiene en terreno positivo (0% a 5%) la mayor parte del tiempo, excepto en 2020. Tras el choque, muestra una aceleración máxima de casi el 15% anual antes de estabilizarse nuevamente hacia el 0%.
Estacionalidad: Genera fluctuaciones constantes que hacen que la tasa real (línea gris) oscile alrededor de la tendencia, con picos de crecimiento mensual que superan el 10%.
Residuo (Ruido): Registra una caída negativa sin precedentes en 2020, alcanzando una tasa de crecimiento de −25%, lo que representa una contracción masiva y atípica en la velocidad de la serie.**
#Cálculo de la tasa de crecimiento anual correctamente alineada
tasa_crecimiento_var2 <- (variable2_ts[(13:length(variable2_ts))] / variable2_ts[1:(length(variable2_ts) - 12)] - 1) * 100
tasa_tendencia_var2 <- (tendencia_var2[(13:length(tendencia_var2))] / tendencia_var2[1:(length(tendencia_var2) - 12)] - 1) * 100
# Crear vector de fechas corregido
fechas_corregidas_var2 <- seq(from = as.Date("2013-01-01"), by = "month", length.out = length(tasa_crecimiento_var2))
# Verificar longitudes
print(length(fechas_corregidas_var2))
## [1] 144
print(length(tasa_crecimiento_var2))
## [1] 144
print(length(tasa_tendencia_var2))
## [1] 144
# Gráfico de la tasa de crecimiento anual variable 2
grafico_crecimiento_var2 <- ggplot() +
geom_line(aes(x = fechas_corregidas_var2, y = tasa_crecimiento_var2), color = "grey", size = 0.7) +
geom_line(aes(x = fechas_corregidas_var2, y = tasa_tendencia_var2), color = "black", size = 0.8, linetype = "dashed") +
ggtitle("Variable2: Tasa de crecimiento anual % de la serie Original y la Tendencia") +
xlab("Tiempo") +
ylab("% de Crecimiento Anual") +
theme_minimal()
# Convertir a gráfico interactivo
ggplotly(grafico_crecimiento_var2)
**Ahora calculamos la tasa de crecimiento de la serie original vs tendencia: variable 3 Tendencia: Muestra una estabilidad notable, manteniendo una velocidad de crecimiento constante de aproximadamente el 3% al 5% durante casi 8 años. Tras la crisis de 2020, la tendencia de crecimiento se dispara a un pico del 12% para luego normalizarse.
Estacionalidad: Se manifiesta en oscilaciones muy rítmicas y frecuentes en la línea gris, indicando que hay meses del año donde el crecimiento se acelera sistemáticamente.
Residuo (Ruido): El ruido es bajo comparado con otras variables, aunque en 2020 registra un valle de −20%. La recuperación es más “limpia” que en la Variable 1, regresando rápido a su media histórica.**
#Cálculo de la tasa de crecimiento anual correctamente alineada
tasa_crecimiento_var3 <- (variable3_ts[(13:length(variable3_ts))] / variable3_ts[1:(length(variable3_ts) - 12)] - 1) * 100
tasa_tendencia_var3 <- (tendencia_var3[(13:length(tendencia_var3))] / tendencia_var3[1:(length(tendencia_var3) - 12)] - 1) * 100
# Crear vector de fechas corregido
fechas_corregidas_var3 <- seq(from = as.Date("2013-01-01"), by = "month", length.out = length(tasa_crecimiento_var3))
# Verificar longitudes
print(length(fechas_corregidas_var3))
## [1] 144
print(length(tasa_crecimiento_var3))
## [1] 144
print(length(tasa_tendencia_var3))
## [1] 144
# Gráfico de la tasa de crecimiento anual variable 2
grafico_crecimiento_var3 <- ggplot() +
geom_line(aes(x = fechas_corregidas_var3, y = tasa_crecimiento_var3), color = "grey", size = 0.7) +
geom_line(aes(x = fechas_corregidas_var3, y = tasa_tendencia_var3), color = "black", size = 0.8, linetype = "dashed") +
ggtitle("Variable3: Tasa de crecimiento anual % de la serie Original y la tendencia") +
xlab("Tiempo") +
ylab("% de Crecimiento Anual") +
theme_minimal()
# Convertir a gráfico interactivo
ggplotly(grafico_crecimiento_var3)
**Analizar la tasa de crecimiento anual ayuda a detectar cambios en el entorno económico que afectan el sector. Se pueden prever crisis o períodos de auge y prepararse para ellos. Tendencia: A diferencia de las otras, esta tasa es cíclica y muy volátil. Pasa largos periodos en terreno negativo (−50% en 2015) y periodos de sobrecalentamiento extremo con una tendencia de crecimiento de hasta el 90% en 2022.
Estacionalidad: Se observa en los picos dentados de la línea gris, pero queda opacada por la magnitud de los movimientos de la tendencia.
Residuo (Ruido): Es extremadamente alto. La línea gris tiene desviaciones muy agresivas respecto a la tendencia (alcanzando picos de +180%), lo que indica que la velocidad de esta variable es altamente impredecible mes a mes.**