Introducción

En este informe, se realizará un análisis de series temporales: *1) Extracción de señales o descomposición de series temporales y 2) Pronóstico del número de microempresas nuevas en Cali. El periodo de análisis es desde el primer trimestre de 2004 (1T2004) y el cuarto trimestre de 2024 (4T2024).

El análisis de series temporales permite identificar patrones subyacentes en los datos, como tendencias, estacionalidad y componentes irregulares, lo que facilita una mejor comprensión del comportamiento de la variable a analizar. Para ello, se emplearán técnicas estadísticas o métodos de descomposición y el Modelo ARIMA con el fin de extraer información clave que pueda contribuir a la toma de decisiones estratégicas.

A lo largo del informe, se presentarán los resultados obtenidos y se discutirán sus implicaciones en el contexto empresarial de Cali.

Puntualmente, el análisis de la creación de microempresas en Cali es clave para la planificación económica y la toma de decisiones estratégicas. Identificar patrones y tendencias en estos datos ayuda a mejorar las condiciones para los emprendedores y fortalecer el desarrollo económico local.

Análisis exploratorio de la variable

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

Cargar base de datos

library(readxl)
data_col <- read_excel("C:/Stv/Apv/Caso Ejemplo trimestral/MICRO.xlsx", 
    col_types = c("date", "numeric"))
View(data_col)

Un paso indispensable es declarar la variable como serie temporal:

# Convertir/declarar el número de microempresas en serie de tiempo trimestral
micro_ts <- ts(data_col$MICRO, start = c(2004, 1), frequency = 4)
(micro_ts)
##      Qtr1 Qtr2 Qtr3 Qtr4
## 2004 4064 3394 3282 1951
## 2005 2956 3188 3768 1812
## 2006 3436 3241 3267 2058
## 2007 4327 3408 3255 2168
## 2008 3592 3300 3489 2090
## 2009 3281 3027 3328 2340
## 2010 3503 3205 3469 2006
## 2011 3493 3503 3457 2131
## 2012 3847 3412 3447 2224
## 2013 3462 3739 3896 2715
## 2014 4406 3686 3900 3122
## 2015 3609 3460 3784 2459
## 2016 4299 4072 4276 2769
## 2017 5106 3896 3956 2618
## 2018 5009 4406 4349 3481
## 2019 6508 5169 5488 3510
## 2020 6046 2600 6156 4396
## 2021 6197 3860 4803 3956
## 2022 6210 4869 5785 3700
## 2023 5362 4409 4485 3087
## 2024 4939 4530 4473 3150

Ahora si calculamos estadísticas descriptivas

En la tabla siguiente se observa lo siguiente:

  • En promedio, cada trimestre se han creado alrededor de 3760 microempresas. Este es un valor de referencia para entender el comportamiento típico.

  • La mediana indica que la mitad de los trimestres tuvieron menos de 3506.5 microempresas nuevas y la otra mitad tuvo más. Como está un poco por debajo de la media, sugiere que hay algunos valores altos que están elevando el promedio.

  • Existe una variabilidad notable en la cantidad de microempresas nuevas por trimestre. Un valor de 1052 indica que los datos fluctúan bastante alrededor del promedio.

  • la variabilidad relativa de la serie no es excesivamente alta. Un 27.99% implica que, aunque hay oscilaciones, los datos no son extremadamente dispersos respecto al promedio.

# Calcular estadísticas descriptivas básicas
descriptive_stats <- data.frame(
  Min = min(micro_ts),
  Max = max(micro_ts),
  Media = mean(micro_ts),
  Mediana = median(micro_ts),
  DesviacionEstandar = sd(micro_ts),
  CoefVar = sd(micro_ts) / mean(micro_ts)
)
print(descriptive_stats)
##    Min  Max  Media Mediana DesviacionEstandar   CoefVar
## 1 1812 6508 3760.5  3506.5           1052.423 0.2798625

Exploramos el comportamiento o evolución de la variable:

En la Figura 1. destaca lo siguiente:

  • A partir de 2015 el número de microempresas nuevas aumenta significativamente. Sin embargo, a medida que el número de microempresas aumenta, también crecen las fluctuaciones entre trimestres. Hay períodos con picos muy altos y caídas pronunciadas.

*Hacia el final de la serie se nota una caída en el número de microempresas. Podría estar asociado a factores económicos como inflación, desaceleración económica o menor acceso a financiamiento para emprendedores.

