Introducción

Para este trabajo se escogió el sector turístico y hotelero, ya que es un sector que tiene una relación muy fuerte con la economía, la movilidad y el comportamiento de las personas. Además, en ciudades como Cali el turismo ha venido creciendo gracias a eventos, actividades culturales y el aumento de visitantes nacionales, por lo que resulta interesante analizar cómo diferentes variables pueden afectar su comportamiento a lo largo del tiempo.

Con base en esto, se planteó la empresa hipotética Cali Experience, una empresa enfocada en ofrecer experiencias turísticas dentro de la ciudad, incluyendo paquetes turísticos, experiencias gastronómicas, reservas hoteleras y transporte turístico local. La idea de esta empresa es aprovechar el crecimiento del turismo urbano en Cali y entender cómo distintos factores externos pueden impactar su desempeño.

Las variables seleccionadas para el análisis fueron OCUP_HOTEL_CALI, PEAJE_CALI e ICC_CALI. La ocupación hotelera fue escogida porque permite medir directamente el nivel de actividad turística y el flujo de visitantes en la ciudad. Por otro lado, la variable de peajes se eligió porque funciona como un indicador de movilidad regional, lo que ayuda a identificar posibles aumentos o disminuciones en los desplazamientos de personas hacia Cali. Finalmente, se seleccionó el Índice de Confianza del Consumidor debido a que el turismo depende mucho de la percepción económica de las personas y de su disposición a gastar en actividades de entretenimiento y viajes.

A partir de estas variables se realizará un análisis de extracción de señales y comportamiento conjunto, con el objetivo de identificar tendencias, patrones y posibles relaciones que permitan desarrollar conclusiones y recomendaciones estratégicas para la empresa hipotética planteada.

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("~/Downloads/data_col.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$OCUP_HOTEL_CALI, start = c(2012, 1), frequency = 12)

Variable 2

# Convertir/declarar el ISE en serie de tiempo  mensual
variable2_ts <- ts(data_col$PEAJE_CALI, start = c(2012, 1), frequency = 12)

Variable 3

# Convertir/declarar las exportaciones de combustibles en serie de tiempo mensual
variable3_ts <- ts(data_col$ICC_CALI, start = c(2012, 1), frequency = 12)

Extracción señales variable 1

Gráfico inicial de Ocupacion Hotelera en Cali 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)

Interpretación de la serie original de OCUP_HOTEL_CALI

En esta gráfica se observa el comportamiento mensual de la ocupación hotelera en Cali entre 2012 y 2025. En términos generales, la serie se mantiene en niveles relativamente estables antes de 2020, con valores cercanos al rango de 50% a 65%, lo que muestra una dinámica turística constante en la ciudad. Sin embargo, se evidencia una caída muy fuerte alrededor de 2020, donde la ocupación llega a niveles mínimos. Este comportamiento puede asociarse con el impacto de la pandemia del COVID-19, que afectó directamente la movilidad, los viajes y la actividad hotelera.

Después de esa caída, la serie muestra una recuperación progresiva, especialmente desde 2021 en adelante, hasta volver a niveles similares a los observados antes de la pandemia. Para Cali Experience S.A.S., esta señal es importante porque muestra que la ocupación hotelera es sensible a choques externos, pero también tiene capacidad de recuperación. Por esta razón, la empresa debería monitorear esta variable para identificar temporadas de mayor demanda y ajustar su oferta de paquetes turísticos, alianzas hoteleras y campañas comerciales.

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)

Interpretación de la descomposición temporal de OCUP_HOTEL_CALI

En la descomposición de esta variable se puede observar que sí existe un comportamiento estacional, ya que hay patrones que se repiten durante varios periodos del tiempo. Esto puede relacionarse con temporadas turísticas, vacaciones o eventos que aumentan la llegada de visitantes a Cali.

También se observa una caída muy fuerte alrededor del año 2020 y posteriormente una recuperación gradual de la ocupación hotelera. Esto probablemente está relacionado con el impacto que tuvo la pandemia sobre el turismo y la movilidad.

