00:00:05 Forecast de ventas estacionales.
00:00:35 Explicación de los patrones centrales de estacionalidad.
00:02:23 Dificultades con el forecast de estacionalidad, duración del producto.
00:04:33 Profundización en otros problemas con la estacionalidad.
00:06:53 Superando problemas con la falta de datos históricos.
00:07:16 Solución: considerar colecciones de productos para la estacionalidad.
00:08:49 Dynamic time warping.
00:09:06 Transición a deep learning para forecast.
00:10:02 Dynamic time warping en el forecast de la demanda.
00:12:09 Manejo de picos en datos históricos y promociones.
00:13:01 Necesidad de datos precisos y machine learning.
00:16:01 La popularidad de deep learning en machine learning.
00:16:30 Limitaciones de datos pasados para predicciones futuras.
00:17:40 La estacionalidad en los asuntos humanos para modelado.
00:19:42 Mejorando el forecast con machine learning.
00:21:39 Beneficios de machine learning a lo largo del tiempo.
Resumen
En una entrevista, Joannes Vermorel discute los desafíos de incorporar estacionalidad en el forecast de ventas. La estacionalidad, definida como patrones cíclicos de ventas influenciados por la época del año, la semana y el día, contribuye a las fluctuaciones de la demanda. Las ciclicidades secundarias, tales como el “efecto del cheque de pago” y la “cuasi estacionalidad”, también tienen relevancia. Comprender la línea base de la demanda, las tendencias y el ruido estadístico en los datos está ayudando a un forecast preciso. Los desafíos incluyen la corta vida útil de muchos productos y la variabilidad anual de eventos como la Navidad. Vermorel sugiere la adopción de una perspectiva colectiva sobre productos similares para predecir el rendimiento de nuevo producto y el uso de configuraciones de machine learning para el mantenimiento automático de los buckets estacionales.
Resumen Extendido
Kieran Chandler entrevista a Joannes Vermorel sobre el concepto de estacionalidad en el forecast de ventas y sus desafíos asociados.
La estacionalidad es uno de los patrones centrales utilizados para mejorar la precisión de los forecast de ventas, pero con frecuencia se malinterpreta y se aplica de manera incorrecta. Vermorel identifica la estacionalidad como una ciclicidad importante en los patrones de ventas. Divide estas ciclicidades en tres tipos clave: la época del año, el día de la semana y la hora del día, que todos contribuyen a las variaciones en la demanda del consumidor.
Vermorel también discute las ciclicidades secundarias, tales como el “efecto del cheque de pago”, que es el ciclo mensual en el que las personas reciben sus cheques de pago y el impacto resultante en su comportamiento de compra. Además, introduce las “ciclicidades minerales” o “cuasi estacionalidad”, que incluyen eventos como la Semana Santa, el Ramadán y el Año Nuevo Chino, que se repiten pero no siempre caen en la misma fecha cada año según el calendario gregoriano.
Comprender la línea base de la demanda, las tendencias y el nivel de ruido estadístico en los datos es otro aspecto crucial que destaca Vermorel. Reconocer estos patrones ayuda a diferenciar entre el ruido aleatorio y los patrones estadísticos auténticos, lo cual es esencial para un forecast efectivo.
A pesar de la aparente simplicidad de la estacionalidad, Vermorel explica por qué a menudo las personas tienen dificultades con ella. El primer desafío es la corta vida útil de la mayoría de los productos en el mercado. Por ejemplo, la vida útil promedio de un producto de Bienes de Consumo de Movimiento Rápido (FMCG) es de entre tres y cinco años. Esto implica que una gran parte de un catálogo de productos podría ni siquiera existir durante un año completo, lo que complica la aplicación de la estacionalidad.
Vermorel introduce el concepto de “distorsión temporal” en la estacionalidad, refiriéndose a cambios en los patrones estacionales debido a diversos factores. Los cambios en los patrones climáticos pueden animar a los consumidores a iniciar sus compras invernales antes o después de lo habitual. El clima político y el sentimiento del consumidor también pueden influir en el momento de las compras, como las compras navideñas. Estos cambios pueden distorsionar los patrones estacionales típicos, haciendo que la predicción sea un desafío.
A continuación, habla sobre la interferencia de patrones adicionales con la estacionalidad. Vermorel enfatiza la importancia de distinguir entre estas influencias externas y las tendencias estacionales genuinas. Se adentra en cómo abordar los desafíos causados por la falta de datos históricos para una parte significativa de un catálogo. Propone una perspectiva colectiva, identificando patrones estacionales comunes en una variedad de productos similares. Este patrón compartido puede aplicarse a nuevos productos, permitiendo el forecast de estacionalidad desde el primer día, incluso para productos sin historial de ventas.
Respondiendo a una pregunta sobre el forecast en condiciones climáticas inciertas, Vermorel presenta el concepto de dynamic time warping. Sin embargo, admite que la implementación de dynamic time warping es sumamente compleja, lo que llevó a Lokad, al igual que la comunidad de reconocimiento de voz, a cambiar a deep learning para su motor de forecast.
Para diferenciar entre la demanda estacional y los picos promocionales, Vermorel propone un enfoque de descomposición paramétrica. Sin embargo, reconoce las limitaciones de este método, ya que los datos históricos suelen estar entrelazados, lo que hace difícil aprender los patrones de forma independiente.
Para abordar esto, Vermorel propone dos estrategias. Primero, registrar todos los eventos que distorsionan la observación de la demanda, incluyendo promociones, faltante de stock, y otros factores que afectan las ventas. Segundo, utilizar una configuración de machine learning para aprender todos estos patrones de forma conjunta, en lugar de intentar aprenderlos por separado. Él sugiere que por eso deep learning se ha vuelto popular en la comunidad de machine learning.
Vermorel reconoce el desafío de tener plena confianza en los resultados debido a las distorsiones en los datos. Sin embargo, sostiene que la mayoría de los mercados tienen mucha inercia, y que el pasado reciente es una aproximación razonable del futuro cercano.
También destaca la importancia de la estacionalidad en el forecast de la demanda, reconociendo su estabilidad y, a la vez, enfatizando que no es fija. Esto significa que la estacionalidad puede evolucionar de un año a otro, y un buen modelo estadístico debería ser
capaz de predecir esta tasa promedio de evolución.
Al concluir la conversación, Vermorel recomienda a las empresas que buscan mejorar sus enfoques de forecast para tener mejor en cuenta la estacionalidad, que hagan la transición a configuraciones de machine learning, abandonando los métodos tradicionales que requieren la elaboración manual de perfiles de estacionalidad. Machine learning permite el mantenimiento automático de los buckets estacionales, lo que resulta en una mayor precisión a lo largo del tiempo.
Transcripción Completa
Kieran Chandler: Joannes, a menudo hablamos de la estacionalidad como uno de los patrones centrales que se aplican para mejorar la precisión de los forecast. Pero, ¿a qué nos referimos realmente con esto? ¿Cuáles son los patrones centrales?
Joannes Vermorel: La estacionalidad es uno de los principales patrones cíclicos. Hay tres ciclos principales, que son la época del año, el día de la semana y la hora del día. Estos son los tres principales. Luego tienes un par de ciclos secundarios, como el efecto del cheque de pago, que es básicamente un patrón cíclico mensual en el que se producen efectos con las personas recibiendo su salario o cosas que suceden a principios o a finales de mes. Luego, tienes lo que yo llamaría una cuasi-estacionalidad, cosas como la Semana Santa, el Ramadán, el Año Nuevo Chino. Estos eventos ocurren cada año pero no exactamente en la misma época del año, al menos según el calendario gregoriano. Tenemos todos estos patrones cíclicos, y la estacionalidad es uno de los más importantes. Además de los ciclos, tenemos la línea base de la demanda, la tendencia de cuánto están creciendo o encogiéndose las cosas con el tiempo, y finalmente, la cantidad de ruido estadístico, que también es un patrón muy importante. Realmente es necesario entender la variabilidad y determinar si lo que se está viendo es ruido o un patrón estadístico auténtico.
Kieran Chandler: Hablemos de la estacionalidad en sí. Entonces, ¿por qué es algo con lo que la gente tiene dificultades? Parece bastante obvio saber que en Navidad, las ventas van a dispararse y que en las temporadas festivas se verán ventas diferentes para distintas cosas. Entonces, ¿por qué es algo con lo que la gente tiene dificultades?
Joannes Vermorel: La estacionalidad es difícil de acertar. Revisemos los desafíos. El primer desafío es que la mayoría de los productos tienen una vida corta en el mercado. La vida útil promedio de un producto FMCG es de entre tres y cinco años. Esto significa que, si vendes productos que en promedio duran tres años en el mercado, la mitad de tus productos solo tienen un año y medio de existencia. Incluso tienes un tercio de tus productos que tienen menos de un año. Así que, si deseas tener un modelo estacional ingenuo, un modelo estadístico en el que digas que las ventas que voy a hacer para la próxima Navidad serán similares a las que hice en la Navidad anterior, resulta que para un tercio de tus productos no hubo una Navidad pasada. No tienes ninguna referencia. Entonces, el primer desafío es que, debido a la novedad de los productos en el mercado, terminas con una porción significativa de tu catálogo que no tiene un año de existencia. Digamos, por ejemplo, para repuestos de automóviles, que tienden a tener una vida útil más larga, de alrededor de seis años, incluso entonces, un sexto de tus productos ni siquiera tienen un año de ventas. Así que, no podrás aplicar esta buena estacionalidad a una porción considerable de tu catálogo. Ese es uno de los problemas que enfrentamos con la estacionalidad.
Kieran Chandler: ¿Cuáles son algunos de los otros problemas que enfrentamos con la estacionalidad?
Joannes Vermorel: Otro problema es que la estacionalidad no es necesariamente exactamente la misma de un año a otro. Sí, la Navidad es el 25 de diciembre de cada año, pero si pasas de un año a otro, la temporada navideña, desde la perspectiva de un comerciante.
Kieran Chandler: Un año, empezó a hacer mucho frío ya en octubre, lo que llevó a que las personas comenzaran sus compras invernales antes de la temporada. Por el contrario, a veces las temperaturas se mantuvieron suaves por más tiempo, por lo que la gente empezó a comprar más tarde. A veces, incluso el clima político afecta los hábitos de compra. Por ejemplo, si las personas están muy preocupadas por el futuro, podrían decidir posponer las compras navideñas hasta el último minuto. Estos son solo algunos de los factores que pueden causar lo que típicamente denominamos distorsión temporal. Aún tienes el pico navideño, por ejemplo, pero el inicio de la temporada navideña podría variar por unas semanas de un año a otro. ¿Estarías de acuerdo?
Joannes Vermorel: Absolutamente, y ese es probablemente el segundo grupo de problemas. El tercer grupo es que, desafortunadamente, tu estacionalidad se ve afectada por otros patrones. ¿Qué pasa, por ejemplo, si el año pasado en septiembre tuviste una promoción masiva que no repites este año? No debes confundir el impacto de esa promoción con la estacionalidad. Necesitas desenredar la estacionalidad de otros patrones. Y todos estos cambios combinados hacen que la estacionalidad sea mucho más esquiva que si solo estuvieras lidiando con una situación ingenua donde tienes una estacionalidad pura para un producto que es de larga duración, estable y todo funciona sin problemas.
Kieran Chandler: Hablemos entonces de cómo superar algunos de estos problemas. Si no tienes datos históricos para, digamos, un tercio de tu catálogo, ¿realmente puedes usar la estacionalidad en el forecast para esos productos?
Joannes Vermorel: Sí, pero necesitas empezar a ver tus productos como una colección en lugar de examinarlos uno por uno. Lo que quiero decir es, digamos que tienes botas de invierno. Es probable que exista un patrón estacional compartido para todos esos productos. Se puede asumir razonablemente que existe esa estacionalidad compartida. Entonces, si puedes identificar esta estacionalidad compartida, no importa si este año estás vendiendo botas de invierno diferentes a las del año pasado. Podrías decir: “Sé que para las botas de invierno en conjunto, tengo este patrón”. Así, cuando introduzco un nuevo producto al mercado, para el cual no tengo historial de ventas, puedo aplicar un patrón estacional desde el primer día. Puedo reciclar algo que se basó en un conjunto para todas las botas de invierno. La clave es mirar la amplitud de productos en lugar de la profundidad del historial.
Kieran Chandler: Si estás haciendo forecast con meses de antelación, ¿cómo sabrías si el verano se va a alargar un mes extra? ¿Cómo puedes hacer forecast para eso?
Joannes Vermorel: Aquí es donde pasamos a la siguiente etapa, que es cómo lidiamos con todas las distorsiones. Se puede hacer de forma analítica, utilizando una técnica conocida como dynamic time warping. Si a la gente le interesa, puede buscarlo en Wikipedia. Implementar dynamic time warping es sumamente complicado a nivel de software. Hace unos 10 años, la comunidad de reconocimiento de voz, que utilizaba machine learning para reconocimiento de voz, tuvo que lidiar con dynamic time warping. Lo encontraron demasiado complicado, lo abandonaron y pasaron a deep learning. Curiosamente, Lokad hizo exactamente lo mismo para la estacionalidad. Implementamos dynamic time warping en nuestro motor de forecast, pero eventualmente reemplazamos todo con deep learning en la última generación de nuestros motores de forecast.
Kieran Chandler: Suena muy de ciencia ficción, el time warping. ¿Podrías darnos un resumen rápido?
Joannes Vermorel: El resumen es que sabes que tu temporada probablemente se va a acabar pronto, pero no sabes exactamente cuándo. Sin embargo, puedes tener en cuenta la variabilidad.
Kieran Chandler: Hemos llegado al final de la temporada, así que sé que la demanda seguirá, pero será mucho menor. Sin embargo, ¿cómo se ve? - ¿Un análisis de estacionalidad sin este tipo de dynamic time warping? ¿Qué sucede si la temporada termina temprano?
Joannes Vermorel: Cuando la temporada termina temprano, tienes tu nueva línea base o nivel, y de acuerdo con tu perfil de estacionalidad, se supone que la demanda para la primera semana de diciembre es como la mitad de la última semana de agosto. Ese es tu perfil estático y rígido. Pero el problema es que, si el verano terminó temprano y para la última semana de agosto ya has salido de la temporada de verano, no quieres dividir tu demanda nuevamente por un factor de 2 en la primera semana de septiembre. Esto se debe a que desde la última semana de agosto hasta la primera semana de septiembre, la demanda estaba cayendo, y te encuentras en una situación en la que la demanda ya ha caído.
El dynamic time warping es una técnica que ayuda a evitar errores compuestos cuando la temporada comienza tarde o temprano y aplicas tu perfil de estacionalidad dos veces. Terminas teniendo una primera caída en la demanda y luego vuelves a aplicar tu patrón estacional que parece indicar que habría una caída adicional, o lo contrario: la demanda ya se ha disparado a un nuevo plateau porque la temporada comenzó temprano, y luego vuelves a aplicar este factor encima. El dynamic time warping no predice ninguna transición mejor entre temporadas, pero te permite evitar estos errores compuestos.
Kieran Chandler: Entonces, ¿la idea es que vas a tener el mismo tipo de perfil de demanda, pero que se comprima o se alargue dependiendo de la temporada?
Joannes Vermorel: Exactamente.
Kieran Chandler: Y luego, lo último de lo que hablamos fue sobre picos históricos en los datos, y no transferir esos picos de estacionalidad a este año. ¿Cómo funciona eso realmente? ¿Cómo es que no tomas eso en cuenta? ¿Cómo sabes qué es demanda estacional y qué es solo un pico debido a una promoción o algo así?
Joannes Vermorel: El enfoque clásico para el forecast de series temporales es una descomposición paramétrica. Tienes tu historial de demanda y dirías que de esta demanda, esta cantidad es básicamente la línea base, esta cantidad es el factor de estacionalidad, esta cantidad puede explicarse con la tendencia, etc. Este enfoque es débil en el sentido de que deseas poder aprender todos tus patrones de forma independiente, pero la realidad es que en tus datos históricos, todo está completamente mezclado.
Existen al menos dos enfoques a este problema. Primero, necesitas registrar adecuadamente en tus datos históricos tus promociones y tus faltantes de stock y todos los demás eventos que estaban impactando no la demanda, sino tu observación de la demanda, que son las ventas. Las ventas no equivalen a la demanda. Por ejemplo, cuando deseas forecast, típicamente quieres decir: “Quiero forecast la demanda al precio regular, no quiero forecast la demanda para un precio promocional súper bajo”. Pero lo que tienes en tu historial son tus ventas y las ventas están distorsionadas debido a las promociones y posiblemente a los faltantes de stock y otras cosas.
Así que lo primero es que necesitas registrar todos los factores que estaban distorsionando tu percepción de la demanda, lo cual es más complicado de lo que parece. Muy pocas empresas tienen un registro muy preciso de todos los eventos que influyeron en sus ventas. Eso puede incluir cosas como, si eres una compañía de ecommerce, recordar si un producto formó parte de la página principal o fue destacado de manera prominente en una sección, si un producto fue parte de un boletín, si hubo movimientos de precio en los productos, e incluso, si cuentas con inteligencia competitiva, recordar el precio de los productos de tus competidores.
Kieran Chandler: Mencionaste que los competidores podrían haber causado una caída en la demanda, no porque tuviste un faltante de stock, sino porque estaban haciendo una promoción masiva y tú no alineaste tu precio con el de ellos. Eso explicaría una caída en la demanda.
Joannes Vermorel: Sí, esa es una parte de la receta. La segunda parte es la necesidad de una configuración de machine learning donde puedas aprender todos estos patrones de forma conjunta. El machine learning moderno no intenta aprender patrones estadísticos de manera aislada. No aprendes la estacionalidad primero, luego la tendencia, luego el efecto promocional. En su lugar, tienes un modelo que trata de capturar todos estos patrones a la vez. Esto significa que el modelo necesita la capacidad de aprender una amplia variedad de patrones. Requiere un modelo muy expresivo. Por eso muchas personas en la comunidad de machine learning han adoptado deep learning.
Kieran Chandler: Sigues mencionando distorsiones. Parece que hay tantas formas posibles en que los datos pueden distorsionarse, haciendo que la estacionalidad sea muy difícil de implementar. ¿Podemos realmente tener plena confianza en los resultados dado el potencial de distorsiones en los datos?
Joannes Vermorel: Absolutamente, y la pregunta es, ¿cuánto permite el pasado predecir el futuro? Esa es la suposición fundamental detrás del forecast estadístico de la demanda. Desafortunadamente, el futuro no siempre puede predecirse a partir del pasado. Sin embargo, esto no es completamente cierto cuando hablamos de forecasts que están a pocos meses vista. La mayoría de los mercados tienen mucha inercia. El pasado reciente sigue siendo una aproximación razonable del futuro cercano. Eso es lo que aprovechamos.
Los patrones estacionales son relativamente fuertes. Se observan en todos los asuntos humanos. Todo sigue este ciclo anual, y probablemente ha sido así durante miles de años. Los humanos somos criaturas de hábito, y estos fuertes hábitos se reflejan en casi todas las series temporales que representan asuntos humanos.
Por ejemplo, el número de pasajeros de avión seguirá una curva anual. La cantidad de leche comprada en cualquier día del año tendrá una curva de estacionalidad. Lo mismo ocurre con la compra de videojuegos, el consumo de electricidad, y así sucesivamente.
Estos patrones han sido muy estables y pueden aprovecharse. Pero siempre hay cierta incertidumbre irreducible sobre el futuro.
Kieran Chandler: Hemos estado discutiendo el enfoque probabilístico en supply chain optimization. Por lo que entiendo, este enfoque también puede manejar la estacionalidad. ¿Puedes explicar cómo se enfrenta a los cambios en los patrones estacionales de un año a otro?
Joannes Vermorel: Ciertamente. Nuestro modelo estadístico está diseñado para adaptarse a la estacionalidad evolutiva. Aunque puede que no seamos capaces de predecir cambios exactos, podemos forecast la tasa promedio de evolución. Esto nos permite introducir la cantidad adecuada de incertidumbre en nuestros forecasts. Es importante recordar que estos forecasts son distribuciones de probabilidad que incorporan el patrón de estacionalidad. Sin embargo, esta no es una representación perfecta. Existe cierto grado de imprecisión en términos de amplitud. Consideramos cuánto aumento habrá durante las temporadas pico, así como el momento de estos picos. Realmente es una combinación de estos dos factores.
Kieran Chandler: Eso tiene mucho sentido. Para concluir, ¿podrías decirnos qué pasos pueden tomar las empresas para mejorar su enfoque del forecast, especialmente en lo que respecta a la estacionalidad?
Joannes Vermorel: Bueno, lo primero que se me ocurre es que se pongan en contacto con nosotros en Lokad! Dejando las bromas a un lado, creo que el paso más significativo sería la transición a configuraciones de machine learning. El enfoque tradicional para gestionar la estacionalidad implica crear perfiles de estacionalidad manualmente. Esencialmente, agrupas productos en categorías basadas en una estacionalidad compartida. Este método, sin embargo, depende en gran medida de la intervención humana y es difícil de mantener a lo largo del tiempo.
Kieran Chandler: ¿Podrías ampliar sobre los problemas de este enfoque tradicional?
Joannes Vermorel: Por supuesto. El problema principal no es necesariamente que las suposiciones del experto sean incorrectas. Un Supply Chain Scientist podría, de hecho, evaluar con precisión que un grupo de productos comparte la misma estacionalidad. El problema es que, con el tiempo, mantener este sistema se convierte en una pesadilla. Cada vez que lanzas un nuevo producto, necesitas asegurarte de que caiga en la categoría correcta. Aunque la agrupación inicial podría ser buena, tiende a degenerar y volverse ineficiente con el tiempo.
Kieran Chandler: Entonces, ¿cómo ayuda la transición a machine learning con esto?
Joannes Vermorel: Con una configuración de machine learning, puedes mantener tus categorías estacionales de forma automática. Esto mejorará significativamente tu precisión porque tus categorías, incluso si no son perfectas, no se degenerarán con el tiempo. Se regeneran cada vez que las necesitas.
Kieran Chandler: Eso es muy perspicaz. Lamentablemente, tenemos que concluir por hoy. Gracias por tu tiempo, Joannes.
Joannes Vermorel: De nada, ha sido un placer.
Kieran Chandler: Eso es todo por esta semana. Volveremos la próxima semana con otro episodio. Hasta entonces, gracias a todos por ver.