Full text
Treball de Fi de Grau GRAU EN ENGINYERIA EN TECONLOGIES INDUSTRIALS Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA Autor: Oscar-Lewis Pons Hardwick Director: Josep Ginebra Molins Convocatòria: Juny 2025
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 2
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 3 Resumen: Este trabajo presenta el desarrollo de una primera versión de un sistema de previsión de la demanda para una cadena de hornos de Barcelona, combinando el uso de modelos estadísticos ARIMAX y SARIMAX con una aplicación web desarrollada en Streamlit. El proyecto surge de la necesidad real de optimizar la planificación de producción en un negocio de productos frescos, donde la previsión manual diaria provocaba excesos o faltantes de stock, impactando en costes y desperdicio. Utilizando datos históricos de ventas diarias de una de las tiendas, enriquecidos con variables externas como días festivos, actividad escolar y condiciones meteorológicas, se construyeron modelos de predicción capaces de capturar con alta precisión la dinámica de la demanda. El análisis detallado sobre distintos grupos de productos demostró que las variables de calendario, especialmente los días lectivos y festivos, tienen un impacto significativo en las ventas, mientras que las condiciones meteorológicas ejercen un efecto más moderado. La aplicación web creada automatiza todo el flujo de trabajo: desde la ingesta y tratamiento de los datos hasta la generación y visualización de predicciones. Esto permite que cualquier usuario, sin necesidad de conocimientos técnicos avanzados, pueda actualizar los datos y obtener previsiones semanales de demanda de manera sencilla e intuitiva. Este prototipo funcional marca un primer paso hacia una solución de previsión integrada que mejora la eficiencia operativa, optimiza el inventario y reduce el desperdicio de productos perecederos. Además, su diseño modular permite una futura expansión tanto en funcionalidades como en escalabilidad a otras tiendas de la cadena.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 4 Resum: Aquest treball presenta el desenvolupament d’una primera versió d’un sistema de previsió de la demanda per a una cadena de forns de Barcelona, combinant l’ús de models estadístics ARIMAX i SARIMAX amb una aplicació web desenvolupada amb Streamlit. El projecte neix d’una necessitat real d’optimitzar la planificació de la producció en un negoci de productes frescos, on la previsió manual diària provocava excessos o mancances d’estoc, impactant en els costos i el malbaratament. Utilitzant dades històriques de vendes diàries d’una de les botigues, enriquides amb variables externes com dies festius, activitat escolar i condicions meteorològiques, es van construir models de predicció capaços de capturar amb alta precisió la dinàmica de la demanda. L’anàlisi detallada de diferents grups de productes va demostrar que les variables de calendari, especialment els dies lectius i festius, tenen un impacte significatiu en les vendes, mentre que les condicions meteorològiques tenen un efecte més moderat. L’aplicació web creada automatitza tot el flux de treball: des de la ingesta i tractament de les dades fins a la generació i visualització de les prediccions. Això permet que qualsevol usuari, sense coneixements tècnics avançats, pugui actualitzar les dades i obtenir previsions setmanals de demanda d’una manera senzilla i intuïtiva. Aquest prototip funcional representa un primer pas cap a una solució de previsió integrada que millora l’eficiència operativa, optimitza l’inventari i redueix el malbaratament de productes peribles. A més, el seu disseny modular permet una futura expansió tant en funcionalitats com en escalabilitat a altres botigues de la cadena.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 5 Abstract: This project presents the development of a first version of a demand forecasting system for a bakery chain in Barcelona, combining the use of ARIMAX and SARIMAX statistical models with a web application developed using Streamlit. The project arises from a real need to optimize production planning in a fresh product business, where manual daily forecasting often led to excess or shortage of stock, affecting costs and causing waste. Using historical daily sales data from one of the stores, enriched with external variables such as public holidays, school activity, and weather conditions, predictive models were built capable of accurately capturing demand dynamics. A detailed analysis of different product groups showed that calendar variables—especially school days and holidays— have a significant impact on sales, while weather conditions exert a more moderate effect. The developed web application automates the entire workflow: from data ingestion and processing to the generation and visualization of forecasts. This allows any user, even without advanced technical knowledge, to update data and obtain weekly demand forecasts in a simple and intuitive way. This functional prototype represents a first step toward an integrated forecasting solution that improves operational efficiency, optimizes inventory, and reduces waste of perishable products. In addition, its modular design allows for future expansion both in functionality and scalability to other stores in the chain.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 6 Contenido RESUMEN: ......................................................................................................................................... 3 RESUM: ............................................................................................................................................. 4 ABSTRACT:......................................................................................................................................... 5 GLOSARIO Y NOMENCLATURA ....................................................................................................... 8 LISTADO DE FIGURAS ..................................................................................................................... 9 1. INTRODUCCIÓN ...................................................................................................................... 10 1.1 MOTIVACIÓN ........................................................................................................................................ 10 1.2 PRESENTACIÓN DEL PROBLEMA ........................................................................................................... 10 1.3 OBJETIVOS Y REQUERIMIENTOS DEL PROYECTO .................................................................................... 11 1.4 ALCANCE ............................................................................................................................................ 12 2. INTRODUCCIÓN TEÓRICA ...................................................................................................... 13 2.1 MODELOS ARIMA ............................................................................................................................... 13 2.1.1 Componente Autorregresiva (AR) .................................................................................. 14 2.1.2 Componente de Media Móvil (MA) .................................................................................. 14 2.1.3 Componente de Integración (I) ....................................................................................... 15 2.1.4 Modelo ARIMA General .................................................................................................. 15 2.2 MODELOS ARIMAX Y SARIMAX ........................................................................................................ 16 2.2.1 Modelo SARIMA ............................................................................................................. 16 2.2.2 Modelo ARIMAX ............................................................................................................. 17 2.2.3 Modelo SARIMAX ........................................................................................................... 17 3. METODOLOGÍA Y DESARROLLO ........................................................................................... 18 3.1 OBTENCIÓN Y TRATAMIENTO DE LOS DATOS .......................................................................................... 18 3.2 Limpieza de los datos ....................................................................................................... 19 3.3 Clasificación de productos ............................................................................................... 20 3.4 Exploración y calidad de los datos ................................................................................... 22 3.5 Variables Externas y su obtención .................................................................................... 24 3.5.1 Atributos de fecha .......................................................................................................... 25 3.5.2 Días festivos laborables ................................................................................................. 25 3.5.3 Días con actividad escolar ............................................................................................. 25 3.5.4 Datos Meteorológicos .................................................................................................... 26 3.6 DATOS FINALES ................................................................................................................................... 27 4. MODELOS ARIMAX ................................................................................................................. 29 4.1 AJUSTE DEL MODELO – FUNCIÓN AUTO.ARIMA() .................................................................................... 29 4.1.1 Estimación del ordén d................................................................................................... 29 4.1.2 Estimación del orden D .................................................................................................. 30 4.1.3 Estimación de ordenes p, q y P,Q .................................................................................. 31 4.1.4 Estimación de los parámetros mediante CSS-ML........................................................... 32 4.2 Construcción final de la función ....................................................................................... 32 5. RESULTADOS......................................................................................................................... 36 5.1 Línea Barras – Ultracongelados ........................................................................................ 36 5.1.1 Análisis inicial ................................................................................................................ 36 5.1.2 Modelo ajustado ............................................................................................................. 39 5.1.3 Análisis de los residuos ................................................................................................. 40
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 7 5.1.4 Predicciones .................................................................................................................. 43 5.2 BOLLERÍA .............................................................................................................................................. 44 5.2.1 Análisis inicial ................................................................................................................ 44 5.2.2 Modelo ajustado ............................................................................................................. 46 5.2.3 Análisis de los residuos ................................................................................................. 48 5.2.4 Predicciones .................................................................................................................. 50 5.3 LÍNEA BARRAS – BARRAS DE COCCIÓN DIRECTA ................................................................................. 51 5.3.1 Análisis inicial ................................................................................................................ 51 5.3.2 Modelo ajustado ............................................................................................................. 53 5.3.3 Análisis de los residuos ................................................................................................. 54 5.3.4 Predicciones .................................................................................................................. 56 5.4 RÚSTICOS DIRECTOS ........................................................................................................................... 57 5.4.1 Análisis inicial ................................................................................................................ 57 5.4.2 Modelo ajustado ............................................................................................................. 58 5.4.3 Análisis de los residuos ................................................................................................. 59 5.4.4 Predicciones .................................................................................................................. 61 5.5 RESUMEN DE LOS MODELOS ................................................................................................................. 62 6. AUTOMATIZACIÓN DEL PROCESO ............................................................................................ 64 6.1 ESTRUCTURA DE LA WEBAPP .............................................................................................................. 64 6.2 PÁGINA DE INICIO ................................................................................................................................. 65 6.3 PÁGINAS DE PREDICCIÓN ..................................................................................................................... 66 6.4 FUTURAS MEJORAS .............................................................................................................................. 67 7. PLANIFICACIÓN .......................................................................................................................... 68 8. ESTUDIO ECONÓMICO ............................................................................................................... 70 9. ESTUDIO AMBIENTAL ................................................................................................................ 72 10. ESTUDIO SOCIAL Y DE IGUALDAD DE GÉNERO ..................................................................... 74 11. CONCLUSIONES ....................................................................................................................... 75 12. AGRADECIMIENTOS ................................................................................................................. 76 13. BIBLIOGRAFÍA .......................................................................................................................... 77 ANEXOS ......................................................................................................................................... 78 ANNEXO 1: BLOQUE DE CÓDIGO LIMIPIAR LAS FILAS Y COLUMNAS DE LOS DATOS EXTRAÍDOS DEL TPV ........... 78 ANNEXO 2: UNIÓN CON “ITEMMASTER” Y AGREGACIÓN POR GRUPO .............................................................. 79 ANEXO 3: OBTENCIÓN DE LOS DATOS METEOROLÓGICOS MEDIANTE API ...................................................... 79 ANEXO 4: INTEGRACIÓN DE VARIABLES EXTERNAS ................................................................................................ 81 ANEXO 5: TRATAMIENTO DE VALORES ATÍPICOS ................................................................................................... 82 ANEXO 6: SCRIPT EN R PARA AJUSTAR LOS MODELOS ARIMA ................................................................................. 83
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 8 Glosario y Nomenclatura ARIMA: Autoregressive integrated moving average ARIMAX: Autoregressive Integrated Moving Average with Exogenous Variables TPV: Terminal Punto de Venta API: Application Programming Interface (interfaz de programación de aplicaciones) IQR: Interquartile range (Rango Intercuartílico) Rezago: o lag en inglés. Retraso temporal entre una variable y otra KPSS (Kwiatkowski-Phillips-Schmidt-Shin) AIC Criterio de información de Akaike STL (Seasonal-Trend decomposition using Loess) ACF: Autocorrelation Factor PACF: Partial Auctorrelaction factor
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 9 Listado de Figuras Figura 1: Muestra de los datos obtenidos del sistema TPV con la definición de las columnas principales ................................................................................................................. 19 Figura 2: argumentos para la función auto.arima() utilizados ............................................. 33 Figura 3: Ejemplo de resultado en la consola tras definir Trace = True ........................... 34 Figura 4: Serie temporal del grupo de Línea Barras - Ultracongelados ............................ 37 Figura 5: Boxplot de las ventas por día de la semana del grupo de Línea Barras - Ultracongelados .......................................................................................................................... 38 Figura 6: Boxplot de las ventas por día de la semana del grupo de Línea Barras – Ultracongelados .......................................................................................................................... 38 Figura 7: Model Summary de la serie de Línea Barras – Ultracongelados ...................... 39 Figura 8: Gráficos ACF y PACF de los residuos de la serie de Línea Barras – Ultracongelados .......................................................................................................................... 41 Figura 9: Residuos a lo largo del tiempo de la serie de Línea Barras – Ultracongelados............. 42 Figura 10: Modelo de Línea Barras – Ultracongelados con la predicción de los últimos 7 días de la serie vs los valores actuales .................................................................................. 43 Figura 11: Serie temporal del grupo Bollería ............................................................................... 44 Figura 12: Boxplot de las ventas por día de la semana del grupo Bollería ................................... 45 Figura 13: ACF y PACF de la serie Bolleria........................................................................... 46 Figura 14: Model Summary de la serie Bollería .................................................................... 47 Figura 15: Gráficos ACF y PACF de los residuos de la serie “Bollería”........................... 48 Figura 16: Residuos a lo largo del tiempo de la serie “Bolleria” ......................................... 49 Figura 17: Modelo de Bollería con la predicción de los últimos 7 días de la serie vs los valores actuales .......................................................................................................................... 50 Figura 18: Serie temporal del grupo de “Linia Barras – Barras de Cocció Directe” ........ 52 Figura 19: : Boxplot de las ventas por día de la semana del grupo “Linia Barras – Barras de Cocció Directe” ...................................................................................................................... 53 Figura 20: Model Summary de la serie de Línea Barras de Cocción Directa .................. 54 Figura 21: ACF y PACF de los residuos de la serie Línea Barras de Cocción Directa .. 55 Figura 22: Residuos a lo largo del tiempo de la serie Línea Barras de Cocción Directa .............. 56 Figura 23: Modelo de Línea Barras de Cocción Directa con la predicción de los últimos 7 días de la serie vs los valores actuales ............................................................................... 56 Figura 24: Serie temporal del grupo de Rústicos Directos .................................................. 58 Figura 25: Model Summary de la serie de Rústicos Directos ............................................. 59 Figura 26: ACF y PACF de los residuos de la serie Rústicos Directos ........................................ 60 Figura 27: Residuos a lo largo del tiempo de los rústicos Directos ................................... 60 Figura 28: Modelo de Rústicos Directos con la predicción de los últimos 7 días de la serie vs los valores actuales..................................................................................................... 61 Figura 29: Captura de pantalla de la página de inicio de la aplicación ............................. 65 Figura 30: Captura de pantalla de la página de predicción de la serie de Bollería ....................... 66
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 16 2.2 Modelos ARIMAX y SARIMAX El modelo ARIMAX (Autoregressive Integrated Moving Average with Exogenous Variables) es una extensión del modelo ARIMA que permite incluir variables externas que influyen en la serie temporal mejorando la capacidad predictiva del modelo. Cuando también se desea capturar patrones estacionales repetitivos, como fluctuaciones mensuales o anuales, se emplea la versión más completa: SARIMAX (p, d, q)(P, D, Q, s), que incorpora componentes autorregresivos (AR), de integración (I), y de media móvil (MA), tanto en su forma no estacional como estacional. 2.2.1 Modelo SARIMA Los modelos SARIMA tienen en cuenta la estacionalidad aplicando un modelo ARIMA a retardos que son múltiplos enteros del período estacional. Después de modelar la estacionalidad, se aplica un modelo ARIMA a los residuos para capturar la estructura no estacional restante. La forma general de los modelos SARIMA es: Φ (Ls)𝑃𝜙(𝐿)𝑝∇𝑑∇𝐷𝑠𝑋𝑡= θ(Ls)𝑄θ(L)q𝜀𝑡 O escrito de una forma expandida: ∇𝑑∇𝐷𝑠𝑋𝑡=𝑐+ ∑Φ𝑖∇𝑑 𝑞 𝑖=1 ∇𝐷𝑠 𝑋𝑡−𝑖 + ∑θ𝑗 𝑞 𝑗=1 𝜀𝑡−𝑗 + ∑Φ𝐼 (𝑠)𝑋𝑡−𝑆𝐼 + 𝑃 𝐼=1 ∑θ𝐽 (𝑠)𝜀𝑡−𝑠𝐽 𝑄 𝐽=1 + 𝜀𝑡 Donde: - P, D, Q son órdenes estacionales - “s” es la longitud del período estacional - Ls es el operador de rezago estacional
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 17 2.2.2 Modelo ARIMAX El modelo ARIMA trabaja únicamente con los datos históricos de la propia serie, lo que ya permite obtener previsiones bastante consistentes. Pero ARIMAX va un paso más allá: permite incluir variables externas, como promociones, condiciones climáticas o variaciones de precio —factores que, en la práctica, influyen directamente en el comportamiento del consumidor. Esta capacidad de combinar información interna con elementos del contexto convierte a estos modelos en herramientas sumamente útiles para anticipar la demanda con mayor precisión. Así, resulta mucho más fácil planificar inventarios, ajustar la producción o incluso dimensionar el equipo de manera más eficiente, siempre basándose en datos reales y escenarios concretos. La fórmula general de los modelos ARIMAX es: ∇𝑑𝑋𝑡= 𝑐+ ∑Φ𝑖 𝑝 𝑖=1 𝑋𝑡−𝑖 + 𝜀𝑡+ ∑θ𝑗𝜀𝑡−𝑗 𝑞 𝑗=1 + ∑𝛽𝑘𝑍𝑘,𝑡 𝑛 𝑘=1 Donde: - 𝑍𝑘,𝑡 son las variables exógenas observadas en el período t - 𝛽𝑘 son los coeficientes asociados a las variables externas 2.2.3 Modelo SARIMAX Finalmente, combinando los modelos ARIMA con estacionalidad (SARIMA) con variables exógenas, obtenemos el modelo completo SARIMAX que va ser especialmente útil para medir y estimar la demanda cada producto que se va a estudiar. Φ (Ls)𝑃𝜙(𝐿)𝑝∇𝑑∇𝐷𝑠𝑋𝑡= θ(Ls)𝑄θ(L)q𝜀𝑡 + ∑𝛽𝑘𝑍𝑘,𝑡 𝑛 𝑘=1
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 18 3. Metodología y Desarrollo Para que una serie temporal pueda ser utilizada correctamente en un modelo ARIMA y sus derivados, es fundamental que esté organizada como una secuencia cronológica continua, con intervalos de tiempo regulares (diarios, mensuales, anuales, etc.). La serie debe contener un único valor por cada punto en el tiempo y no debe haber fechas faltantes. Además, es necesario revisar y tratar posibles valores atípicos o inconsistencias, así como gestionar los valores perdidos mediante interpolación u otros métodos. Esta estructura clara y limpia es esencial para garantizar la calidad del análisis y la fiabilidad de las predicciones del modelo. Para este proyecto, se utilizarán los datos de la tienda ubicada en “Travessera de les Corts Catalanes” para los años 2021, 2022, y 2023. 3.1 Obtención y tratamiento de los datos Los datos que se utilizan para el proyecto se obtienen des de la aplicación del TPV (Terminal Punto de Venta), que ofrece la opción de exportar el número de ventas de cada producto en el intervalo de fechas seleccionado en formato Excel. Este reporte incluye también el precio por unidad para obtener las ventas totales. Aun así, solo se utilizará las unidades vendidas de cada producto y fecha. El informe generado por el TPV tiene un formato complicado de leer, separando las ventas de cada producto, mostrando un producto tras otro. Las columnas también llegan en un formato diferente al estándar para ser utilizadas en cualquier tipo de modelo estadístico.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 19 Figura 1: Muestra de los datos obtenidos del sistema TPV con la definición de las columnas principales 3.2 Limpieza de los datos Los archivos con los datos obtenidos del TPV serán manipulados utilizando la biblioteca Pandas en el lenguaje de programación Python. Esta biblioteca se utiliza principalmente para la manipulación, análisis y limpieza de datos de forma estructurada y eficiente. Ofrece estructuras como DataFrame y Series, que permiten trabajar con datos tabulares de forma flexible. Con pandas es posible cargar datos desde múltiples formatos como Excel o CSV. Permite realizar filtrados, agregaciones, transformaciones, y así preparar conjuntos de datos para análisis más avanzados o modelos estadísticos como ARIMA. Para reestructurar los datos en una sola serie, partiendo de distintos ficheros del TPV, se ha creado una función llamada “data_cleaning” que utiliza los índices de cada columna y articulo para redistribuir las columnas y obtener un formato con las siguientes columnas (código utilizado en el Anexo X) : - Date: Fecha de la venta - Item: Nombre del articulo
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 20 - Location: Tienda en la que se realiza la venta - Qty: Unidades vendidas - PVP: Precio unitario del articulo - Total: Ventas totales del producto (Qty * PVP) La función recibe la dirección de todos los archivos como inputs y realiza los cambios estructurales a cada archivo juntándolos en una sola serie con la que se puede empezar a explorar los datos. Tabla 1: Muestra de datos reestructurados tras utilizar la función data_cleaning [Python] 3.3 Clasificación de productos El negocio ofrece alrededor de 700 tipos de productos a lo largo del año. Estos productos pueden estar relacionados entre ellos por las similares fases en el inicio de los procesos de producción. A continuación, ejemplos de diferentes productos que comparen fases de producción: - Pan: La mezcla, el amasado, reposo/fermentación, y formado son comunes para muchos distintos grupos de barras de pan - Bollería (croissants, napolitanas…): La mezcla, amasado, laminado, y reposo son comunes para los productos de bollería. Por estas fases similares de producción se ha creado grupos y subgrupos de productos para agrupar las ventas de cada categoría de artículo para modelar y predecir la demanda de los subgrupos en vez de cada artículo individual.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 21 Groups Subgrups Linia Barras Ultracongelat Barras Precuit Barras cocció directa Línia Xapatera Precuit Xapata i coca Productes Major Coca de Forner Pa Rústic Rústic directe Especialitats Pa Massa Major Bolleria Especialitats Pastisseria Botiga Cafeteria Cartonatge Trastenda Tabla 2: Grupos y subgrupos de productos Existen artículos que refieren a distintos productos o categorías simultáneamente. Por ejemplo el artículo con nombre: “1550 - OFERTA cafe-llet + croissant” está formado por un producto del subgrupo “Cafetería” y además, también forma parte del grupo “Bollería” al contener un croissant. Para asociar cada producto con su grupo y subgrupo, se ha creado un archivo llamado Item_master. En este archivo se han añadido los grupos y subgrupos de cada producto además de asociaciones entre productos. Utilizando el ejemplo anterior de la oferta de “café + croissant”, el artículo está vinculado al grupo “Botiga”, Subgrupo “Cafetería”, pero también tiene las columnas de Grupo y Subgrupo de Referencia como “Bollería”. Utilizando este archivo, en la siguiente fase de agregación de ventas por producto, se
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 22 podrá incluir cada producto en todos los grupos y subgrupos con las unidades vendidas indicadas. Por ejemplo, el ítem “1520 - OFERTA 2 BARRAS ARTESANAS” indica la venta de 2 artículos de “barras artesanas”, por lo que en Item_Master aparecerá con cantidad de 2. La ventaja de utilizar un fichero como este para relacionar los productos es que es fácilmente editable, con lo que se podrá añadir productos o cambiar relaciones entre productos si es necesario en algún momento. Tabla 3: Muestra del fichero item_master Después de agrupar las ventas de cada producto por grupo, subgrupo, y fecha la serie contiene las columnas Date (Fecha), Grupo, Subgrupo, Qty (unidades vendidas). 3.4 Exploración y calidad de los datos Antes de aplicar un modelo ARIMA, es fundamental realizar una exploración cuidadosa de la serie temporal. Este paso permite detectar posibles irregularidades, como fechas sin registro de ventas que podrían deberse a cierres operativos o errores de captura, y que deben ser tratadas adecuadamente. Asimismo, es importante identificar valores atípicos que se alejen del comportamiento habitual de la serie, ya que podrían influir negativamente en los resultados del modelo.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 23 Fechas sin ventas: Al realizar un análisis preliminar de los datos, observamos que en los días en que la tienda cierra no se registran datos, como por ejemplo el día de Navidad. Para evitar que falte algún día en la tabla de datos, se han añadido artificialmente los días de Navidad utilizando el promedio del día anterior y posterior de cada grupo y subgrupo, de modo que la cantidad vendida de un producto será ese valor estimado. Tal que: 𝑄𝑡𝑦 𝑑í𝑎 25=(𝑄𝑡𝑦 𝑑í𝑎 24+ 𝑄𝑡𝑦 𝑑í𝑎 26) 2 Valores atípicos: Para identificar valores atípicos en la variable "Qty" (cantidad vendida), se ha utilizado el método del rango intercuartílico (IQR). Este enfoque estadístico permite detectar datos que se alejan significativamente del comportamiento general de la serie. En concreto: • Q1 representa el primer cuartil (el 25% de los valores más bajos), • Q3 es el tercer cuartil (el 75% de los valores más bajos), • IQR es la diferencia entre ambos (IQR = Q3 - Q1), que mide la dispersión de los datos centrales. A partir de estos valores, se definen los límites inferior y superior: • Límite inferior: Q1 - 1.5 × IQR • Límite superior: Q3 + 1.5 × IQR Cualquier valor fuera de este rango se considera un valor atípico, es decir, una observación anómala que podría afectar el análisis si no se trata adecuadamente.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 24 Los valores atípicos identificados fueron revisados y validados en conjunto con los responsables de la tienda. Una vez confirmados como anómalos, se sustituyeron por un valor más representativo: la media correspondiente al mismo día de la semana y el mismo año. Por ejemplo, si un miércoles de 2023 presentaba un valor atípico, este se reemplazó por la media de todas las ventas registradas en los miércoles de 2023. Este método permite mantener la coherencia estacional y semanal de la serie, evitando distorsionar patrones reales de comportamiento en los datos. 3.5 Variables Externas y su obtención Una de las decisiones más relevantes dentro del desarrollo de modelos de series temporales, como ARIMA o sus variantes extendidas (ARIMAX, SARIMAX), es la correcta selección e integración de variables externas, también conocidas como variables exógenas. Estas variables complementan la información contenida en la serie principal al incorporar factores externos que pueden influir de manera significativa sobre la demanda. En el contexto de este estudio, orientado a la previsión de ventas en una panadería, se ha considerado fundamental no solo trabajar con los datos históricos de ventas, sino también enriquecer el modelo con variables adicionales que reflejen aspectos del calendario, la actividad escolar y las condiciones meteorológicas. La inclusión de estas variables busca capturar patrones de comportamiento más complejos, como aumentos de la demanda durante festivos, cambios según los días lectivos o variaciones asociadas al clima. Para ello, se ha llevado a cabo un proceso cuidadoso de recopilación y transformación de datos, combinando fuentes públicas, herramientas automatizadas y bibliotecas específicas de Python. En los siguientes apartados se detalla el proceso seguido para obtener cada una de estas variables, así como su justificación teórica dentro del modelo.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 25 3.5.1 Atributos de fecha Los atributos de fecha que se han añadido a la serie son el día de la semana (Lunes, Martes, …, Domingo), la semana del año (1,…53) , el año (2021, 2022, 2023) y el mes del año (1,…,12). Estas columnas se han añadido para enriquecer la serie de datos, pero la columna que se prevé que será más influyente en la variación de la demanda es el día de la semana, ya que se espera que los patrones de compra sean muy distintos un día entre semana como un Martes o Miércoles comparado con un día del fin de semana. Estas columnas se han obtenido con la biblioteca de Python datetime que permite llamar estos atributos a partir de la fecha. 3.5.2 Días festivos laborables Los días festivos laborables pueden aumentar la demanda, ya que más personas están en casa y compran productos frescos para el desayuno o celebraciones. Para incorporar la variable correspondiente a los festivos laborables, se consultaron los calendarios oficiales publicados en el sitio web del Ayuntamiento de Barcelona. A partir de esta información, se construyó un archivo en formato Excel con las fechas identificadas como festivos. Este archivo fue posteriormente integrado en la base de datos principal, permitiendo así marcar de forma precisa los días en los que la actividad comercial podría verse afectada por cierres o cambios en los hábitos de consumo. 3.5.3 Días con actividad escolar Los días con actividad escolar pueden elevar las ventas por la compra de desayunos o meriendas para estudiantes, especialmente por las mañanas.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 32 El algoritmo selecciona el modelo con el menor valor de AIC o AICc, es decir, el modelo que logra el mejor compromiso entre ajuste a los datos y simplicidad. 4.1.4 Estimación de los parámetros mediante CSS-ML Una vez definida la estructura del modelo, es decir, una combinación concreta de órdenes, se procede a la estimación de los parámetros numéricos que determinan el comportamiento del modelo. En esta fase, los métodos que se usan son el método CSS y luego se refinan los resultados con máxima verosimilitud (ML), que ofrece mayor precisión. En primer lugar, se aplica el método CSS (Conditional Sum of Squares). Esta técnica se basa en minimizar la suma de los errores cuadráticos de predicción, ignorando las condiciones iniciales de la serie. Se minimiza: 𝐶𝑆𝑆 = ∑ (𝑋𝑡− 𝑋 𝑡)2 𝑛 𝑡=𝑝+1 Donde 𝑋 𝑡es la predicción del modelo A partir de los valores obtenidos por CSS, se maximiza la función de verosimilitud (ML) previamente explicada (𝐿). Esta función es la probabilidad de observar los datos dados los parámetros del modelo. 4.2 Construcción final de la función La función en R que se utilizará para ajustar la demanda de cada grupo y subgrupo de productos tiene la siguiente forma y argumentos:
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 33 Figura 2: argumentos para la función auto.arima() utilizados El argumento que toma como valor “serie”, corresponde a la columan Qty de la tabla final. Los valores máximos que el algoritmo usará para cada orden son: - D, d: orden máximo = 2 - P, Q, p, q: orden máximo = 5 Se usa el test KPSS, explicado en el apartado 3.2.1.1 para determinar el orden d, el test STL, explicado en el apartado 3.2.1.2 para determinar y fijar el orden. Finalmente, los órdenes P,Q,p, y q se estiman utilizando el cálculo AICc. Otros argumentos de la función: - Seasonal = TRUE: activa la búsqueda de componentes estacionales (P,D,Q). Si este argumento se definiera como FALSE, se ajustaría un modelo ARIMA sin estacionalidad (solo buscaría p,d,q) - Stepwise = TRUE: Utiliza un algoritmo heurístico (de máxima simpicidad y eficiencia) que explora una parte limitada del espacio de modelos, evaluando solo combinaciones prometedoras, así consiguiendo que el ajuste del modelo sea mucho más rápido.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 34 - Approximation = TRUE: Utiliza un método de estimación aproximado, basado en CSS, que es más rápido, aunque menos preciso. Cuando se trabaja con muchas series, como en nuestro caso que tenemos 15 combinaciones de grupos y subgrupos, es preferible. - Trace = FALSE: El proceso se ejecuta en segundo plano sin mostrar los resultados intermedios. Si se definiera como TRUE, se mostraría por la consola todas las combinaciones de ordenes que el algoritmo prueba junto con los resultados del cálculo AICc. Figura 3: Ejemplo de resultado en la consola tras definir Trace = True Las variables exógenas que se han incorporado en el modelo son las siguientes (Argumento de la función auto.arima() Xreg): Variable Descripción Tipo de Variable tmax Temperatura máxima del día Cuantitativa, Contínua tmin Temperatura 34estiv del día Cuantitativa, Contínua plou Binario 0,1 indicando si los mm de precipitación son 34estive34s a 1 Categórica – Binaria [0,1]
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 35 ploulag Lag de un día de la variable Plou Categórica – Binaria [0,1] month_segm Binario 0,1 indicando si nos encontramos en los meses de Julio o Agosto Categórica – Binaria [0,1] festiu Binario 0,1 indicando si esa fecha es un 35estive laboral Categórica – Binaria [0,1] school_day Binario 0,1 indicando si esa fecha es un día lectivo Categórica – Binaria [0,1] Monday Binario 0,1 indicando el día de la semana en el que se encuentra esa fecha Categórica – Binaria [0,1] Tuesday Wednesday Thursday Friday Saturday Sunday Tabla 5: Tabla con las variables exógenas incluídas en los modelos
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 36 5. Resultados En esta sección se presentan los resultados obtenidos después de ajustar un modelo ARIMA a las series temporales de cada subgrup. Aunque el proceso automatizado de modelización contempla la estimación de un total de 15 series, una por cada subgrupo de productos identificados, se ha optado por centrar el análisis detallado en cuatro de los grupos más representativos por volumen de ventas, comportamiento temporal y relevancia operativa dentro del negocio. Los grupos analizados en profundidad son: - “Linia Barras – Ultracongelat” - “Bollería” - “Línea Barras – Barras de Cocción Directa” - “Rústicos Directos” 5.1 Línea Barras – Ultracongelados 5.1.1 Análisis inicial La serie del subgrupo “Línia Barras – Ultracongelat” las ventas diarias que oscilan entre 112 y 457 unidades, con una media de 276 y una mediana de 272, lo que sugiere una distribución equilibrada, sin grandes asimetrías. Los valores del primer y tercer cuartil (Q1 = 220, Q3 = 334) indican que, aunque la mayoría de los datos se concentran en ese rango, la amplitud refleja una variabilidad importante en el volumen de ventas diario. Esto puede estar relacionado tanto con fluctuaciones estacionales como con la influencia de variables externas.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 37 Min 112.0 Q1 (25%) 220.0 Mean 276.1 Median (Q2) 272.0 Q3 (75%) 334.0 Max 457.2 Tabla 6: Valores estadísticos resumen de la serie de Línea Barras - Ultracongelados Figura 4: Serie temporal del grupo de Línea Barras - Ultracongelados En la serie temporal (Figura 4), se identifican picos de demanda que se repiten en los mismos periodos del año, siendo los meses con mas demanda entre setiembre y mayo y observando caídas pronunciadas durante los meses de julio y agosto, lo que apunta a una estacionalidad anual relacionada con el calendario vacacional.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 38 Figura 5: Boxplot de las ventas por día de la semana del grupo de Línea Barras - Ultracongelados El análisis por día de la semana (Figura 5) demuestra un patrón muy marcado en el que los fines de semana, especialmente los sábados, presentan una caída considerable en las ventas, en contraste con los días laborables, que mantienen un nivel elevado y más homogéneo Figura 6: Boxplot de las ventas por día de la semana del grupo de Línea Barras – Ultracongelados
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 39 5.1.2 Modelo ajustado El modelo seleccionado para esta serie es un SARIMAX(1,1,2)(2,0,0)[7], lo que implica: • Una diferenciación no estacional (d=1) para hacer la serie estacionaria. • Una combinación de un término autorregresivo (p=1) y dos términos de media móvil (q=2), para capturar la dependencia de corto plazo. • En la componente estacional, se incluyen dos términos autorregresivos (P=2) con periodo s=7. Figura 7: Model Summary de la serie de Línea Barras – Ultracongelados De las variables exógenas que incluye el modelo para explicar mejor la variabilidad observad, las más influyentes según los coeficientes y t-valores son: • Días festivos (festiu): muestra un efecto negativo importante con un coeficiente de -32.90 y t-valor = 8.55, lo que indica que la demanda cae de forma significativa durante festivos. • Días con actividad escolar (school_day): presenta un fuerte impacto positivo (coef. = 35.59, t = 9.73), confirmando que este tipo de jornada impulsa notablemente las
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 40 ventas barras de pan. Por esta razón, esperamos un efecto similar de la variable exógena en las otras series. • Segmento temporal Julio y Agosto (month_segm): también es significativo (t = 3.59), lo que sugiere que los meses de Julio y Aogsto tienen un efecto estacional adicional sobre la demanda, más allá del componente semanal ya modelado. • Días de la semana: el sábado destaca como el día con menor demanda, con un coeficiente negativo de -64.28 y un t = 13.73. Le siguen el viernes y el domingo, ambos con coeficientes negativos significativos, reflejando un patrón estacional semanal. • Variables meteorológicas: ninguna resulta estadísticamente significativa, aunque la precipitación sin retardo (plou) se aproxima con un t = 1.60, lo que sugiere que podría tener cierto efecto marginal. El modelo alcanza un R² ajustado de 0.8463, lo que significa que explica aproximadamente el 85% de la variabilidad total de la demanda, un ajuste considerado alto para una serie real con alta fluctuación diaria. La varianza residual es 𝜎2 = 761.5, lo que se traduce en una desviación típica de errores de aproximadamente ±27.6 unidades. Bajo el supuesto de normalidad, el 95% de los errores se espera que estén dentro de un rango de ±55.2 unidades. 5.1.3 Análisis de los residuos Analizar los residuos de un modelo es fundamental para verificar que el modelo ha capturado correctamente la estructura de la serie. Por eso se comprueba que los residuos sean independientes (sin autocorrelación), que presentan varianza constante (homocedasticidad) y que no muestran patrones a lo largo de las series (estacionariedad).
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 41 Si estas condiciones se cumplen, se garantiza que el modelado es completo, que sus predicciones son fiables y que la incertidumbre asociada a las previsiones es estable a lo largo del tiempo. Para analizar estos residuos, se han extraído los gráficos ACF y PACF del modelo (Figura 8) además de los residuos a lo largo del tiempo (Figura 9). Figura 8: Gráficos ACF y PACF de los residuos de la serie de Línea Barras – Ultracongelados Los gráficos ACF y PACF muestran cómo no existe autocorrelación entre los residuos, exceptuando el rezago cero, que por construcción es 1. Todas las autocorrelaciones se encuentran dentro del intervalo de confianza, indicando que los residuos se comportan como ruido blanco.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 48 La varianza residual (𝜎2) es de 501.5. Esto significa que aproximadamente el 68% de los errores estarán entre ±22.4 unidades, y que el 95% estarán dentro de ±44.8 unidades (2 desviaciones estándar). 5.2.3 Análisis de los residuos Figura 15: Gráficos ACF y PACF de los residuos de la serie “Bollería” Los gráficos de ACF y PACF de los residuos muestran que no hay autocorrelación significativa en los rezagos. Todas las autocorrelaciones se encuentran dentro del intervalo de confianza, indicando que los residuos se comportan como ruido blanco. Esto valida que el modelo ha capturado correctamente toda la dependencia temporal de la serie, no dejando patrones sistemáticos sin modelar.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 49 Figura 16: Residuos a lo largo del tiempo de la serie “Bolleria” El gráfico de residuos a lo largo del tiempo indica que los errores se distribuyen de manera aleatoria en torno a cera, sin mostrar tendencias o cambios evidentes. Aunque existen algunos picos de error, no se detectan cambios en la varianza, confirmando la estabilidad del error. En conjunto, estos resultados validan la buena especificación del modelo y refuerzan su fiabilidad para realizar previsiones.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 50 5.2.4 Predicciones Figura 17: Modelo de Bollería con la predicción de los últimos 7 días de la serie vs los valores actuales En el gráfico de la Figura 17 se encuentran las predicciones (línea roja) de los últimos 7 días del periodo analizado (Del 25 de Diciembre al 31 de Diciembre de 2023) para el subgrupo de Bollería con los valores del intervalo de confianza del 95% (líneas azules) A nivel general, se observa que las predicciones siguen de forma cercana el comportamiento de los valores reales. Se puede confirmar, entonces, que el modelo proporciona estimaciones estadísticamente consistentes y que gestiona adecuadamente la incertidumbre de la demanda.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 51 5.3 Línea Barras – Barras de Cocción Directa 5.3.1 Análisis inicial La serie correspondiente al grupo de productos de la Línea Barras de Cocción directa, tiene un rango de valores menor a los grupos de Línea de Barras Ultracongeladas y Bolleía, analizados previamente. Los valores oscilan des de un valor mínimo de 12 unidades y un máximo de 90 unidades. El rango intercuartílico muestra una dispersión moderada de los datos (Q1=33, Q3 = 50; Q3 – Q1 = 17), teniendo la media de ventas diarias en 42.3 unidades. Min 11.0 Q1 (25%) 33.0 Mean 42.3 Median (Q2) 42.0 Q3 (75%) 50.0 Max 88.0 Tabla 8: Valores estadísticos resumen de la serie de Línea Barras de Cocción Directa En el gráfico de la serie temporal (Figura 18) se identifican fluctuaciones regulares a lo largo del tiempo, con ligeros incrementos en determinados periodos del año. No se observa una tendencia a largo plazo, pero sí se detectan patrones estacionales anuales, así como caídas recurrentes de la demanda en los meses de verano (especialmente julio y agosto).
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 52 Figura 18: Serie temporal del grupo de “Linia Barras – Barras de Cocció Directe” El análisis por día de la semana, representado en el boxplot (Figura 19), revela diferencias significativas entre días laborables y fines de semana. Como en los otros grupos y subgrupos estudiados, los fines de semana presentan una demanda significativamente menor comparado con los días laborables. Los viernes se diferencian con el subgrupo de Ultracongelados del mismo grupo, Línea Barras, ya que en los productos ultracongelados se observa una caída de la demanda en los viernes, que en las Barras de Cocción Directa no es evidente.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 53 Figura 19: : Boxplot de las ventas por día de la semana del grupo “Linia Barras – Barras de Cocció Directe” 5.3.2 Modelo ajustado El modelo ajustado para la serie de Barras de Cocción Directa corresponde a un SARIMAX(1,1,2)(1,0,1)[7] con una estructura similar a los modelos utilizados para los subgrupos Bollería y Línea Barras de Ultracongelados. Sin embargo, se observan diferencias importantes tanto en los resultados del ajuste como en la capacidad explicativa del modelo: El R² ajustado obtenido es de 0.6518, sensiblemente inferior al 0.8193 y 0.8463 alcanzados en los otros grupos.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 54 Aunque el modelo incluye los mismos tipos de variables externas (temperaturas, precipitaciones, días lectivos, festivos), el efecto de estas variables es menor en la serie de Barras de Cocció Directa, como puede observarse en los t-valores que son más bajos. Figura 20: Model Summary de la serie de Línea Barras de Cocción Directa Las diferencias clave de este modelo comparado con los otros dos ya ajustados son el volumen de ventas claramente inferior en este subgrupo de productos. El menor volumen de ventas puede introducir una mayor variabilidad relativa en los datos, dificultando la captura de la dinámica de la serie. Las variables externas con los coeficientes más significativos son, aligual que en los otros modelos, los días festivos y escolares, y en menor escala, la temperatura máxima del día (tmax) y el indicador de si en esa fecha llovió (plou). 5.3.3 Análisis de los residuos Los gráficos de ACF y PACF de los residuos (Figura 21) muestran que no hay autocorrelación significativa en los rezagos. Todas las autocorrelaciones se encuentran dentro del intervalo de confianza, indicando que los residuos se comportan como ruido blanco.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 55 Figura 21: ACF y PACF de los residuos de la serie Línea Barras de Cocción Directa El gráfico de los residuos en el tiempo (Figura 22) muestra que estos se distribuyen de forma aleatoria alrededor de cero, sin mostrar patrones de tendencia evidentes ni cambios estructurales en la serie de errores. No se detectan bruscos en la varianza y sugieren que la homocedasticidad de los errores se mantiene a lo largo del periodo analizado.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 56 Figura 22: Residuos a lo largo del tiempo de la serie Línea Barras de Cocción Directa En conjunto, los resultados del análisis de residuos refuerzan que el modelo ajustado para Barras de Cocción Directa es adecuado para la serie y puede ser utilizado para realizar predicciones razonablemente fiables, pese a la mayor variabilidad natural de esta categoría. 5.3.4 Predicciones Figura 23: Modelo de Línea Barras de Cocción Directa con la predicción de los últimos 7 días de la serie vs los valores actuales
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 57 En el gráfico de la Figura 23 de las predicciones de los productos de la Línea Barras de Cocción Directa, se observa que las predicciones no siguen de forma tan cercana el comportamiento de los valores reales (línea negra). Estos valores se ajustan de manera correcta a todos los puntos con excepción de los dos primeros. Estos dos primeros puntos corresponden a los días 25 y 26 de la serie. El día de navidad es el único en el que el negocio esta cerrado por lo que se computó como la media entre el día 24 y 26. Por esta razón, los errores que puedan salir en esta fecha son esperados. Los demás puntos de la predicción se encuentran dentro de los intervalos de confianza establecido. 5.4 Rústicos Directos 5.4.1 Análisis inicial La serie que corresponde a la serie de Rústicos Directos muestra una demanda regular con claras tendencias estacionales con repuntes en los meses de enero a Mayo y caídas en los meses de julio y agosto. Min 25.0 Q1 (25%) 56.0 Mean 66.0 Median (Q2) 66.0 Q3 (75%) 77.0 Max 107.0 Tabla 9: Valores estadísticos resumen de la serie de Rústicos Directos Los valores oscilan entre un mínimo de 25 unidades y un máximo de 107 unidades, menores que los máximos y mínimos de la Línea Barras Ultracongeladas y el subgrupo de Bollería, pero ligeramente mayores que el subgrupo de Línea Barras de Cocción Directa.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 64 6. Automatización del proceso Para la automatización del proceso y su integración en una aplicación web, se utilizó la biblioteca Streamlit en Python. Esta herramienta facilita la creación de aplicaciones web de forma rápida y sencilla, permitiendo desarrollar toda la funcionalidad directamente en Python, sin necesidad de conocimientos avanzados de desarrollo frontend. A diferencia de alternativas como React, que requieren dominar conceptos como la gestión de componentes, estados y rutas, Streamlit simplifica el flujo de trabajo, enfocándose en la lógica del análisis de datos y en la construcción de interfaces básicas. Esta simplicidad permite acelerar significativamente el desarrollo en proyectos de analítica o modelización estadística. No obstante, entre sus principales limitaciones, destaca una menor capacidad de personalización estética y funcional en comparación con frameworks más avanzados, lo que puede suponer una restricción en aplicaciones que requieran un diseño altamente específico o funcionalidades más complejas. Para el contexto del presente proyecto, donde la prioridad era la agilidad y la facilidad de despliegue, Streamlit representó una alternativa adecuada. En siguientes fases futuras del proyecto, se valorará explorar otras alternativas para mejorar la aplicación. Esta aplicación se ejecutará en el ordenador local, por lo que no necesitará conexión a un servidor y solo las personas que tengan los archivos de código y configuración de la aplicación podrán hacer uso de ella. Esto facilita la labor de ciberseguridad y mantenimiento de la aplicación, ya que no será vulnerable a ataques des de la nube. 6.1 Estructura de la WebApp La aplicación consta de diferentes páginas por las que se podrá navegar a través de un menú fijo en la parte lateral de la página. La estructura del frontend de la aplicación es: - Página de inicio - Páginas de predicción para cada serie.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 65 6.2 Página de inicio La página de inicio sirve como resumen de los datos que se usan para hacer las predicciones de cada serie. Figura 29: Captura de pantalla de la página de inicio de la aplicación En la parte lateral de la página se encuentra el botón a través del cual se seleccionan los archivos con los últimos datos que se quieren incorporar en la serie. Estos datos, se tratan y se limpian utilizando las funciones de Python explicadas en los primeros apartados del proyecto y se añaden a la serie original que contiene los datos utilizados inicialmente del 2021, 2022, y 2023, por lo que finalmente la serie constará de los datos iniciales + los datos recientemente incorporados. Estos datos se guardan en una tabla que se almacena en la misma carpeta que la aplicación permitiendo que no se tengan que incorporar los mismos datos cada vez que se quiera modelar y predecir una serie con datos de fechas mas recientes. En la parte superior de la página se encuentra una muestra de la tabla final limpiada y tratada para que el usuario pueda ver las ventas junto a las variables externas.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 66 Debajo de esta tabla, se han colocado filtros para seleccionar los años y grupos de datos que se quieren visualizar en un gráfico para analizar las ventas diarias medias de cada mes a lo largo del periodo seleccionado. 6.3 Páginas de predicción En cuanto se abre cada página de predicción de cada serie, se ejecuta el código en R que ajusta los datos a un modelo ARIMA usando la función auto.arima() con los argumentos y metodología explicados en el apartado 3.2 (Modelos ARIMA). Figura 30: Captura de pantalla de la página de predicción de la serie de Bollería Estas páginas constan de un gráfico en la parte superior que muestra las ventas diarias de los años y meses seleccionados en los filtros. Estos filtros toman, de forma predeterminada, el último mes y año disponible en los datos introducidos. Una vez el script en R se ha ejecutado para la serie del grupo y subgrupo seleccionados, aparece un gráfico con las ventas de los últimos 14 días disponibles y, a continuación, la predicción con los intervalos de confianza en líneas discontinuas de los siguientes 7 días.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 67 Finalmente, en la parte inferior de la página, se encuentra una tabla con las predicciones de los próximos 7 días con los intervalos de confianza del 95%. Gracias a la simplicidad de los elementos de la página de streamlit, el usuario puede navegar de manera intuitiva a través de los gráficos y tablas, y finalmente descargar las previsiones en formato csv 6.4 Futuras mejoras . Debido a limitaciones de tiempo y conocimiento, hay funcionalidades de la aplicación que no se han podido integrar. Las mejoras que se plantean son: Mejora de la página de inicio: Actualmente, la página de inicio solo cuenta con una muestra de los datos y una visualización de la media de ventas diarias de cada producto durante los últimos años. Se prevé mejorar está sección añadiendo herramientas para informar al usuario cuando se añaden datos duplicados a la aplicación y maneras para solucionar y editar las series utilizadas a través de la misma interfaz de la aplicación. También se planea añadir indicadores de ventas a nivel de cada producto en vez de indicarlo para cada grupo y subgrupo lo que permitirá al usuario entender el negocio a un nivel más específico. Refactorizar código: Durante el desarrollo de la aplicación, se han adquirido conocimientos y habilidades adicionales en desarrollo de aplicaciones, lo que ha permitido escribir código más limpio y mantenible a medida que se avanzaba en el proyecto. Como parte de las mejoras futuras, se plantea reescribir partes del código para seguir directrices de código limpio. Esto hará que el código sea más fácil de mantener y comprender.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 68 7. Planificación Figura 31: Diagrama de gaant con las tareas y su duración [Python] A través del diagrama de Gantt hemos se ha realizado una representación gráfica sobre la planificación de las tareas, para ello se ha utilizado la herramienta de Python para mostrar las diferentes fases y el tiempo dedicado a cada apartado del proyecto. Se ha repartido el trabajo en 8 fases diferentes estructurando el trabajo con el fin de tener una planificación progresiva y eficiente, desde la obtención de datos hasta la realización y desarrollo del proyecto final. La primera fase, se basa en la obtención de los datos de la compañía y los proveedores del front end del TPV al que solo tienen acceso los asociados a las tiendas. Para ello se han dedicado alrededor de 50 horas. En la segunda fase, se han recogido todos los datos gracias a la compañía y los proveedores de TPV, y se han clasificado manualmente los diferentes productos. Para ello, se han dedicado alrededor 50 horas. La tercera fase se exploran los datos y se analizan las tendencias de ventas según las diferentes variables. La duración de esta fase han sido 10 horas.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 69 Durante la cuarta fase se identificaron e incorporaron variables exógenas relevantes como días festivos, actividad escolar y datos meteorológicos. Para ello, fue necesario consultar fuentes oficiales y automatizar el proceso de recopilación de datos. Se estiman alrededor de 20 horas de dedicación. Con los datos ya preparados, se procedió a ajustar los modelos ARIMA y SARIMAX en la quinta fase para cada grupo de productos utilizando RStudio. Esta fase incluyó la aplicación de funciones como auto.arima() y la evaluación de criterios estadísticos como el AICc. Se destinaron unas 40 horas para su ejecución. Una vez ajustados los modelos, se analizaron los residuos y se evaluó su capacidad predictiva, asegurando que no existieran patrones no capturados por los modelos. Además, se validó que los errores fueran distribuidos aleatoriamente y sin autocorrelación. Esta etapa requirió alrededor de 15 horas. En la séptima fase se diseñó y desarrolló una aplicación web con Streamlit que integra el tratamiento de datos, la ejecución de los modelos y la visualización de resultados. Esta automatización permite generar predicciones sin intervención técnica directa, facilitando su uso por parte de personal no especializado. Esta fase tuvo una duración estimada de 40 horas. Finalmente, se elaboró toda la documentación técnica y de usuario del proyecto, incluyendo la memoria, gráficos explicativos, estructura del código y referencias. Esta etapa se llevó a cabo durante el mes de abril de 2025, con una dedicación aproximada de 50 horas.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 70 8. Estudio Económico Para realizar el estudio del coste del proyecto realizado, se han identificado los siguientes Conceptos: - Tiempo de dedicación - Gastos operativos - Amortización de equipos El proyecto se ha realizado en un plazo de 6 meses con un total de 300 horas, de las cuales se estima un coste de 15€/h. Tiempo de dedicación: Teniendo en cuenta las horas dedicadas en cada fase y el coste por hora, se ha calculado el coste por fase. Fase Horas Coste (€) Investigación y Planificación 50 750 Desarrollo 125 1875 Pruebas y validación 75 1125 Documentación y presentación 50 750 Total 300 4500 Tabla 11: Cálculo del coste por fase Gastos Operativos: Los gastos operativos se han clasificado en 4 grupos y se ha realizado la siguiente estimación: Consumo Electrico: 65€ Agua: 40€
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 71 Transporte: 100€ Telefonía: 30€ Total Gastos Operativos: 235€ Amortización de equipos: Para la amortización de equipos, se ha considerado el ordenador. Se estima un precio de 1400€ con una duración de 5 años. Amortización Anual: 1400/5= 280€ Amortización Mensual: 280/12= 23,33€ Amortización Total: Amortización Mensual * Duración proyecto = 23,33€ * 6 meses= 140€ Coste total: Concepto Coste Total (€) Tiempo de dedicación 4500 Gastos operativos 235 Amortización de equipos 140 Total 4875 Tabla 12: Calculo del coste total del proyecto Total con Impuestos: 4875€ x 1,21 IVA = 5898,75€ Se ha realizado el cálculo del coste total sumando el tiempo de dedicación, los gastos operativos, la amortización de equipos y por último, se le ha incluido el IVA por lo que el coste total del proyecto es de 5898,75€. El coste del trabajo es suficientemente razonable teniendo en cuenta el tiempo y esfuerzo dedicado en el proyecto. A pesar del tiempo dedicado, el resultado de este estudio puede beneficiar mucho a las empresas para obtener una mejor previsión de la demanda por lo
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 72 que se puede reducir el desperdicio, optimizar la producción necesaria y como resultado, aumentar los ingresos. 9. Estudio ambiental El proyecto desarrollado tiene un impacto ambiental significativo al centrarse en la reducción del desperdicio de alimentos en el sector de la panadería, bollería, y pastelería. Gracias a la incorporación de un sistema de previsión de la demanda, la producción diaria puede ajustarse de forma más precisa a las necesidades reales de los clientes. Tradicionalmente, en este tipo de negocios, se produce un exceso de elaboración para evitar roturas de stock, lo que deriva en la generación de residuos alimentarios. Al tratarse de productos frescos y de rápida caducidad, el sobrante de producción supone no solo un problema económico, sino también un impacto ambiental importante, asociado al uso de materias primas, consumo energético, generación de residuos y emisiones contaminantes. Con una mejor planificación, se consigue preparar únicamente el volumen necesario para cada jornada, lo que reduce de forma efectiva el malbaratamiento de comida. Esto también repercute en otros ámbitos como la reducción del transporte innecesario o el menor tratamiento de residuos, favoreciendo así un funcionamiento más eficiente y respetuoso con el medio ambiente. Para concluir, este proyecto no solo tiene una aplicación práctica en términos de planificación de la producción, sino que también promueve una gestión más responsable de los recursos, ayudando a reducir el impacto medioambiental de la actividad comercial de manera tangible.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 73
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 80 Bloque de código para extraer las variables meteorológicas
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 81 Anexo 4: Integración de variables externas En este bloque se integran todas las variables exógenas relevantes para el modelo de previsión. Primero, se extraen atributos temporales a partir de la fecha de cada registro, como el día de la semana, semana del año, mes y año. A continuación, se incorporan datos de días festivos laborales y días con actividad escolar: • Los festivos se cargan desde un fichero Excel y se unen por fecha. • Para los días escolares, se define un rango de fechas para cada período lectivo y se excluyen los períodos de vacaciones. • Se crea una columna binaria "School_Day" que toma valor 1 si hay escuela y 0 en caso contrario, ajustando también para que sábados y domingos no cuenten como días escolares. Por último, se unen los datos meteorológicos diarios previamente procesados, y se crea una columna binaria "Weather_rainy_day" que indica si hubo precipitación significativa (≥1 mm).
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 82 Anexo 5: Tratamiento de valores atípicos Este bloque de código define la función remove_outliers(), que detecta y corrige valores atípicos en la variable de demanda (Qty). Se basa en el método del rango intercuartílico (IQR), calculando los cuartiles Q1 y Q3 para establecer un umbral inferior y superior. Los valores fuera de este rango se consideran outliers. En lugar de eliminarlos, estos valores se reemplazan por el promedio de demanda de días equivalentes (mismo mes y año) que no sean atípicos. Este enfoque permite mantener la continuidad de la serie sin introducir sesgos o distorsiones debidas a errores puntuales.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 83 Anexo 6: Script en R para ajustar los modelos ARIMA A continuación se presenta el script en lenguaje R utilizado para ajustar modelos ARIMAX a la serie de Bollería. Este script es una muestra de como se ha escrito el código para todas las series, ya que todas se han ejecutado con el mismo script pero cambiando el nombre del archivo que se inputa a los archivos con las series de otros productos.
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 84 Definicion de la serie y variables externas Ajuste del modelo arimax con las variables externas
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 85 Generación de gráficos de residuos
Previsión de la demanda de una cadena de hornos de Barcelona utilizando modelos ARIMA 86 Predicción de la demanda para la siguiente semana