Por otro lado, los residuos muestran variaciones que no son explicadas completamente por la tendencia o la estacionalidad, lo que indica que existen factores externos que también afectan el comportamiento de la serie.

Para Cali Experience, este análisis es útil porque permite identificar temporadas donde la demanda turística puede aumentar o disminuir y así planear mejor promociones, alianzas y campañas comerciales.

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)

Interpretación de la descomposición temporal de PEAJE_CALI

En esta descomposición se observa que la variable presenta un comportamiento estacional bastante marcado, lo que indica que existen periodos del año donde la movilidad vehicular aumenta y otros donde disminuye. Esto puede relacionarse con temporadas vacacionales, viajes regionales y mayor flujo de personas hacia Cali.

La tendencia general también muestra un crecimiento a lo largo del tiempo, lo que podría indicar un aumento progresivo en la movilidad y en el tránsito regional. Sin embargo, se observa una caída fuerte alrededor de 2020, probablemente asociada a las restricciones de movilidad durante la pandemia.

Además, los residuos muestran algunas variaciones irregulares que indican que existen factores externos que afectan temporalmente el comportamiento normal de la serie.

Para Cali Experience, esta variable es importante porque puede servir como una señal indirecta del movimiento de visitantes y ayudar a identificar momentos donde la demanda turística podría aumentar.

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)

Interpretación de la descomposición temporal de ICC_CALI

En esta descomposición se observa que el ICC_CALI tiene una tendencia más inestable que las otras variables. Antes de 2016 la confianza del consumidor se mantiene en niveles relativamente positivos, pero luego empieza a caer y llega a uno de sus puntos más bajos alrededor de 2020. Después de ese periodo, la tendencia muestra una recuperación gradual, especialmente hacia los años más recientes.

El componente estacional indica que la confianza también tiene ciertos patrones que se repiten durante el año, aunque su comportamiento parece estar más afectado por cambios económicos y sociales. Los residuos muestran variaciones irregulares, lo que confirma que esta variable puede cambiar por factores externos como inflación, empleo, incertidumbre económica o expectativas de los consumidores.

Para Cali Experience, esta señal es importante porque el turismo depende mucho de la disposición de las personas a gastar. Si la confianza del consumidor mejora, puede haber mayor interés en viajes, ocio y experiencias turísticas; pero si cae, la empresa debería ofrecer planes más económicos y promociones.

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)

Interpretación de la serie ajustada por estacionalidad de OCUP_HOTEL_CALI

En esta gráfica se compara la serie original con la serie ajustada por estacionalidad. Se puede observar que ambas mantienen un comportamiento muy similar, lo que indica que la estacionalidad sí influye en la variable, aunque no explica completamente todos sus cambios.

Además, la caída presentada alrededor de 2020 sigue siendo visible incluso después del ajuste estacional, lo que muestra que se trató de un choque externo importante y no simplemente de un comportamiento normal de la serie. Para Cali Experience, este análisis ayuda a diferenciar entre cambios normales del turismo y eventos extraordinarios que pueden afectar la demanda.

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)

Interpretación de la serie ajustada por estacionalidad de PEAJE_CALI

En esta gráfica se observa que la serie ajustada mantiene un comportamiento muy parecido a la serie original, lo que indica que la tendencia general de la movilidad vehicular se conserva incluso después de eliminar el efecto estacional.

También se evidencia una caída fuerte alrededor de 2020, relacionada probablemente con las restricciones de movilidad durante la pandemia. Después de ese periodo, la variable muestra una recuperación y una tendencia creciente en los años más recientes.

Para Cali Experience, este análisis es importante porque permite identificar cambios reales en la movilidad regional y no solamente variaciones normales asociadas a ciertas épocas del año.

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)

Interpretación de la serie ajustada por estacionalidad de ICC_CALI

En esta gráfica se observa que la serie ajustada mantiene un comportamiento muy parecido al de la serie original, lo que indica que la estacionalidad no explica completamente las variaciones del ICC_CALI. Esto sugiere que la confianza del consumidor está más influenciada por factores económicos y sociales externos.

