Introducción

El presente trabajo pretende analizar variables críticas para identificar tendencias que permitan realizar pronósticos confiables para las ventas de Concesionario KIA Motors en el Valle del Cauca, según data desde 2013 a 2024.

Se analizarán las variables: ventas minoristas de Valle del Cauca, Índice de Confianza al Consumidor y venta de vehículos nuevos en el Valle del Cauca de acuerdo al período descrito basadas en fuentes como DANE, Fedesarrolo, ANdi y Fenalco para el período descrito en el párrafo anterior.

Entre 2013 y 2024, el entorno económico del Valle del Cauca ha mostrado ciclos de expansión y contracción que se reflejan en el comercio minorista, la confianza del consumidor y el mercado automotor.

De acuerdo con cifras del DANE, el sector minorista creció sostenidamente, aunque enfrentó altibajos como el auge de 2014-2016, la desaceleración de 2017-2019, el impacto de la pandemia en 2020 y una recuperación digitalizada entre 2021 y 2022. Por su parte, en 2023-2024, el crecimiento se moderó por la inflación y el crédito restringido.

Por su parte, el Índice de Confianza del Consumidor ha seguido los ciclos económicos, con caídas marcadas durante la pandemia y tensiones sociales, mostrando una leve recuperación hacia finales de 2024, según los datos entregados por Fedesarrollo - ANDI.

En tanto, la venta de vehículos nuevos evidenció una caída en 2020, seguida de una recuperación en 2021-2022 y una nueva contracción en 2023-2024, influida por el alza de tasas de interés.

En relación al desempeño en ventas del Concesionario Kia Motors en el Valle del Cauca, de acuerdo a cifras propias, ha mostrado una evolución marcada por ciclos de crecimiento y contracción, influenciada por factores económicos locales y nacionales.

En los primeros años (2013-2015), las ventas fueron sólidas, impulsadas por un entorno económico favorable y el auge del consumo. Sin embargo, a partir de 2016 se evidenciaron retrocesos, reflejo de la desaceleración económica nacional, el incremento del dólar y una caída en la confianza del consumidor.

En años posteriores, especialmente durante la pandemia en 2020, las ventas cayeron de forma pronunciada, aunque se observó una recuperación gradual desde 2021 hasta 2023, con repuntes alentados por incentivos comerciales, mejora en la oferta de vehículos híbridos y mayor estabilidad económica.

Para 2024, aunque el crecimiento se estabiliza, Kia mantiene participación significativa en el mercado, aunque con presiones competitivas y de costo.

Metodología

Para comprender la evolución y pronosticar el comportamiento de las ventas minoristas, el Índice de Confianza del Consumidor (ICC) y las ventas de vehículos nuevos en el Valle del Cauca entre 2013 y 2024, se aplicaron herramientas avanzadas de análisis de series temporales:

La descomposición STL (Seasonal-Trend decomposition using Loess) y el modelo ARIMA (AutoRegressive Integrated Moving Average).

A su vez, este enfoque se comparó con el desempeño específico del Concesionario Kia Motors en el mercado automotor regional.

La descomposición STL divide cada serie en tres componentes:

Primero se utilizó la tendencia que captura la evolución de largo plazo, para mostrar si la variable aumenta o disminuye con el tiempo; luego se analizó la estacionalidad identificando patrones cíclicos que se repiten en intervalos regulares, como efectos mensuales o anuales. Adicional, se desagregaron los valores residuales, dado que estos reflejan variaciones aleatorias o eventos atípicos no explicados por la tendencia ni la estacionalidad.

Por otro lado, El modelo ARIMA se utilizó para pronosticar series temporales que no presentan estacionalidad fuerte o que ya fue ajustada, combinando tres elementos:

AR (auto regresivo) el cual se basa en valores pasados de la serie.

I (integrado): Se refiere a la diferenciación para volver la serie estacionaria (sin tendencia).

MA (media móvil): Considera errores pasados en el modelo.

El uso conjunto de STL y ARIMA permitió entender a profundidad la estructura de las series económicas del Valle del Cauca.

La descomposición STL ayudó a separar los efectos temporales y estructurales, mientras que ARIMA proporcionó herramientas robustas para hacer pronósticos basados en la dinámica histórica de los datos.

Esta combinación mejoró la precisión del análisis y aporta insumos clave para la planificación económica, comercial y de inversión en la región.

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("Base Caso21.xlsx", 
    col_types = c("date", "numeric", "numeric", 
        "numeric"))

PASO INDISPENSABLE: Declarar la (s) variable (s) como serie (s) temporal (es):

Ventas minoristas

# Convertir/declarar variable 1=MIN_V en serie de tiempo mensual
variable1_ts <- ts(data_col$MIN_V, start = c(2013, 1), frequency = 12)

Índice de confianza al consumidor

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

Venta de vehículos nuevos en el Valle del Cauca

