Optimización de los ingresos de los minoristas con IA de previsión de ventas

Publicado: 2022-03-11

La previsión es una técnica que utiliza datos y eventos históricos para generar estimaciones sobre tendencias futuras, desastres potenciales y el comportamiento general de cualquier sujeto. La previsión se puede utilizar como apoyo probabilístico para el análisis de decisiones, para estimar gastos, ingresos y planes presupuestarios.

El pronóstico en los negocios se puede dividir en dos categorías distintas: pronóstico cualitativo y pronóstico cuantitativo .

  • Pronóstico cualitativo. El pronóstico cualitativo se relaciona con la investigación de mercado y las estrategias de mercado, por lo tanto, está más impulsado por expertos e influenciado por factores humanos. Por lo general, está dirigido a la construcción de estrategias a corto plazo.
  • Pronóstico cuantitativo. La previsión cuantitativa excluye cualquier factor humano. Depende solo de los datos históricos que tiene una entidad y tiene como objetivo predecir cuáles serán algunos factores como las ventas, los precios y otros aspectos financieros a largo plazo.

Para obtener más información, puede consultar el manual de previsión financiera de Investopedia.

Ambos tipos de pronósticos han demostrado ser muy prometedores y lograron crear mejoras comerciales para muchas entidades.

Si desea obtener más información sobre cómo los pronósticos pueden afectar las decisiones de mercado, un buen lugar para comenzar es Mercados de predicción: fundamentos, diseños y aplicaciones de Stefan Luckner et al.

Un problema que podemos abordar mediante la previsión cuantitativa es la previsión de la demanda o la previsión de ventas.

Enfoques de pronóstico de demanda y pronóstico de ventas

Suponga que usted es un minorista que opera muchas tiendas, y cada tienda tiene un sistema estático de reabastecimiento de existencias de productos basado en decisiones humanas que se basan en ciertos eventos, como temporadas y tendencias del mercado.

De vez en cuando, se encontrará con uno de estos problemas que pueden conducir a dos problemas principales:

  • Productos con exceso de existencias. Tener un stock sustancial de producto planeado para ser vendido durante un cierto período de tiempo pero no vendido.
  • Productos agotados. Tener la oportunidad de vender el producto pero no poder porque el producto no está disponible.

Según una encuesta de IHL Group de 600 hogares y minoristas, los minoristas están perdiendo casi $ 1 billón en ventas anualmente debido a problemas de falta de existencias.

“Los compradores se encuentran con productos agotados en uno de cada tres viajes de compras, según el informe, que se envió por correo electrónico a Retail Dive. En los minoristas de alimentos, medicamentos y gran consumo, encuentran artículos agotados en uno de cada cinco viajes, en tiendas departamentales y minoristas especializados es uno de cada cuatro, y en tiendas de electrónica uno de cada tres” , descubrió IHL Group.

Como parece, ambos problemas conducen a una disminución de los ingresos porque perdimos una probabilidad de venta o invertimos más dinero en productos no vendidos, lo que significa tener activos que no generarán ingresos en el corto plazo para compensar sus costos.

Esto es claramente perjudicial para el flujo de efectivo de la entidad, y para abordar este riesgo, necesitamos dos cosas:

  • Más insumos para ayudarnos a tomar la decisión
  • Un equipo de previsión que puede hacer una planificación estratégica a largo plazo para los sistemas de reposición de existencias

Entonces, la pregunta es: ¿Cuáles son las indicaciones de que necesita adoptar IA en su empresa para ayudar en su proceso de pronóstico?

Para tomar esta decisión, necesita respuestas expertas a las siguientes preguntas:

  • ¿Es difícil predecir su embudo de ventas?
  • ¿Su pronóstico de ventas es inexacto o no es lo suficientemente preciso (a pesar de que tiene datos históricos)?
  • ¿Sufre de problemas de falta de existencias o exceso de existencias?
  • ¿No puede extraer información descriptiva e inferencial de los datos que posee para impulsar sus decisiones y su planificación?