Por tanto, la Figura 1, sugiere que la creación de microempresas en Cali ha aumentado a lo largo del tiempo, pero con fuertes fluctuaciones. Es clave analizar qué factores han impulsado los picos y qué ha causado las caídas recientes, para entender mejor el ecosistema emprendedor de la ciudad.

# Gráfico interactivo de la serie original
grafico_serie <- ggplot(data_col, aes(x = seq.Date(from = as.Date("2004-01-01"), by = "quarter", length.out = nrow(data_col)), y = micro_ts)) +
  geom_line(color = "grey", size = 0.4) +
  geom_point(color = "black", size = 0.1) +
  ggtitle("Figura 1.Evolución de las microempresas en Cali") +
  xlab("Tiempo") +
  ylab("Número de microempresas") +
  theme_minimal()
ggplotly(grafico_serie)

Extracción de señales

*Muchas series de tiempo son una combinación de varias influencias. Es por eso que, separar la tendencia, la estacionalidad y los componentes aleatorios permite entender mejor qué está impulsando los cambios en la serie.

Si analizamos la creación de microempresas en Cali, podríamos querer saber si el crecimiento se debe a una tendencia real o a fluctuaciones estacionales.

  • Los modelos de pronóstico funcionan mejor cuando las señales subyacentes están bien definidas. Por ejemplo, si eliminamos la estacionalidad de una serie financiera, los modelos predictivos pueden enfocarse en la tendencia real y reducir errores.

*Detectar cambios inesperados en la serie es más fácil cuando se eliminan componentes predecibles. Ejemplo: Si hay una caída abrupta en el número de microempresas, podemos verificar si es una anomalía (ruido) o un cambio estructural en la economía.

En conclusión, la descomposición de series de tiempo permite comprender mejor los datos, mejorar predicciones y tomar decisiones más estratégicas. Es una herramienta clave en la analítica de negocios, especialmente en entornos donde las fluctuaciones en los datos pueden afectar inversiones, políticas económicas y estrategias empresariales.

# Cargar librerías necesarias
library(ggplot2)
library(plotly)

# Descomposición de la serie temporal
stl_decomp <- stl(micro_ts, s.window = "periodic")

# Convertir la descomposición a un data frame para graficar con ggplot2
stl_df <- data.frame(
  Time = rep(time(micro_ts), 4),  # Tiempo repetido para cada componente
  Value = c(stl_decomp$time.series[, "seasonal"], 
            stl_decomp$time.series[, "trend"], 
            stl_decomp$time.series[, "remainder"], 
            micro_ts),
  Component = rep(c("Estacional", "Tendencia", "Residuo", "Serie Original"), each = length(micro_ts))
)

# Crear gráfico con ggplot2
p <- ggplot(stl_df, aes(x = Time, y = Value, color = Component)) +
  geom_line() +
  facet_wrap(~Component, scales = "free_y", ncol = 1) + 
  theme_minimal() +
  labs(title = "Figura A. Descomposición del número de microempresas en Cali",
       x = "Tiempo",
       y = "Valor")

# Convertir a gráfico interactivo con plotly
ggplotly(p)

Interpretación Figura A.Descomposición temporal

Componente estacional

Muestra patrones recurrentes a lo largo del tiempo. La interpretación de este componente es clave para entender fluctuaciones predecibles dentro de cada período analizado.

  • Las caidas o incrementos del gcomponente estacional ocurren a intervalos similares (Primer trimestre y cuarto trimestre de cada año), lo que indica que el comportamiento estacional se mantiene a lo largo del tiempo.

  • Así, el componente estacional sugiere que hay fluctuaciones repetitivas en la creación de microempresas en Cali a lo largo de cada año. Comprender estos patrones permite ajustar estrategias de apoyo al emprendimiento y realizar pronósticos más precisos para futuras decisiones económicas. También puede ayudar a prever en qué períodos del año se espera un menor número de empresas y planificar estrategias para mitigar estos efectos.

Graficamos serie original VS ajustada por estacionalidad

En la Figura 2, se observa que en la serie ajustada por estacionalidad se pueden apreciar con mayor precisión cambios estructurales, facilitando el análisis sin la interferencia de variaciones temporales recurrentes.

Estos análisis permiten diseñar estrategias de apoyo al emprendimiento basadas en datos reales, sin sesgos estacionales. Además, proporciona información clave para la toma de decisiones estratégicas en el sector de microempresas y, mejora la precisión de las estimaciones futuras al eliminar patrones estacionales que podrían distorsionar los análisis.

En conclusión, la descomposición de la serie temporal no solo facilita la identificación de tendencias de largo plazo, sino que también permite tomar decisiones más informadas, anticipando oportunidades y riesgos en el sector de las microempresas en Cali