# Convertir/declarar venta vehículos nuevos Valle del Cauca en serie de tiempo mensual
variable3_ts <- ts(data_col$VEH_V, start = c(2013, 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("2013-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: ventas minoristas del Valle del Cauca: Serie original") +
  xlab("Tiempo") +
  ylab("Unidades (miles de milones COP)") +
  theme_minimal()

ggplotly(grafico_serie)

Análisis:

El gráfico muestra la serie temporal de las ventas minoristas en el Valle del Cauca (en miles de millones de COP) desde aproximadamente 2013 hasta 2025.

Las ventas minoristas en el Valle del Cauca muestran una tendencia creciente a largo plazo, con un comportamiento estacional claro y efectos externos importantes como la pandemia de COVID-19. El comportamiento post-pandemia sugiere una reactivación económica pero con mayor volatilidad.

Si bien el Concesionario KIA MOTORS hace parte de la categoría vehículos, la variable ventas minoristas sugiere que hay una tendencia creciente hacia el consumo en el largo plazo, lo cual puede representar un factor de comportamiento favorable para las proyecciones de ventas de la empresa pero que se deben ajustar a variables más especificas al sector de la empresa.

Extracción señales Variable 1- ventas minoristas del Valle del Cauca

# 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 Ventas minoristas del Valle del Cauca",
       x = "Tiempo",
       y = "Valor")

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

Este gráfico presenta la descomposición temporal de la serie de ventas minoristas del Valle del Cauca, separando los principales componentes que explican su comportamiento: tendencia, estacionalidad, residuo y la serie original.

De acuerdo a lo anterior, se puede analizar que la serie de ventas minoristas en el Valle del Cauca está marcada por una tendencia ascendente a largo plazo, interrumpida por el choque exógeno del COVID-19, pero con posterior recuperación.

La estacionalidad anual es fuerte y consistente, lo que permite anticipar picos de consumo cada fin de año.

Los residuos son bajos y controlados, excepto en momentos de crisis.

Estos factores anteriores, sugieren que se pueda predecir un comportamiento favorable para las ventas del Concesionario Kía Motors. Sin embargo, se sugiere que pueda hacerse un análisis más preciso analizando las variables ICC, Índice de Confianza al Consumidor, y reporte de ventas anuales de vehículos nuevos en el Valle del Cauca que se describirán posteriormente.

Extracción señales variable 2- ICC Valle del Cauca

# 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: ICC Valle del  Cauca",
       x = "Tiempo",
       y = "Valor")

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

Este gráfico muestra la descomposición temporal del Índice de Confianza del Consumidor (ICC) del Valle del Cauca, lo que permite analizar su comportamiento en términos de:

Tendencia

Estacionalidad

Residuo (ruido)

Serie original

De acuerdo a lo anterioe, El Índice de Coinfianza del Consumidor, ICC del Valle del Cauca, ha mostrado una tendencia descendente desde 2013, con caídas importantes en momentos de crisis (como 2020), lo que refleja un sentimiento de desconfianza prolongado entre los consumidores.

Existe una estacionalidad clara, lo que permite anticipar momentos cíclicos de mayor o menor confianza.

La recuperación posterior a 2020 es lenta, y aún no se alcanza el nivel de confianza de la primera mitad de la década.

Los anteriores hallazgos permiten concluir que la confianza del consumidor del Valle del Cauca está aún deteriorada y son un factor clave a considerar para pronosticar las ventas del Concesionario KIA MOTORS.

Extracción señales variable 3: venta vehículos nuevos en el Valle del Cauca

# 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: ventas vehículos nuevos
  Valle del Cauca",
       x = "Tiempo",
       y = "Valor")

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

Este gráfico muestra la descomposición temporal de las ventas de vehículos nuevos en el Valle del Cauca, lo que permite analizar su comportamiento a través de los cuatro componentes clave: tendencia, estacionalidad, residuos y la serie original.

Se concluye que el mercado de vehículos nuevos venía en descenso desde 2015, y la pandemia intensificó esta caída, generando una crisis en el sector.

Existe una estacionalidad clara, lo cual sugiere que las decisiones de compra están influenciadas por el calendario, y se podrían planificar estrategias comerciales alineadas a esos ciclos.

Aunque hay señales de recuperación después de 2021, el nivel de ventas sigue siendo más bajo que en la primera mitad del período analizado, lo que puede estar relacionado con factores macroeconómicos como inflación, tasas de interés o incertidumbre política, factores críticos a considerar para realizar un pronóstico de mercado para el Concesionario KIA MOTORS.

Con el ánimo de comparar la información se procederá a realizar un análisis de estacionalidad vs serie original de cada variable del presente análisis.

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 venta vehículos minorostas Valle del Cauca