También se puede notar una caída importante alrededor de 2020 y una recuperación gradual en los años posteriores. Este comportamiento puede relacionarse con cambios en la situación económica, inflación, empleo y percepción de estabilidad por parte de los consumidores.

Para Cali Experience, esta variable es importante porque permite entender cómo cambia la disposición de las personas a gastar en actividades de turismo, entretenimiento y ocio.

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)

Interpretación de la tendencia de OCUP_HOTEL_CALI

En esta gráfica se observa que la tendencia de la ocupación hotelera se mantuvo relativamente estable antes de 2020, con pequeñas variaciones a lo largo del tiempo. Sin embargo, se presenta una caída muy fuerte durante 2020, seguida de una recuperación progresiva en los años posteriores.

Esto muestra que la actividad turística en Cali fue fuertemente afectada por un choque externo, pero también que el sector logró recuperarse gradualmente. Para Cali Experience, esta tendencia es importante porque permite identificar periodos donde la demanda turística puede crecer o disminuir y así ajustar estrategias comerciales y promociones según el comportamiento esperado del mercado.

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)

Interpretación de la tendencia de PEAJE_CALI

En esta gráfica se observa una tendencia general creciente en la variable PEAJE_CALI, lo que indica que la movilidad vehicular y el flujo de tránsito hacia Cali han aumentado con el tiempo. Aunque existen algunas caídas y variaciones fuertes en ciertos periodos, la tendencia logra mantenerse y recuperarse posteriormente.

También se evidencia una disminución importante alrededor de 2020, probablemente relacionada con las restricciones de movilidad durante la pandemia. Sin embargo, después de ese periodo la serie muestra nuevamente un crecimiento.

Para Cali Experience, esta tendencia puede interpretarse como una señal positiva, ya que un mayor movimiento de personas podría relacionarse con un aumento potencial de visitantes y actividad turística en la ciudad.

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)

Interpretación de la tendencia de ICC_CALI

En esta gráfica se observa que la tendencia del ICC_CALI presenta varios cambios a lo largo del tiempo. Inicialmente la confianza del consumidor se mantiene en niveles positivos, pero después comienza una caída importante que se hace más fuerte alrededor de 2020. Posteriormente, la serie muestra una recuperación gradual en los años más recientes.

Esto indica que la percepción económica de los consumidores ha sido sensible a diferentes cambios económicos y sociales. Además, la recuperación observada hacia el final de la serie podría reflejar una mejora en las expectativas económicas y en la disposición de las personas a consumir.

Para Cali Experience, esta tendencia es importante porque la confianza del consumidor puede influir directamente en la decisión de gastar en turismo, entretenimiento y actividades recreativas.

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] 156
print(length(tasa_crecimiento_var1))
## [1] 156
print(length(tasa_tendencia_var1))
## [1] 156

*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)

Interpretación de la tasa de crecimiento anual de OCUP_HOTEL_CALI

En esta gráfica se observa que la tasa de crecimiento anual de la ocupación hotelera se mantuvo relativamente estable durante varios años. Sin embargo, alrededor de 2020 se presenta una caída muy fuerte, seguida de un crecimiento acelerado en los periodos posteriores como parte de la recuperación del sector turístico.

Después de ese pico de recuperación, la tasa de crecimiento comienza a estabilizarse nuevamente cerca de valores normales. Esto muestra que el comportamiento extremo observado en esos años estuvo relacionado con un evento extraordinario y no con la dinámica habitual de la serie.

Para Cali Experience, este análisis permite identificar periodos donde el turismo presenta cambios fuertes y así anticipar mejor estrategias comerciales y operativas.

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] 156
print(length(tasa_crecimiento_var2))
## [1] 156
print(length(tasa_tendencia_var2))
## [1] 156
# 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)

Interpretación de la tasa de crecimiento anual de PEAJE_CALI