Las respuestas a estas preguntas deberían ser una señal clara que lo ayude a decidir si debe comenzar a emplear IA en sus estrategias de pronóstico o no.

¿Cómo puede la IA beneficiar el proceso de pronóstico de ventas?

La IA ha mostrado excelentes resultados al superar el pronóstico humano en muchas empresas, lo que permite una toma de decisiones y una planificación más rápidas, así como estrategias de gestión de riesgos más confiables. Esta es la razón por la que las principales empresas están adoptando la IA en su planificación.

Cuando se trata de un problema de pronóstico de demanda, el método de pronóstico de series de tiempo se puede utilizar para predecir las ventas de cada producto, lo que permite a las empresas optimizar la reposición de existencias y minimizar la ocurrencia de los problemas antes mencionados. Sin embargo, muchos modelos luchan con la previsión a nivel de producto individual o nivel de categoría de producto, debido a la falta de características necesarias. Entonces, la pregunta es: ¿Cómo podemos hacer que funcione y aprovechar al máximo nuestros datos?

Para los minoristas de la vida real, estos problemas son cualquier cosa menos triviales. Tiene más de 1,000 productos que introducen mucha no linealidad en el conjunto de datos y dependencias multivariadas, o necesita que le adviertan sobre la cantidad de reposición de existencias proyectada con mucha anticipación para poder producirlo o comprarlo, o haga lo que sea necesario para adquirirlo en el momento en que se materialice la demanda.

En este caso, los modelos clásicos como ARIMA y ETS no funcionarán, y necesitaremos un método más robusto como RNN y XGBoost, y es por eso que necesitamos mucha creación de funciones para abordar este problema.

Para que esto funcione, necesitamos:

  • Adquirir las características de entrada necesarias para explicar la variedad y diversidad de los productos.
  • Categorice nuestros datos, de modo que cada categoría tenga el mismo comportamiento de serie temporal, y cada categoría se abordará mediante un modelo independiente.
  • Entrene a nuestros modelos en las características de entrada categorizadas adquiridas.

Por el bien de este artículo, tomaremos XGBoost como ejemplo de dicho modelo.

Funciones requeridas en los modelos de pronóstico de ventas

El conjunto de características necesarias para este problema se clasifica en cuatro grupos principales:

  • Características relacionadas con el tiempo
  • Funciones relacionadas con las ventas
  • Características relacionadas con el precio
  • Funciones relacionadas con acciones

Funciones relacionadas con el tiempo

A diferencia del aprendizaje profundo (red neuronal recurrente), los modelos de aprendizaje automático no pueden obtener dependencias a corto o largo plazo dentro de una serie temporal sin crear una capa de extracción de funciones manual para la función de fecha y hora .

Muchas características se pueden extraer de la fecha, tales como:

  • Año
  • Día
  • Hora
  • Fin de semana o día de la semana (si el día es un día de la semana o un fin de semana)
  • Día de la semana

Muchos enfoques simplemente extraen esas características de tiempo y las usan como entradas y entrenan modelos, pero se puede hacer más ingeniería. Como podemos ver, las características (día, hora, día de la semana) son periódicas, lo que significa que tienen un rango de valores repetitivos. ¿Cómo puede una modelo lidiar con esto?

La respuesta corta es, no puede porque lo que ve el modelo es que la hora 00:00 está a 23 horas de las 23:00, pero de hecho, está a una hora de distancia. Una forma de resolver esto es convertir estas características en una transformación cíclica.

Funciones relacionadas con el tiempo

Usando el concepto de seno y coseno, o representación vectorial, uno puede convertir cada hora (24 horas) en un ángulo, y usando el seno y el coseno de ellos, será mucho más fácil para el modelo detectar las proporciones reales entre horas, independientemente de la periodicidad.

Esto eliminará la discontinuidad que ocurre en las características periódicas de tiempo o cualquier característica periódica.