# Crear vector de fechas correctamente alineado con la serie
fechas_var1 <- seq.Date(from = as.Date("2013-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: ventas minoristas Valle del Cauca:
          Serie Original vs Serie Ajustada por Estacionalidad") +
  xlab("Tiempo") +
  ylab("Unidad de medida miles millones COP") +
  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)

El ajuste estacional permite ver que el crecimiento en ventas no es solo estacional, sino que hay un componente estructural positivo a largo plazo.

La pandemia generó una caida importante, pero el sector mostró resiliencia, con una recuperación ascendente.

El nivel actual de las ventas minoristas ajustadas está en su punto más alto de toda la serie, sin embargo, se sugiere que para el caso de Concesionario KIA Motors se revise el ICC, Indicador de Confianza del Consumidor.

Gráfico serie original VS ajustada ICC Valle del Cauca

# Crear vector de fechas correctamente alineado con la serie
fechas_var2 <- seq.Date(from = as.Date("2013-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- ICC Valle del Cauca - Serie Original vs Serie Ajustada 
  por Estacionalidad") +
  xlab("Tiempo") +
  ylab("Unidad de medida %") +
  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)

Este gráfico muestra la evolución del Índice de Confianza del Consumidor (ICC) en el Valle del Cauca, con la comparación entre la serie original (gris) y la serie ajustada por estacionalidad (negra). La unidad de medida es el porcentaje (%), y cubre el período aproximado de 2013 a 2025.

Se puede concluir que el ICC ha sido altamente volátil, pero con signos de recuperación sostenida tras el impacto del COVID-19.

Los valores recientes muestran un mejor clima de confianza, lo que puede anticipar mayor disposición al gasto y consumo en los próximos meses.

Esta mejora en el ICC se correlaciona positivamente con el crecimiento reciente en las ventas minoristas, como vimos en el gráfico anterior, lo cual favorece ampliamente las perspectivas para el Concesionario KIA Motors.

Gráfico serie original VS ajustada Variable 3-venta vehículos nuevos Valle del Cauca

# Crear vector de fechas correctamente alineado con la serie
fechas_var3 <- seq.Date(from = as.Date("2013-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- ventas vehículos nuevos Valle del Cauca:
  Serie Original vs Serie Ajustada por Estacionalidad") +
  xlab("Tiempo") +
  ylab("Unidad de medida (unidades") +
  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)

Este gráfico presenta la evolución de la Variable 3: ventas de vehículos nuevos en el Valle del Cauca, comparando la serie original (gris) y la serie ajustada por estacionalidad (negra). La unidad de medida corresponde a la cantidad de unidades vendidas por mes, en el periodo aproximado de 2013 a 2025.

Se concluye que las ventas de vehículos nuevos han sido altamente sensibles a los ciclos económicos, y su recuperación ha sido más lenta que la de otros sectores.

La falta de una tendencia positiva sostenida desde 2022 podría estar relacionada con factores como:

Altas tasas de interés, que encarecen el crédito.

Inflación en los precios de vehículos y seguros.

Cambios en las prioridades de consumo

Este comportamiento puede ser un indicador adelantado de cautela en el gasto del consumidor, especialmente en este tipo de bienes durables que impactan al sector de estudio de Concesionario KIA Motors.

Ahora graficamos serie original vs tendencia

Primero se debe obtener la tendencia de cada variable y luego graficarla

Tendencia Variable 1- ventas minoriostas Valle del Cauca

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("2013-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- ventas minoristas Valle del Cauca: Serie Original vs Tendencia") +
  xlab("Tiempo") +
  ylab("Unidad de medida miles de millones COP") +
  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)

Este gráfico representa la Variable 1: Ventas minoristas en el Valle del Cauca, comparando la serie original (línea gris) y la tendencia (línea negra) durante el período aproximado de 2013 a 2025. Las ventas están medidas en miles de millones de pesos colombianos (COP).

De acuerdo a lo anterior, se puede analizar que la tendencia es positiva en el largo plazo, lo que refleja un crecimiento del comercio minorista en el Valle del Cauca.

La caída de 2020 fue significativa, pero la rápida recuperación en los años siguientes muestra una buena capacidad de adaptación del sector.

Tendencia Variable 2-ICC Valle del Cauca

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("2013-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: ICC Valle del Cauca- Serie Original vs Tendencia") +
  xlab("Tiempo") +
  ylab("Unidad de medida (%)") +
  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)

Este gráfico muestra la Variable 2: Índice de Confianza del Consumidor (ICC) en el Valle del Cauca, comparando la serie original (línea gris) y su tendencia (línea negra) desde aproximadamente 2013 hasta 2025. El ICC se expresa en porcentaje (%), y representa el optimismo o pesimismo de los consumidores sobre la economía y su disposición a gastar.

El ICC es un indicador adelantado del comportamiento del consumo. Cuando es positivo, los consumidores tienden a gastar más; cuando es negativo, tienden a restringir sus gastos. Por ende, la recuperación mostrada desde el 2024 sugiere una mejora en la percepción del entorno económico, lo cual puede impulsar el consumo.

Se observa que la confianza del consumidor ha sido altamente cíclica, con una recuperación que se visualiza en los últimos años del gráfico.

Tendencia Variable 3-Venta vehículos nuevos Valle del Cauca

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("2013-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, venta vehículos nuevos Valle del Cauca: 
  Serie Original vs Tendencia") +
  xlab("Tiempo") +
  ylab("Unidad de medida (unidades)") +
  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)

Este gráfico presenta la Variable 3: Ventas de vehículos nuevos en el Valle del Cauca, comparando la serie original (línea gris) y su tendencia (línea negra) desde aproximadamente 2013 hasta 2025. La unidad de medida son unidades vendidas por mes.

Se observa que el sector automotor en el Valle del Cauca aún no ha recuperado los niveles prepandemia.

La tendencia decreciente de 2019 a 2023 indica una prolongada contracción en la demanda.

Factores macroeconómicos y la confianza del consumidor están estrechamente correlacionados con las ventas.

La recuperación en curso hacia 2025 ofrece una ventana de oportunidad para el Concesionario KIA Motors.

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 2014
fechas_corregidas_var1 <- seq(from = as.Date("2014-01-01"), by = "month", length.out = length(tasa_crecimiento_var1))

# Verificar longitudes
print(length(fechas_corregidas_var1))
## [1] 132
print(length(tasa_crecimiento_var1))
## [1] 132
print(length(tasa_tendencia_var1))
## [1] 132

*Gráfico variable original y tendencia variable 1-ventas minoristas Valle del Cauca: 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("Variable 1 ventas minoristas Valle del Cauca: 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)

Este gráfico muestra la tasa de crecimiento anual (%) de las ventas minoristas en el Valle del Cauca desde aproximadamente 2013 hasta 2024.

El sector de ventas minoristas en el Valle del Cauca ha mostrado resiliencia ante choques exógenos como la pandemia, con una recuperación acelerada post-crisis. No obstante, tras la recuperación, el crecimiento se ha moderado, indicando un retorno a patrones más sostenibles. Esto sugiere que para los próximos años, se deben enfocar esfuerzos en estimular la demanda interna y fortalecer la confianza del consumidor para sostener el dinamismo del comercio.

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) 
tasa_tendencia_var2 <- (tendencia_var2[(13:length(tendencia_var2))] / tendencia_var2[1:(length(tendencia_var2) - 12)] - 1)

# Crear vector de fechas corregido, es decir que inicie desde enero 2014
fechas_corregidas_var2 <- seq(from = as.Date("2014-01-01"), by = "month", length.out = length(tasa_crecimiento_var2))

# Verificar longitudes
print(length(fechas_corregidas_var2))
## [1] 132
print(length(tasa_crecimiento_var2))
## [1] 132
print(length(tasa_tendencia_var2))
## [1] 132
library(ggplot2)
library(plotly)

# 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("Variable 2 ICC Valle del Cauca: 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)

Se puede concluir que la serie muestra un comportamiento estable en términos de crecimiento anual, con variaciones moderadas.

La tendencia general parece coincidir con la serie original.

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) 
tasa_tendencia_var3 <- (tendencia_var3[(13:length(tendencia_var3))] / tendencia_var3[1:(length(tendencia_var3) - 12)] - 1)

