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
library(readxl)
data_col <- read_excel("~/Desktop/Pontificia Universiad Javeriana/5 Semestre/Analít. de Datos para la Toma de Decis/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 = "cyan1", linewidth = 0.4) + # Cambiado 'size' por 'linewidth'
geom_point(color = "deeppink", size = 0.1) +
ggtitle("Variable 1: Serie original") +
xlab("Tiempo") +
ylab("Unidad Variable 1") +
theme_minimal()
ggplotly(grafico_serie)
Esta gráfica representa la evolución del nivel de actividad de la Variable 1 entre 2012 y 2024, operando en un rango de 1.500 a 2.250 unidades. Se identifica una trayectoria de crecimiento secular con una ciclidad mensual muy marcada, loq ue indica que el indicador responde a factores de calendario recurrentes. El hallazgo más significativo es la contracción severa ocurrida en el primer semestre 2020, donde el índice rompe su soporte histórico para caer a níveles mínimos. Este comportamiento es un reflejo directo de lo observado en la base de datos para sectores industriales; por ejemplo, la producción de concreto sufrió un desplome del 94.7% en apenas dos meses, pasando de 575,767 unidades en febrero de 2020 a solo 30,559 en abril del mismo año.
Extracción señales variable 1
# 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)
El proceso de descomposición STL permite aislar los componentes que integran la serie. El panes “Estacional” muestra una oscilación constante de alta frecuencia, confirmando que la Variable 1 tiene meses de auge y caída predecibles dentro de cada año. El panel de “Residuo” revela la magnitud del choque de 2020, mostrando una desviación negativa sin precedentes que no puede ser explicada por la tendencia ni por la estación. Por último, el panel de “Tendencia” evidencia que, a pesar de la volatilidad extrema de corto plazo, la variable posee una inercia de crecimiento robusta que logró estabilizarse y retomar su senda alcista hacia finales de 2021, cerrando 2024 en niveles máximos históricos.
Extracción señales variable 2
# 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)
La Variable, cuya escala (80 a 140) coincide con el comportamiento del índice de Precios al Consumidor (IPC), muestra una estructura estadística muy distinta. El componente “Estacional” tiene una amplitud mínima, lo que indica que esta variable no se ve afectada significativamente por la época del año. En contraste, el componente de “Tendencia” muestra una pendiente positiva casi ininterrumpida que se acelera notablemente a partir de 2021. Al cruzar con los datos, observamos que el IPC comenzó en 76.8 en enero de 2012 y escaló de forma persistente hasta alcanzar 144.9 en diciembre de 2024, validando la trayectoria lineal ascendente.
Extracción señales variable 3
# 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)
Esta visualización analiza la Variable 3, que se mueve en una escala de millones (1 a 4 millones) y corresponde a los flujos de Importaciones (M) o LICC. La descomposición revela una serie sumamente errática donde el panel de “Residuo” presenta la mayor volatilidad de todas las variables, indicando una alta sensibilidad a choques externos impredecibles. La “Tendencia” no es lineal; muestra un pico de expansión hacia 2014, seguido de una fase de estancamiento y una recuperación agresiva post-2020. Esto guarda relación con la TRM (Tasa de Cambio), que en el excel muestra una devolución constante, pasando de un promedio de $1.847 en 2012 a superar los $4.800 en 2022, afectando los volúmenes de importación reflejados en esta tendencia.
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
# 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 = "cyan1", size = 0.5, linetype = "solid", name = "Serie Original") +
geom_line(aes(x = fechas_var1, y = variable1_sa), color = "deeppink", 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)
Se compara la serie bruta (la de color cyan) con la serie ajustada por estacionalidad (fucsia). El ajuste estacional es una técnica estadística que “limpia” la serie de los efectos de meses tradicionalmente altos o bajos para observar la salud real de la variable. El ajuste estacional revela que la caída de 2020 fue tan profunda que ni el ajuste estacional pudo suavizarla, pero también permite ver una fase de recuperación en “V”limpia, donde la economía industrial tardó aproximadamente 18 meses en volver a los niveles de equilibrio que mantenía anres de la crisis de 2020.
Gráfico serie original VS ajustada Variable 2
# 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 = "cyan1", size = 0.5, linetype = "solid", name = "Serie Original") +
geom_line(aes(x = fechas_var2, y = variable2_sa), color = "deeppink", 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)
Para los indicadores de precios, la serie original y la ajustada son prácticamente idénticas, lo que estadísticamente confirme la ausencia de ciclos estacionales significativos. Lo que resalta está gráfica es la inflexibilidad de la variable; a diferencia de los indicadores de volumen, los precios no muestran retrocesos estacionales. La línea de “Tendencia” (fucsi) confirma un camabio de velocidad estructural desde 2021, donde la tendencia de los precios entra en una fase de crecimiento acelerado constante, validando los datos del IPC que suben mes tras mes sin interrupción en la base de datos
Gráfico serie original VS ajustada Variable 3
# 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 = "cyan1", size = 0.5, linetype = "solid", name = "Serie Original") +
geom_line(aes(x = fechas_var3, y = variable3_sa), color = "deeppink", 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)
Debido a que el comercio exterior presenta picos muy altos en meses específicos (como se observa en las importaciones de fin de año), el ajuste estacional es funda,ental para este análisis. La línea fucsia “Tendencia” (ajustada) revela que el volumen de comercio real experimentó un crecimiento explosivo entre 2021 y 2022. Aunque la serie original muestra caídas puntuales a incios de cada año, la serie ajustada demuestra que el flujo comercial de la Variable ha escalado a un nuevo nivel operativo cercano a los 4 millones de unidades, muy superior al promedio de la década anterior.
Ahora graficamos serie original vs tendencia
Primero se debe obtener la tendencia de cada variable y luego graficarla
Tendencia Variable 1
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" = "cyan1", "Tendencia" = "deeppink")) +
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)
Esta visualización compara la producción con su tendencia de largo plazo, eliminando tanto el ruido estacional como los choques aleatorios. La línea de “Tendencia” representa la capacidad productiva estructural. Se observa un crecimiento estable hasta 2019, una correción profunda en 2020 y una recuperación posterior. Estadísticamente, esto indica que el sistema económico que genera esta variable pudo abosrber el impacto del choque externo y retornar a su trayectoria de crecimiento poryectada, cerrando 2024 con una tendencia que supera los niveles históricos de 2012.
Tendencia Variable 2
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" = "cyan1", "Tendencia" = "deeppink")) +
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)
La tendencia de la Variable 2 muestra un quiebre estructural de pendiente en 2021. Mientras que entre 2012 y 2020 la tendencia subía a un ritmo moderado, a partir de 2021 la inclinación de la curva de “Tendencia” se vuelve drásticamente más pronunciada. Este fenómeno es consistente con la presión inflacionaria acumulada en los datos, donde variables de consumo como el “Pollo” también muestran incrementos de nivel importantes, pasando de niveles de 91,721 en 2012 a 156.027 en 2024, lo que valida la aceleración de la tendencia capturada en la gráfica.
Tendencia Variable 3
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" = "cyan1", "Tendencia" = "deeppink")) +
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)
Para los grandes volúmenes de comercio, la tendencia revela los ciclos macroeconómicos de largo aliento. Se identifica un periodo de auge que termina en 2014, una fase de enfriamiento que dura hasta 2020, y un rebote masivo reciente. Esta gráfica permite concluir que los flujos de la Variable 3 no son lineales, sino cíclicos. La brecha entre la serie original y la tendencia hacia finales de 2024 sugiere que la variable está en un proceso de estabilización tras alcanzar un pico histórico de tendencia cercano a los 4 millones
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
#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 = "cyan1", size = 0.7) +
geom_line(aes(x = fechas_corregidas_var1, y = tasa_tendencia_var1), color = "deeppink", 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)
Esta gráfica mide la velocidad de cambio de la producción industrial. Se observa un pico porcentual de casi el 40% en 2021. Es vital interpretar esto como un “efecto base” estadístico; al haber caído a niveles tan bajos en 2020 (como el caso del concreto citado anteriormente), el retorno a la normalidad se registra como una tasa de crecimiento excepcional. La línea punteada (tasa de la tendencia) muestra una realidad más moderada y realista, situando el crecimiento estructural en un rango sostenible del 5% al 10% anual tras el efecto rebote
Ahora calculamos la tasa de crecimiento de la serie original vs tendencia: variable 2
#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 = "cyan1", size = 0.7) +
geom_line(aes(x = fechas_corregidas_var2, y = tasa_tendencia_var2), color = "deeppink", 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)
En el análisis de las tasas de crecimiento de los precios, se destaca que la tasa de la tendencia (línea punteada fucsia) se mantuvo baja durante casi una década. Sin embargo, en el periodo 2022-2023, esta tasa se disparó por encima del 10% anual. Esto indica una aceleración nominal significativa en la economía. A diferencia de las otras variables, esta tasa no muestra una caída negativa en 2020, sino un aumento persistente en la velocidad del costo de vida, lo que representa el mayor cambio de ritmo en toda la base de datos analizada
Ahora calculamos la tasa de crecimiento de la serie original vs tendencia: variable 3
#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 = "cyan1", size = 0.7) +
geom_line(aes(x = fechas_corregidas_var3, y = tasa_tendencia_var3), color = "deeppink", 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)
Presenta las tasas de crecimiento de los grandes volúmenes de comercio. Debido a la magnitud de los flujos, las variaciones porcentuales son extremas, con picos que superan el 100% de crecimiento anual en 2021. Este comportamiento es típico de variables que se detuvieron por completo durante 2020 y se reactivaron con fuerza. La tendencia de la tasa de crecimiento (línea punteada) muestra que, tras la volatilidad extrema de la reapertura, la Variable 3 está convergiendo nuevamente a tasas de crecimiento más estables, aunque sigue siendo el indicador con los cambios de velocidad más bruscos del informe
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.
El análisis integral del periodo 2012-2024 demuestra que la economía ha logrado superar el colapso operativo de 2020 marcado por el desplome drástico en la producción de “concreto” de 575,767 a 30,559 unidades entre febrero y abril de ese año— consolidando una recuperación industrial en “V” que llevó a la Variable 1 a superar niveles de 2100 puntos hacia finales de 2024. No obstante, esta resiliencia productiva coexiste con un preocupante quiebre estructural en la estabilidad de precios (Variable 2), donde el “IPC” aceleró su pendiente a partir de 2021 hasta alcanzar un valor de 144.9 en diciembre de 2024, duplicando su tasa de crecimiento de tendencia del 5% a más del 10% anual. Esta presión nominal se vincula directamente con la volatilidad de la “TRM”, que escaló de $1,847 en 2012 a superar los $4,800 en 2022, provocando que los flujos de importación (Variable 3) registraran picos de crecimiento superiores al 100% en 2021 antes de estabilizarse en una escala de cuatro millones de unidades. Mientras que sectores como el avícola mantuvieron un crecimiento lineal y estable, el diagnóstico final de las tendencias procesadas en R revela una economía que ha recuperado sus volúmenes históricos pero bajo un nuevo paradigma de costos elevados y alta sensibilidad a choques externos.
By Dxi’jana Campo Quiroz