#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.
library(readxl)
data_col <- read_excel("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)

Extracción de señales

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)

Interpretacion

En base al gráfico se puede observar una tendencia creciente ya que el consumo de energía aumenta progresivamente a lo largo del tiempo.Sin embargo, la serie presenta fluctuaciones y variaciones constantes, lo que dificulta identificar un comportamiento completamente estable y hace que la interpretación final del consumo de energía sea menos precisa.

Es por esta razón que se hace una división de los datos en los siguientes componentes 1. estacional, 2. Residuo 3. Serie original y por último la Tendencia esto nos permitirá analizar su comportamiento de forma más detallada y precisa

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)

Interpretacion

  • Componente estacional

En el gráfico podemos observar que el componente estacional tiene algunos movimientos repetitivos y constantes en el tiempo, lo que indica que el consumo de energía presenta variaciones periódicas. Estas fluctuaciones se mantienen relativamente estables durante toda la serie.

  • componente residuo

El residuo es aquel que representa las variaciones aleatorias que no pueden ser explicadas por la tendencia ni la estacionalidad. En general los residuos están alrededor de cero; sin embargo, se observa un valor atípico fuerte en el año 2020, lo que evidencia un evento inusual (En efecto pandemia) que afectó significativamente el consumo de energía probablemente debido a que muchas empresas tuvieron que parar sus procesos de producción y por ende bajaron en gran medida el consumo de energía.

  • Serie original

La serie original refleja el comportamiento completo del consumo de energía, combinando tendencia, estacionalidad y variaciones aleatorias. Se observa un crecimiento progresivo del consumo, acompañado de fluctuaciones constantes y una caída abrupta cerca de 2020, seguida de una recuperación.

  • componente tendencia

La tendencia muestra la evolución de largo plazo de la serie. Se identifica un crecimiento sostenido en el consumo de energía, especialmente después de 2020, aunque en los últimos períodos se aprecia una ligera disminución o estabilización.

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)

Interpretacion

Análisis general de la descomposición temporal

La descomposición temporal de la variable 2(ISE- indice de seguimiento a la economia nacional) permite identificar el comportamiento de la serie a través de sus componentes de tendencia, estacionalidad y residuo. En general, la variable presenta un crecimiento progresivo a lo largo del tiempo, acompañado de patrones estacionales y algunas variaciones atípicas.

  • Componente estacional

La componente estacional muestra un patrón repetitivo y estable durante todo el período analizado, lo que indica que la variable presenta comportamientos periódicos constantes en determinados intervalos de tiempo.

  • Componente residuo

Los residuos oscilan alrededor de cero, lo que indica que gran parte del comportamiento de la serie es explicado por la tendencia y la estacionalidad. Sin embargo, alrededor del año 2020 se observa un valor atípico importante, reflejando una alteración inusual en la serie.

  • Serie original

La serie original evidencia una tendencia creciente en la variable, con fluctuaciones moderadas a lo largo del tiempo. También se aprecia una caída pronunciada cerca de 2020, seguida de una recuperación y posterior crecimiento.

  • Componente tendencia } La tendencia muestra un crecimiento sostenido de largo plazo. Aunque se presenta una disminución temporal alrededor de 2020, posteriormente la serie retoma su comportamiento ascendente hasta alcanzar los valores más altos al final del período analizado esto indica que la economía del país tras la caída del año 2020 ha podido recuperarse lenta y establemente y se espera y siga teniendo ese comportamiento en el futuro.

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)

Interpretacion

Análisis general de la descomposición temporal

La variable 3 (X_COMB- exportaciones de combustibles minerales ) presenta un comportamiento dinámico y con alta variabilidad a lo largo del tiempo. La descomposición temporal permite identificar cambios importantes en la tendencia, una estacionalidad marcada y residuos con fluctuaciones considerables.

  • Componente estacional

La componente estacional muestra patrones repetitivos constantes durante toda la serie, indicando la existencia de ciclos periódicos bien definidos. Además, las variaciones estacionales presentan una amplitud elevada, lo que evidencia una fuerte influencia de la estacionalidad sobre la variable.

  • Componente residuo

Los residuos presentan oscilaciones importantes alrededor de cero y algunos picos atípicos, lo que sugiere la presencia de eventos inesperados o factores externos no explicados por la tendencia ni la estacionalidad.

  • Serie original

La serie original evidencia cambios significativos en el comportamiento de la variable. Se observa una caída pronunciada alrededor de 2015, seguida de una recuperación parcial y posteriormente un aumento importante cercano a 2021. Después de este incremento, la serie muestra cierta estabilización con fluctuaciones moderadas.

  • Componente tendencia

La tendencia refleja variaciones de largo plazo no lineales. Inicialmente se observa una disminución importante, seguida de una etapa de recuperación y crecimiento hasta aproximadamente 2021, para luego presentar una ligera reducción hacia el final del período analizado.

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 = "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)

Interpretacion En la grafica se puede apreciar que el consumo de energia aumenta con los años teniendo en cuenta que la serie ajustada por estacionalidad elimina variaciones periodicas y esto nos permite visualizar con mas claridad el comportamiento real del consumo de energia. Se evidencia una fuerte caida alrededor del año 2020 posteriormente un recuperacion sostenida donde se alcanza los valores mas altos al final del periodo.

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 = "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)