# Crear vector de fechas corregido, es decir que inicie desde enero 2014
fechas_corregidas_var3 <- seq(from = as.Date("2014-01-01"), by = "month", length.out = length(tasa_crecimiento_var3))

# Verificar longitudes
print(length(fechas_corregidas_var3))
## [1] 132
print(length(tasa_crecimiento_var3))
## [1] 132
print(length(tasa_tendencia_var3))
## [1] 132
# Gráfico de la tasa de crecimiento anual variable 3
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 venta vehículos nuevos Valle
  % de la serie Original y la tendencia") +
  xlab("Tiempo") +
  ylab("% de Crecimiento Anual") +
  theme_minimal()

# Convertir a gráfico interactivo
ggplotly(grafico_crecimiento_var3)

Respecto al gráfico anterior, se puede concluir que la venta de vehículos nuevos en el Valle del Cauca ha sido muy estable en términos anuales, con muy poca variación.

El único evento destacable es el pico inusualmente alto cerca de 2021, que puede ser resultado de un efecto rebote post-pandemia.

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.

Modelo ARIMA

División en conjunto de entrenamiento y prueba para la variable 1 que es la elegida para pronosticar

El código siguiente divide una serie temporal (variable1_ts) en dos subconjuntos:

Conjunto de entrenamiento (train): Datos desde enero de 2013 hasta septiembre de 2024. Conjunto de prueba (test): Datos desde octubre de 2024 hasta diciembre de 2024.

Esto se hace para evaluar el desempeño de modelos de predicción en datos no vistos.

# Esta división idealmente podria se 80%-70% de los datos para entrenamiento y 20%-30% para prueba o test