Para nuestro artículo, utilizaremos el conjunto de datos de Sample Superstore que se encuentra públicamente e intentaremos predecir las ventas mensuales objetivo para una determinada categoría de producto.

Además, usaremos el entorno Python 3.7 con las siguientes bibliotecas:

  • NumPy
  • pandas
  • XGBoost
  • aprender

Ahora, le mostraré cómo crear la función de conversión de características de período y probar si fue útil o no.

 def convert_periodic(val,period): theta = 2*np.pi*val/period sin_period = np.sin(theta) cos_period = np.cos(theta) return sin_period,cos_period def convert_month(x): return convert_periodic(x,12) df['sin_month'], df['cos_month'] = zip(*df['month'].map(convert_month))

Con esto en su lugar, estamos listos para probar si la función agregada mejorará el rendimiento o no.

 X = df.drop(['Order Date','Sales','sin_month', 'cos_month'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False)

Como podemos ver, hemos realizado una transformación log 1p para nuestra característica de ventas objetivo, porque es una característica sesgada (no distribuida normalmente).

Ahora, ajustaremos un regresor XGBoost en los datos.

 y_pred = model.predict(X_test) print(f'Loss without cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss without cyclic conversion on testing set is 0.4313676193485837

A continuación, probaremos con nuestra función creada.

 X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with cyclic conversion on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with cyclic conversion on testing set is 0.33868030449130826

Como podemos ver, la pérdida mejoró de 0,43 RMSE a 0,33 RMSE.

Algunas otras características relacionadas con el tiempo en las que puede pensar, dependiendo de su problema, son:

  • Número de meses desde que el artículo estuvo en la tienda
  • Número de días desde la última venta

Funciones relacionadas con las ventas

Esta es la principal función de entrada básica necesaria para predecir nuestras ventas, entonces, ¿cómo aprovechar al máximo los datos de ventas? Podemos lograr esto usando el concepto de retraso y autocorrelación.

Las características de retraso son registros históricos de ventas de los productos. Por ejemplo, si tomamos una característica de 12 retrasos para las ventas mensuales como entrada de nuestro modelo para predecir las ventas de mayo de 2020, significa que proporcionaremos al modelo registros de datos entre mayo de 2019 y abril de 2020. Esto puede ser realmente útil.

Además, se puede interpretar utilizando diagramas de autocorrelación para verificar qué tan correlacionada está la característica de destino con sus características rezagadas. Esto también ayuda a seleccionar solo las funciones correlacionadas entre las funciones rezagadas, por lo que disminuimos el uso de memoria y la redundancia de funciones.

Así es como podemos agregar funciones de retraso en nuestro marco de datos:

 for i in range(3): df[f'lag_{i+1}'] = df['Sales'].shift(i+1) df = df.dropna() df.head() 

Funciones relacionadas con las ventas

Aquí, elegí un valor de una característica de tres retrasos para incluirlo en nuestro conjunto de entrenamiento. Esta característica es un hiperparámetro: puede elegirlo en función del gráfico de autocorrelación o probando muchos valores y simplemente eligiendo el mejor en la etapa de ajuste.

 X = df.drop(['Order Date','Sales'],axis = 1) y = np.log1p(df['Sales']) X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2, shuffle=False) y_pred = model.predict(X_test) print(f'Loss with lag features on testing set is {sqrt(mean_squared_error(y_pred,y_test))}') Loss with lag and aggregated sales features on testing set is 0.2862175857169188

Ahora, RMSE ha mejorado a 0,28, utilizando funciones de retraso y conversiones cíclicas.

Algunas características adicionales relacionadas con las ventas que puede agregar:

  • Fracción de artículos vendidos (la fracción de artículos vendidos en términos de las ventas totales en una tienda)
  • Frecuencia de eventos de venta para la categoría del artículo.
  • Adición del concepto de antigüedad

La antigüedad es un concepto introducido para asignar un nivel de antigüedad a los artículos nuevos en una tienda:

  • Antigüedad 0: artículos nuevos para la empresa
  • Antigüedad 1: artículos nunca vendidos en esta tienda pero vendidos en otras tiendas de la empresa
  • Antigüedad 2: artículos que se han vendido en esta tienda antes

Características relacionadas con el precio

Un argumento simple es que una de las causas directas del aumento y disminución de las ventas es el precio y las promociones. El precio es una de las mejores formas de diferenciar entre diferentes categorías, subcategorías y supercategorías de productos.

Por ejemplo, suponiendo que se ha asignado una categoría y una subcategoría a cada producto, se pueden crear las siguientes características de precio:

  • (Media, Máx., Mín., Mediana) precios en todas las categorías
  • (Media, Máx., Mín., Mediana) precios en todas las subcategorías
  • Comparaciones entre esas estadísticas, como la diferencia entre cada estadística en categoría y subcategoría

Esta agregación se puede realizar varias veces utilizando muchas agrupaciones por tema (suponiendo que pretendemos predecir la demanda mensual), como por ejemplo:

  • Mensual, Tienda, categoría
  • Mensual, Tienda, subcategoría
  • Mensual, Tienda, Artículo, categoría
  • Mensual, Tienda, Artículo, subcategoría

Además, se pueden agregar más funciones que excluyan la agrupación Mensual para estudiar el comportamiento de los precios en general.

Funciones relacionadas con acciones

Este no es tan común entre los minoristas y los pronosticadores de ventas, pero marca una gran diferencia en los modelos de pronóstico de ventas. Los conjuntos de datos de stock tienen principalmente los datos de inventario de cada producto, diariamente en cada tienda. A partir de esto, podemos combinarlo con los datos de ventas para obtener un índice de facturación mensual para cada producto. Esta relación indicará qué tan rápido se vende por completo el stock de un producto, y tiene dos beneficios principales:

  • Puede ayudar al modelo a pronosticar las ventas en función del nivel de inventario actual.
  • Puede ayudarnos a usar este valor para agrupar productos en productos de movimiento lento, medio y rápido. Este agrupamiento nos ayudará con la toma de decisiones y el modelado.

Para esto, necesita datos de inventario diarios para cada producto, junto con los datos de ventas, y luego puede calcular el índice de rotación de inventario de la siguiente manera:

Funciones relacionadas con acciones

Sugerencia: estas agregaciones se realizan en función de un rango de tiempo. Por ejemplo, si estamos trabajando en la previsión de ventas mensuales, el ITO se calculará como las ventas totales del último mes sobre el valor medio del inventario durante el mismo mes.

La previsión de ventas puede convertir los datos en oportunidades

En resumen, la previsión de ventas puede ayudar a las empresas a aumentar los ingresos y obtener beneficios, siempre que dispongan de los canales de datos adecuados y utilicen los métodos de ingeniería de características correctos. Este artículo fue una prueba para mostrar que todo tipo de datos pueden ser útiles para resolver este problema.

Cada empresa debe investigar si la IA es necesaria para sus problemas de pronóstico y, en caso de que lo sea, necesitará ingenieros expertos en IA y el asesoramiento de ingenieros de aprendizaje automático para crear su propio sistema de pronóstico de ventas.

Si usted es una empresa/minorista que desea aplicar esta técnica de pronóstico de ventas, comience recopilando todos los datos que pueda, especialmente las ventas diarias, el inventario diario y las transacciones diarias.

Una vez que posea estos datos, puede usarlos para aumentar sus ingresos y optimizar las estrategias de reabastecimiento de existencias, lo que le permitirá a su empresa obtener la mayor ganancia posible con los recursos disponibles, como se demuestra en varios ejemplos anteriores, así como las prácticas de pronóstico de ventas utilizadas por los minoristas líderes. .

Referencias:

el conjunto de datos
Más lecturas sobre pronósticos financieros