# Extraer los componentes de la descomposición
micro_sa <- micro_ts - stl_decomp$time.series[, "seasonal"]
# Crear vector de fechas correctamente alineado con la serie
fechas <- seq.Date(from = as.Date("2004-01-01"), by = "quarter", length.out = length(micro_ts))

# Gráfico mejorado con fechas en el eje X
grafico_ajustada <- ggplot() +
  geom_line(aes(x = fechas, y = micro_ts), color = "grey", size = 0.5, linetype = "solid", name = "Serie Original") +
  geom_line(aes(x = fechas, y = micro_sa), color = "black", size = 0.6, linetype = "solid", name = "Serie Ajustada") +
  ggtitle("Figura 2. Microempresas:Serie Original vs Serie Ajustada por Estacionalidad") +
  xlab("Tiempo") +
  ylab("Número de microempresas") +
  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)

Ahora graficamos serie original vs tendencia

  • La serie original de microempresas contiene variaciones estacionales y aleatorias que pueden dificultar la identificación de patrones reales. La extracción de la tendencia permite centrarse en los cambios estructurales de la serie.

  • Analizar la tendencia ayuda a prever escenarios futuros y anticipar posibles crisis o oportunidades en el sector de microempresas.

*Después del fuerte crecimiento post-2020, la tendencia parece estabilizarse e incluso mostrar una leve reducción, sugiriendo posibles cambios en las condiciones económicas o en el mercado.

# Extraer la tendencia de la descomposición STL
tendencia <- stl_decomp$time.series[, "trend"]

# Gráfico interactivo de la serie original vs tendencia
grafico_tendencia <- ggplot() +
  geom_line(aes(x = fechas, y = micro_ts), color = "grey", size = 0.7, linetype = "solid", name = "Serie Original") +
  geom_line(aes(x = fechas, y = tendencia), color = "black", size = 0.8, linetype = "solid", name = "Tendencia") +
  ggtitle("Figura 3. Microempresas:Serie Original vs Tendencia") +
  xlab("Tiempo") +
  ylab("Número de microempresas") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas del eje X para mejor visualización

# Convertir a gráfico interactivo
ggplotly(grafico_tendencia)

Ahora calculamos la tasa de crecimiento de la serie original vs tendencia

#Cálculo de la tasa de crecimiento anual correctamente alineada
tasa_crecimiento <- (micro_ts[(5:length(micro_ts))] / micro_ts[1:(length(micro_ts) - 4)] - 1) * 100
tasa_tendencia <- (tendencia[(5:length(tendencia))] / tendencia[1:(length(tendencia) - 4)] - 1) * 100

# Crear vector de fechas corregido
fechas_corregidas <- seq(from = as.Date("2005-01-01"), by = "quarter", length.out = length(tasa_crecimiento))

# Verificar longitudes
print(length(fechas_corregidas))
## [1] 80
print(length(tasa_crecimiento))
## [1] 80
print(length(tasa_tendencia))
## [1] 80
# Gráfico de la tasa de crecimiento anual
grafico_crecimiento <- ggplot() +
  geom_line(aes(x = fechas_corregidas, y = tasa_crecimiento), color = "grey", size = 0.7) +
  geom_line(aes(x = fechas_corregidas, y = tasa_tendencia), color = "black", size = 0.8, linetype = "dashed") +
  ggtitle("Figura 4. Microempresas: Tasa de crecimiento anual % de la serie Original vs Tendencia") +
  xlab("Tiempo") +
  ylab("% de Crecimiento Anual") +
  theme_minimal()

# Convertir a gráfico interactivo
ggplotly(grafico_crecimiento)

Interpretación Figura 3. Tendencia VS original: crecimiento anual%

Mientras que la serie original muestra mucha variabilidad, la tendencia permite identificar patrones más claros y estructurales en el crecimiento de las microempresas.

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.

Permite evaluar si el sector de microempresas en Cali sigue una dinámica similar a la nacional o global.

*A lo largo del tiempo, la tasa de crecimiento de las microempresas ha sido volátil, alternando entre períodos de expansión y contracción.

*Se identifican picos de crecimiento antes de 2020 y una fuerte caída alrededor de ese año, probablemente por la pandemia.

*La caída abrupta en 2020 es seguida por una recuperación rápida, lo que indica la resiliencia del sector.

*Sin embargo, la tendencia reciente sugiere menor estabilidad en el crecimiento de nuevas microempresas.