# En este ejemplo el conjunto de entrenamiento es: Enero 2012-Septiembre 2024 y  el conjunto de prueba o test: noviembre 2024-diciembre 2024 

train_size <- length(variable3_ts) - 3 # Se deja fuera los últimos 3 valores para usarlos como set de prueba.
train_ts <- window(variable3_ts, end = c(2024, 9))  # Entrenamiento hasta septiembre 2024
test_ts <- window(variable3_ts, start = c(2024, 10))  # Prueba inicia desde oct2024

Para el análisis del modelo Arima, se decidió escoger la variable # : ventas de vehículos nuevos en el Valle del Cauca ya que su resultado evidenciaría un pronóstico más ajustado a la planeación de ventas del Concesionario KIA Motors, teniendo en cuenta que este modelo no considera la estacionalidad de los ventas.

Modelo ARIMA automático normal (sin tener en cuenta el factor estacional)

Identificación automática del modelo ARIMA

library(forecast)

# Ajustar un modelo ARIMA automático sin estacionalidad, por eso se pone seasonal=FALSE
auto_arima_model_no_seasonal <- auto.arima(train_ts, seasonal = FALSE)

# Mostrar el modelo seleccionado
summary(auto_arima_model_no_seasonal)
## Series: train_ts 
## ARIMA(3,1,2) 
## 
## Coefficients:
##           ar1     ar2     ar3      ma1      ma2
##       -0.3036  0.3323  0.1935  -0.1356  -0.7227
## s.e.   0.1423  0.1188  0.0950   0.1202   0.1022
## 
## sigma^2 = 146243:  log likelihood = -1029.1
## AIC=2070.21   AICc=2070.84   BIC=2087.86
## 
## Training set error measures:
##                     ME     RMSE      MAE       MPE     MAPE      MASE
## Training set -25.20132 374.1927 267.2965 -278.7211 288.2151 0.6862624
##                      ACF1
## Training set -0.005716424

Se utilizará un ARIMA(p,d,q) con:

p = 0: lo que indica que no se incluyen componentes autoregresivos (AR).

d = 1: la serie fue diferenciada una vez para hacerla estacionaria.

q = 2: se incluyen dos términos de media móvil (MA), es decir, depende de errores pasados hasta el orden 2.

El modelo ARIMA(0,1,2) ajustado a la serie temporal presenta coeficientes significativos, con términos MA negativos que indican un efecto amortiguador de los errores pasados. Las métricas de ajuste muestran un desempeño aceptable, destacando un MAPE bajo (7.6%) que sugiere buena precisión en las predicciones y una autocorrelación residual cercana a cero, lo cual es deseable.

Estimación del modelo identificado automatico y validación de Significancia de coeficientes

library(lmtest)

# Evaluar la significancia estadística de los coeficientes del modelo ARIMA
coeftest(auto_arima_model_no_seasonal)
## 
## z test of coefficients:
## 
##      Estimate Std. Error z value Pr(>|z|)    
## ar1 -0.303628   0.142332 -2.1332 0.032905 *  
## ar2  0.332273   0.118833  2.7961 0.005172 ** 
## ar3  0.193531   0.094971  2.0378 0.041570 *  
## ma1 -0.135637   0.120184 -1.1286 0.259077    
## ma2 -0.722745   0.102241 -7.0691 1.56e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Ajuste del modelo ARIMA(4,1,2) automático sin parte estacional y crearlo como variable darima_auto para luego poder graficarlo y crear la tabla
darima_auto <- Arima(train_ts, 
                order = c(4, 1, 2))  # Especificamos directamente (p=4, d=1, q=2)  

# Mostrar resumen del modelo ajustado
summary(darima_auto)
## Series: train_ts 
## ARIMA(4,1,2) 
## 
## Coefficients:
##           ar1     ar2     ar3     ar4      ma1      ma2
##       -0.3124  0.3355  0.1993  0.0169  -0.1293  -0.7328
## s.e.   0.1497  0.1197  0.1008  0.0993   0.1231   0.1163
## 
## sigma^2 = 147314:  log likelihood = -1029.09
## AIC=2072.18   AICc=2073.02   BIC=2092.77
## 
## Training set error measures:
##                     ME     RMSE      MAE       MPE    MAPE     MASE
## Training set -25.16407 374.1661 266.9563 -279.4334 288.915 0.685389
##                      ACF1
## Training set -0.003115822

Validación de residuales o errores del modelo

# Diagnóstico del modelo (los residuos deben ser ruido blanco)
checkresiduals(darima_auto)  # Verificar si los residuos son aleatorios y no presentan patrones

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(4,1,2)
## Q* = 54.816, df = 18, p-value = 1.368e-05
## 
## Model df: 6.   Total lags used: 24

El gráfico muestra que el modelo ARIMA(4,1,2) no ajusta bien los datos. Primero, los residuos no se evidencian de una forma que permita identificar patrones en los datos.