Interpretacion

En este gráfico se observa que la serie ajustada por estacionalidad presenta diferencias con respecto a la serie original, lo que indica la presencia de efectos estacionales importantes en el PIB mensual de Colombia. Estas variaciones pueden estar relacionadas con periodos del año donde aumentan la producción y el consumo debido a celebraciones, temporadas comerciales o incrementos en la actividad económica. Además, se evidencia una fuerte caída en 2020, reflejando una recesión económica significativa; sin embargo, posteriormente la economía colombiana mostró una recuperación sostenida, alcanzando sus niveles más altos en los últimos años del periodo analizado.

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 = "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)

Interpretacion

En este gráfico podemos observar que las exportaciones de combustibles no presentan variaciones estacionales muy marcadas; sin embargo, han tenido bastantes fluctuaciones a lo largo de los años. Sus picos más altos se registran alrededor de 2012 y 2014. Posteriormente, en 2015 se evidencia una caída abrupta y, desde entonces, el comportamiento de la serie muestra una tendencia general hacia la baja, aunque con una lenta recuperación entre 2015 y 2019.

En el año 2020 las exportaciones volvieron a disminuir debido a los efectos de la pandemia. Desde 2021 hasta la actualidad se observa una mejora en su comportamiento, alcanzando nuevamente picos altos; sin embargo, la tendencia general parece indicar una posible disminución en el futuro.

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" = "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)

Interpretacion

La gráfica muestra que la variable de consumo de energia presenta una tendencia general creciente a lo largo del tiempo. Aunque la serie original tiene varias fluctuaciones, la línea de tendencia permite observar con mayor claridad el comportamiento de largo plazo. Además, se evidencia una caída fuerte alrededor del año 2020, seguida de una recuperación rápida y un aumento sostenido hasta alcanzar los valores más altos en los últimos años del periodo analizado.

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" = "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)

Interpretacion

La gráfica muestra que la variable ISE- Idice de seguimiento a la economia presenta una tendencia creciente a lo largo del tiempo. La serie original tiene fluctuaciones frecuentes, mientras que la línea de tendencia permite observar de manera más clara el crecimiento general de la variable. También se evidencia una caída importante alrededor de 2020, seguida de una recuperación sostenida en los años posteriores hasta alcanzar los niveles más altos al final del periodo analizado.

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" = "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)

Interpretacion

En la grafica podemos apreciar con mas claridad atraves de la tendencia que las exportaciones de combustibles minerales si ha tenido fluctuaciones muy marcadas donde en diferentes años tuvo recaidas, las mas fuertes año 2015(fuerte disminucion de los precios internacionales de pétroleo) y año 2020(efectos de pandemia) y su tendencia en la actulidad y en un futuro probalmente es que sigan disminuyendo las exportaciones.

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 = "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)

Interpretacion

Teniendo en cuenta que la tasa de crecimiento anual permite observar qué tanto aumenta o disminuye una variable de un año a otro en términos porcentuales, en la gráfica del consumo de energía se puede apreciar que en la mayoría de los años la tasa es positiva, lo que indica que la variable creció respecto al año anterior. Sin embargo, también se observan periodos donde la tasa es negativa, siendo el punto más bajo el año 2020 con una tasa de -5.06, reflejando una fuerte disminución en el consumo de energía. Posteriormente, la tasa presenta una recuperación, aunque con algunas fluctuaciones en los años siguientes.

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 = "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)

Interpretacion

La tasa de crecimiento anual del PIB mensual de Colombia permite observar cómo ha variado la actividad económica de un año a otro en términos porcentuales. En la mayoría de los periodos la tasa presenta valores positivos, indicando crecimiento económico. Sin embargo, también se observan fluctuaciones importantes a lo largo del tiempo, lo que refleja cierta volatilidad en el comportamiento del PIB.

El cambio más notable ocurre en 2020, donde la tasa de crecimiento presenta una fuerte caída y alcanza valores negativos debido al impacto económico de la pandemia. Posteriormente, en los años siguientes se evidencia una recuperación significativa, con tasas positivas que muestran el restablecimiento de la actividad económica y un crecimiento sostenido del PIB mensual.

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 = "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)

Interpretacion

En esta gráfica podemos observar un comportamiento diferente al de la variable anterior, ya que la tasa de variación permanece mayormente en valores negativos. Sin embargo, también se presentan algunos picos positivos importantes, alcanzando su valor más alto en el año 2022 con una tasa de 91.31. Posteriormente, hacia el año 2025 se observa nuevamente una recaída, manteniéndose la tasa en valores negativos hasta la actualidad. Además, se pueden identificar los puntos más bajos en los años 2015 y 2020, periodos en los que la tasa de crecimiento fue inferior a la de los años anteriores.

conclusiones

En conclusión, las variables analizadas muestran comportamientos diferentes, aunque todas presentan fluctuaciones importantes a lo largo del tiempo. El consumo de energía y el PIB mensual evidencian una tendencia creciente con una fuerte caída en 2020 y posterior recuperación. Por otro lado, las exportaciones de combustibles minerales muestran mayor volatilidad y una tendencia más inestable debido a factores externos como los precios del petróleo. En general, el análisis permite identificar periodos de crecimiento, crisis y recuperación en la economía colombiana.