En esta gráfica se observa que la tasa de crecimiento anual de PEAJE_CALI se mantiene relativamente estable durante la mayor parte del periodo analizado. Sin embargo, aparece un pico extremadamente alto alrededor de 2022, lo que probablemente está relacionado con un valor atípico o con una recuperación muy fuerte después de la caída generada por la pandemia.

Debido a que este crecimiento es mucho más alto que el comportamiento normal de la serie, debe interpretarse con cuidado, ya que puede distorsionar el análisis general de la variable.

Para Cali Experience, esta gráfica muestra que la movilidad regional ha tenido cambios importantes en ciertos periodos, lo que puede influir indirectamente sobre la llegada de visitantes y la actividad turística en la ciudad.

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] 156
print(length(tasa_crecimiento_var3))
## [1] 156
print(length(tasa_tendencia_var3))
## [1] 156
# 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)

Interpretación de la tasa de crecimiento anual de ICC_CALI

En esta gráfica se observa que la tasa de crecimiento anual del ICC_CALI presenta varias fluctuaciones fuertes a lo largo del tiempo, especialmente en algunos periodos donde aparecen picos muy altos y caídas pronunciadas. Esto muestra que la confianza del consumidor puede cambiar rápidamente frente a situaciones económicas o sociales.

Además, se evidencia que después de los años más críticos la serie empieza a estabilizarse nuevamente, aunque sigue mostrando cierta volatilidad en comparación con las otras variables analizadas.

Para Cali Experience, este comportamiento es importante porque cambios fuertes en la confianza del consumidor pueden afectar directamente la disposición de las personas a gastar en turismo, entretenimiento y actividades recreativas.

#Conclusion Final

A partir del análisis realizado, se puede concluir que el comportamiento del sector turístico en Cali está influenciado por diferentes factores relacionados con la demanda turística, la movilidad y la percepción económica de los consumidores. Las tres variables analizadas mostraron cambios importantes a lo largo del tiempo, especialmente alrededor de 2020, donde se evidenció un impacto fuerte sobre el turismo, la movilidad y la confianza de las personas.

La ocupación hotelera mostró una recuperación progresiva después de la caída presentada durante la pandemia, lo que indica que el sector turístico en Cali logró recuperarse gradualmente en los años posteriores. De igual manera, la variable PEAJE_CALI presentó una tendencia creciente en el largo plazo, lo que puede interpretarse como un aumento en la movilidad regional y en el flujo de personas hacia la ciudad. Por otro lado, el ICC_CALI mostró un comportamiento más inestable, reflejando cómo la confianza del consumidor puede verse afectada rápidamente por cambios económicos y sociales.

Además, la información externa coincide con varios de los resultados encontrados en las gráficas. Según datos de la Alcaldía de Cali, eventos como la COP16 generaron niveles altos de ocupación hotelera y un aumento importante de visitantes, mostrando cómo ciertos eventos pueden impulsar significativamente el turismo en la ciudad. También, reportes de Fedesarrollo muestran que cuando mejora la confianza del consumidor, aumenta la disposición de las personas a gastar en actividades relacionadas con entretenimiento, recreación y viajes.

En conjunto, las señales analizadas permiten entender que el turismo no depende únicamente de la cantidad de visitantes, sino también de factores económicos y de movilidad que afectan el comportamiento de las personas. Por esta razón, Cali Experience podría usar este tipo de información para tomar decisiones más estratégicas dependiendo del comportamiento de las variables.

Por ejemplo, en periodos donde aumenten la ocupación hotelera y la movilidad regional, la empresa podría fortalecer campañas promocionales, alianzas con hoteles y paquetes turísticos más completos. En cambio, cuando la confianza del consumidor disminuya, sería más conveniente enfocarse en promociones, experiencias más económicas o estrategias dirigidas al turismo local y regional.

Finalmente, este análisis permitió ver cómo las series de tiempo y la extracción de señales pueden ayudar a entender mejor el comportamiento del sector turístico y servir como apoyo para la toma de decisiones dentro de una empresa.