Segundo, el gráfico de barras (ACF) muestra que aún hay relaciones entre los errores en diferentes momentos del tiempo, es decir, picos que salen de la línea azul.

Finalmente, aunque la distribución de los residuos es similar a una campana, hay valores extremos que no encajan bien.

Por lo anterior, se puede concluir que el modelo no tendría un factor completamente acertado para predecir períodos próximos como 2025.

Pronóstico modelo ARIMA automático dentro de muestra o en el set de prueba

# Generar pronóstico para el conjunto de prueba
forecast_arima_auto <- forecast(darima_auto, h = length(test_ts))  # Predecir los valores futuros

# Crear dataframe para gráfico interactivo del pronóstico
forecast_data_auto <- data.frame(Tiempo = time(forecast_arima_auto$mean), 
                            Pronostico = as.numeric(forecast_arima_auto$mean),
                            Observado = as.numeric(test_ts))

# Graficar pronóstico junto con los valores observados reales
p4auto <- ggplot(forecast_data_auto, aes(x = Tiempo)) +
  geom_line(aes(y = Pronostico, color = "Pronóstico")) +
  geom_line(aes(y = Observado, color = "Observado")) +
  ggtitle("Pronóstico vs Observado") +
  xlab("Tiempo") + ylab("variable3")

ggplotly(p4auto)  # Convertir el gráfico en interactivo

Interpretación modelo automatico (4,1,2):

El gráfico “Pronóstico vs Observado” muestra una clara diferencia entre los valores reales (observados) y los valores predichos (pronosticados) por el modelo para la variable3: venta vehículos del Valle del Cauca en el tiempo reciente (últimos meses de 2024). Mientras que la serie observada presenta una tendencia ascendente sostenida, el modelo de pronóstico proyecta valores planos e incluso decrecientes.

Esto indica que el modelo subestima significativamente el comportamiento real de la variable y no logra capturar su tendencia al alza, lo cual evidencia que no hay criterios suficientes para generar predicciones precisas hacia el caso de los pronósticos de ventas para el año 2025 en el Concesionario KIA Motors.

Pronóstico automático dentro del set de prueba como tabla

# Cargar librerías necesarias
library(forecast)
library(dplyr)

# Generar pronóstico con el modelo ARIMA identificado
arima_forecast_auto <- forecast(auto_arima_model_no_seasonal, h = length(test_ts))

# Crear un dataframe con los valores observados y pronosticados
forecast_table_auto <- data.frame(
  Tiempo = time(arima_forecast_auto$mean),  # Extraer las fechas del pronóstico
  Observado = as.numeric(test_ts),  # Valores reales
  Pronosticado = as.numeric(arima_forecast_auto$mean)  # Valores pronosticados
)

# Mostrar la tabla
print(forecast_table_auto)
##     Tiempo Observado Pronosticado
## 1 2024.750      1652     1558.459
## 2 2024.833      1849     1575.527
## 3 2024.917      2092     1545.774

Ahora pronosticamos con el modelo automatico fuera del periodo de análisis, es decir enero 2025

Es decir, le sumamos al periodo de prueb auna observación más. Es decir, se estan pronosticando 4 observaciones o trimestres.

# Cargar librerías necesarias
library(forecast)

# Hacer un pronóstico para el siguiente trimestre (1 período adicional)
next_forecast_auto <- forecast(auto_arima_model_no_seasonal, h = length(test_ts) + 1)

# Extraer el pronóstico del próximo trimestre
next_month_forecast_auto <- data.frame(
  Tiempo = time(next_forecast_auto$mean),  # Extraer la fecha del pronóstico
  Pronostico = as.numeric(next_forecast_auto$mean)  # Valor pronosticado
)

# Mostrar el pronóstico completo
print(next_month_forecast_auto)
##     Tiempo Pronostico
## 1 2024.750   1558.459
## 2 2024.833   1575.527
## 3 2024.917   1545.774
## 4 2025.000   1547.408
# Extraer solo el valor del trimestre adicional (último de la tabla)
next_month <- tail(next_month_forecast_auto, 1)
print(paste("Pronóstico para enero 2025:", next_month$Tiempo, "=", next_month$Pronostico))
## [1] "Pronóstico para enero 2025: 2025 = 1547.40765829125"

De acuerdo al pronóstico del modelo automático para el Concesionario KIA Motors, se puede concluir que hacia enero de 2025 se venderían 104 unidades de vehículos nuevos en el sector del Valle del Cauca.

Modelo SARIMA automático

Este modelo podria ser una solución o mejora al modelo arima tradicional ya que recoge el efecto estacional de las variables, es recomendable por tanto para datos que si tienen un componente estacional fuerte.

El modelo ajustado en este ejemplo es un SARIMA(0,1,1)(1,0,0)[12], lo que significa:

