En este informe, se realizará la extracción de señales o descomposición de series temporales aplicadas a las utilidades trimestrales de la empresa Colombina S.A. durante el período comprendido entre el primer trimestre de 2019 (1T2019) y el tercer trimestre de 2024 (3T2024).
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 las utilidades de la empresa. Para ello, se emplearán técnicas estadísticas y métodos de descomposición, 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 financiero de Colombina S.A.
En este análisis, se realizará un estudio exploratorio de la variable Utilidad de la empresa Colombina. Para ello, se calcularán estadísticas descriptivas que nos permitirán conocer mejor la distribución y principales características de la variable en estudio.
Además, se complementará el análisis con la visualización de gráficos, los cuales facilitarán la identificación de patrones, tendencias y posibles valores atípicos en los datos.
El objetivo de este análisis es obtener una comprensión inicial de la información disponible y generar insights que puedan ser utilizados en estudios posteriores más avanzados.
A continuación, se presenta el desarrollo del análisis.
# Cargar librerías necesarias
library(readxl) # Para leer archivos Excel
library(dplyr) # Para manipulación de datos
library(ggplot2) # Para visualización
library(plotly) # Para gráficos interactivos
library(tseries) # Para análisis de series temporales
library(forecast) # Para descomposición
library(timetk) # Para análisis y visualización de series temporales
# Cargar datos desde el archivo Excel
data <- read_excel("Colombina EXTRA.xlsx")
# Ver las primeras filas de los datos
class(data)
## [1] "tbl_df" "tbl" "data.frame"
colnames(data)
## [1] "Date" "ING" "UTILIDAD" "ACTIVOS" "PASIVOS"
head(data)
## # A tibble: 6 × 5
## Date ING UTILIDAD ACTIVOS PASIVOS
## <dttm> <dbl> <dbl> <dbl> <dbl>
## 1 2019-03-01 00:00:00 433580000 35320000 1565128000 1391576000
## 2 2019-06-01 00:00:00 462186000 32407000 1571254000 1387456000
## 3 2019-09-01 00:00:00 517285000 44634000 1625282000 1418499000
## 4 2019-12-01 00:00:00 528268000 44063000 1690409000 1457298000
## 5 2020-03-01 00:00:00 498207000 47612000 1816189000 1604851000
## 6 2020-06-01 00:00:00 402864000 -2194000 1727606000 1532106000
# Formatear la serie temporal (trimestral desde 2019-Q1 hasta 2024-Q3)
ts_data <- ts(data$UTILIDAD, start = c(2019, 1), frequency = 4)
Las estadísticas exploratorias de las utilidades trimestrales de Colombina S.A. indican lo siguiente:
Utilidad mínima (Min = -2,194,000 COP)
La utilidad trimestral más baja registrada en el período analizado es de aproximadamente -2.194 millones de COP. Este valor negativo podría indicar un trimestre con pérdidas, posiblemente debido a factores económicos adversos o gastos extraordinarios.
Utilidad máxima (Max = 105,801,000 COP)
La utilidad trimestral más alta registrada alcanza los 105.8 millones de COP.
Media (Media = 54,522,478 COP)
En promedio, las utilidades trimestrales son 54.52 millones de COP.
Mediana (Mediana = 50,231,000 COP)
El valor central de las utilidades es de 50.23 millones de COP. La mediana es ligeramente menor que la media, lo que sugiere que la distribución de las utilidades tiene una ligera asimetría hacia la derecha, indicando la presencia de algunos valores altos que elevan el promedio.
Desviación estándar (Desviacion Estandar = 27,259,333 COP)
La variabilidad de las utilidades trimestrales es de aproximadamente 27.26 millones de COP. Esta desviación estándar relativamente alta indica que las utilidades fluctúan considerablemente entre trimestres, lo que podría deberse a factores estacionales o cambios en las condiciones del mercado.
Coeficiente de variación (CoefVar = 0.499)
El coeficiente de variación es del 49.9%, lo que indica que la variabilidad de las utilidades es significativa en relación con la media. Un coeficiente de variación superior al 30% generalmente se considera alto, lo que sugiere que las utilidades de Colombina S.A. son bastante variables.
Conclusiones:
Las utilidades trimestrales de Colombina S.A. muestran una variabilidad considerable, con un coeficiente de variación alto que indica fluctuaciones significativas entre trimestres. La diferencia entre la media y la mediana no es muy grande, lo que sugiere que la distribución de las utilidades no está extremadamente sesgada, aunque la presencia de valores altos eleva ligeramente la media. Las diferencias notables entre los valores mínimos y máximos podrían estar relacionadas con factores estacionales o condiciones económicas externas.
# Calcular estadísticas descriptivas básicas
descriptive_stats <- data.frame(
Min = min(ts_data),
Max = max(ts_data),
Media = mean(ts_data),
Mediana = median(ts_data),
DesviacionEstandar = sd(ts_data),
CoefVar = sd(ts_data) / mean(ts_data)
)
print(descriptive_stats)
## Min Max Media Mediana DesviacionEstandar CoefVar
## 1 -2194000 105801000 54522478 50231000 27259333 0.499965
# Gráfico interactivo de la serie original
grafico_serie <- ggplot(data, aes(x = seq.Date(from = as.Date("2019-01-01"), by = "quarter", length.out = nrow(data)), y = UTILIDAD)) +
geom_line(color = "grey", size = 1) +
geom_point(color = "black") +
ggtitle("Figura 1.Utilidades Totales Trimestrales de Colombina S.A.") +
xlab("Tiempo") +
ylab("Miles de Pesos Colombianos") +
theme_minimal()
ggplotly(grafico_serie)
En la Figura 1, se observa que las utilidades trimestrales de Colombiana S.A. presentan fluctuaciones a lo largo del período analizado. Sin embargo, a pesar de estas variaciones, se puede identificar una tendencia general de crecimiento en las utilidades.
En la descomposición temporal de la serie de utilidades trimestrales de Colombiana S.A., se utilizó el método STL (Seasonal and Trend decomposition using Loess) para descomponer la serie en tres componentes principales: tendencia, estacionalidad y residuos.
# Descomposición de la serie temporal
stl_decomp <- stl(ts_data, s.window = "periodic")
plot(stl_decomp)
La descomposición STL permite identificar claramente una tendencia creciente en las utilidades de Colombiana S.A. Además, se detecta la presencia de patrones estacionales, los cuales podrían estar asociados a factores internos o externos recurrentes, como temporadas de ventas, promociones comerciales o eventos económicos cíclicos que impactan de manera periódica los resultados. Por otro lado, los residuos revelan una variabilidad no explicada por la tendencia o la estacionalidad, lo que sugiere la influencia de eventos específicos o condiciones imprevistas.
# Extraer los componentes de la descomposición
serie_ajustada <- ts_data - stl_decomp$time.series[, "seasonal"]
library(ggplot2)
library(plotly)
library(scales)
# Comparación de la serie original con la ajustada por estacionalidad
grafico_ajustada <- ggplot() +
geom_line(aes(x = seq_along(ts_data), y = ts_data), color = "grey", size = 1, linetype = "solid") +
geom_line(aes(x = seq_along(serie_ajustada), y = serie_ajustada), color = "black", size = 1, linetype = "dashed") +
ggtitle("Figura 2.Serie Original vs Serie Ajustada por Estacionalidad") +
xlab("Tiempo") +
ylab("Miles de Pesos Colombianos") +
theme_minimal()
ggplotly(grafico_ajustada)
En la Figura 2, se observa que la serie ajustada elimina los patrones estacionales recurrentes, permitiendo visualizar con mayor claridad la tendencia y las fluctuaciones no estacionales. La serie original muestra picos y valles que coinciden con ciclos estacionales, lo que indica que factores como temporadas de ventas o eventos económicos periódicos influyen en las utilidades. Por otro lado, la serie ajustada revela una tendencia más suave, destacando el crecimiento o comportamiento general de las utilidades sin la distorsión causada por la estacionalidad.
# Comparación de la serie original con la tendencia
tendencia <- stl_decomp$time.series[, "trend"]
grafico_tendencia <- ggplot() +
geom_line(aes(x = seq_along(ts_data), y = ts_data), color = "grey", size = 1) +
geom_line(aes(x = seq_along(tendencia), y = tendencia), color = "purple", size = 1, linetype = "dashed") +
ggtitle("Figura 3. Serie Original vs Tendencia") +
xlab("Tiempo") +
ylab("Miles de Pesos Colombianos") +
theme_minimal()
ggplotly(grafico_tendencia)
En la Figura 3, se observa que la serie original presenta fluctuaciones que incluyen tanto la tendencia como la estacionalidad y los residuos. Por otro lado, el componente de tendencia muestra una línea más suave que representa la dirección general de las utilidades a lo largo del tiempo. Esta comparación permite identificar claramente que, a pesar de las variaciones trimestrales, existe una tendencia creciente en las utilidades de la empresa. La tendencia actúa como una línea base que elimina el ruido de las fluctuaciones estacionales y aleatorias, proporcionando una visión más clara del comportamiento subyacente de las utilida
# Cálculo de la tasa de crecimiento anual correctamente alineada
tasa_crecimiento <- (ts_data[(5:length(ts_data))] / ts_data[1:(length(ts_data) - 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("2020-01-01"), by = "quarter", length.out = length(tasa_crecimiento))
# Verificar longitudes
print(length(fechas_corregidas))
## [1] 19
print(length(tasa_crecimiento))
## [1] 19
print(length(tasa_tendencia))
## [1] 19
# Gráfico de la tasa de crecimiento anual
grafico_crecimiento <- ggplot() +
geom_line(aes(x = fechas_corregidas, y = tasa_crecimiento), color = "grey", size = 1) +
geom_line(aes(x = fechas_corregidas, y = tasa_tendencia), color = "green", size = 1, linetype = "dashed") +
ggtitle("Figura 4. Tasa de Crecimiento Anual: Serie Original vs Tendencia") +
xlab("Tiempo") +
ylab("% de Crecimiento Anual") +
theme_minimal()
# Convertir a gráfico interactivo
ggplotly(grafico_crecimiento)
En la Figura 4, se evidencian distintos comportamientos que han afectado las utilidades de Colombina, como por ejemplo, en 2020, se observó un pico negativo en la tasa de crecimiento anual de las utilidades de Colombiana S.A., coincidiendo con el inicio de la pandemia de COVID-19. Según el informe financiero de la empresa, los ingresos se contrajeron un 1% en comparación con 2019, mientras que las utilidades cayeron un 49%, pasando de 60.315 millones en 2019 a 30.783 millones en 2020. Este descenso se debió principalmente a las restricciones a la movilidad, que afectaron el consumo de los productos de la empresa, así como a los costos adicionales asociados con la implementación de medidas de bioseguridad en sus plantas de manufactura. A pesar de estos desafíos, la empresa logró mantener sus operaciones en todas sus plantas, lo que permitió una recuperación gradual en los trimestres siguientes.
En 2021, la gráfica muestra otro pico negativo, atribuible a dos factores principales: la prolongación de la crisis de salud pública, que continuó afectando la demanda y los costos operativos, y el paro nacional que comenzó a finales de abril de 2021. Este último generó disrupciones en la cadena de suministro, bloqueos en las vías y una reducción en el consumo debido a la incertidumbre social y económica. Pese a estas coyunturas, Colombiana S.A. logró una importante recuperación de sus ingresos, cerrando el año con ingresos netos consolidados de 2.1 billones de pesos y un crecimiento del 12.2% en ventas frente a 2020.
Para 2022, la empresa presentó una recuperación significativa, aunque a mediados del año comenzó a experimentar un decrecimiento. No obstante, para 2023 y 2024, la tendencia en la gráfica sugiere una recuperación moderada y gradual. Esto indica que Colombiana S.A. ha logrado implementar estrategias efectivas para mitigar los impactos negativos, beneficiándose de una mayor estabilidad económica y una mejora en las condiciones del mercado.