(0,1,1): Parte ARIMA no estacional: 0 términos autorregresivos (AR). 1 diferenciación (d), lo que indica que la serie fue diferenciada una vez para hacerla estacionaria. 1 término de media móvil (MA).

(1,0,0)[12]: Parte estacional con periodicidad 12 (mensual si los datos son mensuales): 1 término autorregresivo estacional (SAR). 0 diferenciaciones estacionales. 0 términos de media móvil estacionales (SMA).

El modelo SARIMA(0,1,1)(1,0,0)[12] sugiere que:

  • La serie tiene una tendencia no estacionaria, corregida con una diferenciación.
  • Existe una influencia significativa del error pasado (MA(1)).
  • Hay un componente estacional autorregresivo fuerte cada 12 períodos.
  • El ajuste es adecuado según los criterios AIC y BIC, pero se podría comparar con otros modelos para mejorar la predicción.

Identificación dautomática del modelo SARIMA

# Identificación automática modelo SARIMA
auto_arima_model <- auto.arima(train_ts)  # Busca automáticamente los mejores parámetros del modelo ARIMA
print(auto_arima_model)
## Series: train_ts 
## ARIMA(1,1,1)(0,0,2)[12] 
## 
## Coefficients:
##          ar1      ma1    sma1    sma2
##       0.5751  -0.9353  0.3142  0.2103
## s.e.  0.0984   0.0449  0.0857  0.0820
## 
## sigma^2 = 127841:  log likelihood = -1020.98
## AIC=2051.96   AICc=2052.41   BIC=2066.67

A continuación, se crea el objeto darima para luegO poder graficar los valores reales y observados:

# Cargar el paquete necesario
library(forecast)

# Ajustar el modelo SARIMA(0,1,1)(1,0,0)[12] #Modelo identificado en el paso anterior
darima <- Arima(train_ts, 
                order = c(0, 1, 1),  # (p,d,q) -> (0,1,1)
                seasonal = list(order = c(1, 0, 0),  # (P,D,Q) -> (1,0,0)
                                period = 12))  # Periodicidad estacional de 12 meses

# Mostrar resumen del modelo ajustado
summary(darima)
## Series: train_ts 
## ARIMA(0,1,1)(1,0,0)[12] 
## 
## Coefficients:
##           ma1    sar1
##       -0.4501  0.3840
## s.e.   0.0992  0.0751
## 
## sigma^2 = 133878:  log likelihood = -1025.04
## AIC=2056.08   AICc=2056.26   BIC=2064.91
## 
## Training set error measures:
##                     ME     RMSE     MAE       MPE     MAPE      MASE       ACF1
## Training set -1.594575 361.9798 259.472 -283.8465 294.9219 0.6661736 0.08923484

Validación de residuales del modelo automatico SARIMA

En el correlograma de residuos siguiente se observa que, mejora la correlación de los residuos frente a lso dos modelos anteriores. Sin embargo, al comparar los valores reales VS pronosticados se determina una poca coincidencia. Sigue funcionando mejor el modelo automatico (4,1,2)

# Diagnóstico del modelo (los residuos deben ser ruido blanco)
checkresiduals(darima)  # Verificar si los residuos son aleatorios y no presentan patrones

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(0,1,1)(1,0,0)[12]
## Q* = 33.173, df = 22, p-value = 0.05948
## 
## Model df: 2.   Total lags used: 24

Una vez hecha la depuración de datos a través del modelo Sarima, se puede concluir que:

el gráfico muestra los residuos del modelo ARIMA estacional (0,1,1)(1,0,0)[12], utilizado para ajustar una serie temporal.

En la parte superior, la serie de residuos a lo largo del tiempo muestra cierta estabilidad con algunos picos ocasionales, lo cual indica momentos donde el modelo no predijo con precisión.

El gráfico ACF (parte inferior izquierda) muestra que la mayoría de los rezagos están dentro de las bandas de confianza (líneas azules), lo que sugiere que los residuos no están autocorrelacionados, una buena señal de que el modelo capturó bien la estructura temporal.

Por último, el histograma de los residuos (abajo a la derecha) muestra una distribución aproximadamente normal, aunque con ligeras desviaciones, lo que indica que los errores del modelo son en su mayoría aleatorios.

En conjunto, estos resultados sugieren que el modelo es razonablemente adecuado.

Pronóstico con el modelo SARIMA dentro del set de prueba-Gráfico líneas

# Generar pronóstico para el conjunto de prueba
forecast_arima <- forecast(darima, h = length(test_ts))  # Predecir los valores futuros

# Crear dataframe para gráfico interactivo del pronóstico
forecast_data <- data.frame(Tiempo = time(forecast_arima$mean), 
                            Pronostico = as.numeric(forecast_arima$mean),
                            Observado = as.numeric(test_ts))

# Graficar pronóstico junto con los valores observados reales
p4 <- ggplot(forecast_data, aes(x = Tiempo)) +
  geom_line(aes(y = Pronostico, color = "Pronóstico")) +
  geom_line(aes(y = Observado, color = "Observado")) +
  ggtitle("Pronóstico vs Observado") +
  xlab("Tiempo") + ylab("Unidad Variable 3")

ggplotly(p4)  # Convertir el gráfico en interactivo

El gráfico muestra una comparación entre los valores pronosticados y observados de la Variable 3; venta vehículos del Valle a lo largo del tiempo. Se aprecia una marcada diferencia entre ambas líneas: mientras los valores observados (línea roja) presentan un crecimiento continuo y sostenido, los valores pronosticados (línea celeste) permanecen casi planos, con un aumento muy leve.

Esta diferencia indica que el modelo de pronóstico no está capturando adecuadamente la tendencia real de la variable, subestimando significativamente su crecimiento.

Por lo tanto, este análisis es limitado para predecir tendencias para el Concesionario KIA Motors.

Pronóstico con el modelo SARIMA dentro del set de prueba-Gráfico líneas

# Cargar librerías necesarias
library(forecast)
library(dplyr)

# Generar pronóstico con el modelo ARIMA identificado
arima_forecast <- forecast(auto_arima_model, h = length(test_ts))

# Crear un dataframe con los valores observados y pronosticados
forecast_table <- data.frame(
  Tiempo = time(arima_forecast$mean),  # Extraer las fechas del pronóstico
  Observado = as.numeric(test_ts),  # Valores reales
  Pronosticado = as.numeric(arima_forecast$mean)  # Valores pronosticados
)

# Mostrar la tabla
print(forecast_table)
##     Tiempo Observado Pronosticado
## 1 2024.750      1652     1456.341
## 2 2024.833      1849     1474.582
## 3 2024.917      2092     1493.470

Pronóstico del modelo automático SARIMA fuera de muestra, es decir, en enero 2025

Es decir, le sumamos al periodo de prueba una observación más. Es decir, se estan pronosticando 4 observaciones o meses.

# Cargar librerías necesarias
library(forecast)

# Hacer un pronóstico para el siguiente mes (1 período adicional)
next_forecast <- forecast(auto_arima_model, h = length(test_ts) + 1)

# Extraer el pronóstico del próximo mes
next_month_forecast <- data.frame(
  Tiempo = time(next_forecast$mean),  # Extraer la fecha del pronóstico
  Pronostico = as.numeric(next_forecast$mean)  # Valor pronosticado
)

# Mostrar el pronóstico completo
print(next_month_forecast)
##     Tiempo Pronostico
## 1 2024.750   1456.341
## 2 2024.833   1474.582
## 3 2024.917   1493.470
## 4 2025.000   1320.807
# Extraer solo el valor del trimestre adicional (último de la tabla)
next_month <- tail(next_month_forecast, 1)
print(paste("Pronóstico para enero 2025:", next_month$Tiempo, "=", next_month$Pronostico))
## [1] "Pronóstico para enero 2025: 2025 = 1320.80744019356"

El modelo Sarima no encuentra diferencias significativas en la aproximación a la generación de pronósticos de ventas.

Conclusión:

De acuerdo al análisis de las anteriores variables,al interrelacionarlas con la empresa de análisis se puede concluir que antes de implementar el modelo ARIMA y SARIMA se encontró que:

Las ventas de Kia han seguido patrones similares al comportamiento general del comercio minorista. En períodos de expansión del comercio (como en 2014 y 2022), también aumentaron sus registros de ventas, mientras que en años de contracción económica y menor gasto (2016, 2020), las ventas de vehículos Kia disminuyeron. Esto indica una fuerte correlación entre el dinamismo del comercio y el desempeño de la marca.

Existe una relación directa entre el ICC y las ventas de Kia. Años con mayor confianza del consumidor (por ejemplo, 2014 y 2022) reflejaron aumentos en ventas, mientras que periodos con ICC negativo o muy bajo (como en 2016 y durante la pandemia) coincidieron con caídas en la adquisición de vehículos. Esto sugiere que la disposición de los hogares a realizar compras de alto valor está muy influenciada por la percepción de estabilidad económica.

El comportamiento de Kia es representativo del mercado automotor en general. La marca sigue de cerca la tendencia del total de ventas de vehículos nuevos. Años con recuperación del sector (como 2021 y 2022) vieron también recuperación en Kia, mientras que años con baja generalizada (como 2016 y 2020) afectaron por igual a la empresa. Esto indica que Kia responde a las condiciones generales del mercado más que a dinámicas internas aisladas}

Sin embargo, cuando se hace la depuración de los datos a través del modelo ARIMA y posteriormente se analiza el efecto estacional de las variable Ventas Vehículos Valle a través del modelo SARIMA, se encontró que son modelos limitados para predecir tendencias por lo cual se sugiere que el Concesionario KIA evalúe otros métodos.