19 votos

¿Estrategias para el pronóstico de series de tiempo para 2000 productos diferentes?

Primero de todo, me doy cuenta de que mi pregunta es muy amplia y que puede ser difícil responder a esta pregunta, porque de la misma.

¿Tiene algún consejo sobre cómo abordar un 'problema', donde usted necesita para hacer pronósticos/predicciones para más de 2000 productos diferentes? En otras palabras, cada producto requiere una diferente a las previsiones y la predicción. Tengo 2 años de datos históricos sobre la semana (es decir, la demanda por semana por producto).

Necesito hacer esto en un corto período de tiempo: tengo una semana para hacer esto, por lo tanto estoy buscando la manera de que me puede hacer relativamente buena predicción de los modelos. La creación de un modelo para cada producto y la inspección de su rendimiento de cerca, uno por uno, sería demasiado tiempo.

Pensé en la segmentación de los productos basados en la varianza, por lo que puedo emplear modelos simples para los productos que tienen una baja varianza. Mientras que esto probablemente no es lo ideal, sería una forma rápida de reducir el número de modelos que necesito para crear.

Sería muy apreciado si usted tiene algún consejo práctico para mí en acercarse a este problema.

18voto

netbook shopper Puntos 11

Un seguimiento a @StephanKolassa 's respuesta:

  • Estoy de acuerdo con Esteban que ETS() de la previsión de paquete en R es probablemente su mejor y más rápida opción. Si los ETS no dan buenos resultados, usted querrá también quieren usar Facebook, el Profeta del paquete (Auto.arima es fácil de usar, pero a los dos años de datos semanales, que linda que no hay suficientes datos para un modelo ARIMA en mi experiencia). Personalmente he encontrado Profeta a ser más fácil para el usuario cuando haya promociones y eventos festivos de datos disponibles, de lo contrario ETS() podría funcionar mejor. Su verdadero reto es más de una codificación desafío de cómo de manera eficiente iterar sobre un gran número de series de tiempo. Usted puede comprobar esta respuesta para obtener más detalles sobre cómo automatizar la previsión de generación.

  • En previsión de la demanda, unos de forma jerárquica, la previsión es que se realiza con frecuencia. I. e tiene 2000 y productos que usted necesita separar la previsión para cada producto independiente, pero hay similitudes entre los productos que podrían ayudar con la previsión. Usted quiere encontrar la manera de agrupar los productos juntos a lo largo de una jerarquía de productos y, a continuación, utilizar jerárquica de previsión para mejorar la precisión. Puesto que usted está buscando para los pronósticos en el individuo a nivel de producto, mire tratando de arriba a abajo enfoque jerárquico.

  • Algo un poco más rebuscado, pero me gustaría llamar: Amazon y Uber uso de redes neuronales para este tipo de problema, donde en lugar de tener un pronóstico para cada producto/de la serie de tiempo, se utiliza una gigantesca recurrente de la red neuronal para predecir todas las series de tiempo en el granel. Tenga en cuenta que todavía terminar con previsiones individuales para cada producto (en el caso de Uber es el tráfico de la demanda por la ciudad en contraposición a los productos), que sólo utiliza un modelo de gran tamaño (un LSTM profunda modelo de aprendizaje) para hacerlo todo a la vez. La idea es similar en espíritu a jerárquicas de previsión en el sentido de que la red neuronal que aprende a partir de las similitudes entre las historias de los diferentes productos que vienen con mejores pronósticos. El equipo de Uber ha hecho que algunos de sus códigos disponibles (a través de la M4 en la competencia de los repositorios de Github), sin embargo es el código de C++ (no se exactamente el lenguaje de las estadísticas de la multitud). Amazon enfoque no es de código abierto y usted tiene que utilizar su paga Amazon Pronóstico del servicio para hacer los pronósticos.


Con respecto a tu segundo comentario: es necesario diferenciar entre las previsiones de ventas y previsión de la demanda. La demanda es ilimitada, si de repente un elemento es popular y que quieren tus clientes 200 unidades, no importa que usted tiene sólo 50 unidades en la mano, su demanda es todavía va a ser de 200 unidades.

En la práctica es muy difícil de observar la demanda directamente, por lo que utilizamos las ventas como proxy de la demanda. Esto tiene un problema porque no tiene en cuenta situaciones en las que un cliente quería comprar un producto, pero no estaba disponible. A la dirección de la misma, junto con el histórico de ventas de los datos, la información acerca de los niveles de inventario y las existencias, ya sea directamente incluido en un modelo o utilizado para preprocesar la serie de tiempo antes de generar un modelo para el pronóstico.

Normalmente un pronóstico ilimitado es generada por un motor de previsión y, a continuación, pasar a un sistema de planificación que, a continuación, agrega las restricciones que usted menciona (he.e la demanda es de 500 unidades, pero sólo 300 unidades disponibles) junto con otras restricciones (stock de seguridad, la presentación de acciones, de las limitaciones presupuestarias, los planes para promociones o introducciones de nuevos productos, etc...), sin embargo esto cae bajo la rúbrica general de planificación y gestión de inventario, no previsión de por sí.

12voto

icelava Puntos 548

Sólo seremos capaces de darle muy asesoramiento general.

  • Hay fuertes conductores, como promociones o eventos de calendario, o estacionalidad, las tendencias o ciclos de vida? Si es así, los incluyen en sus modelos. Por ejemplo, usted podría regresar ventas en promociones, entonces potencialmente modelo de residuos (mediante la suavización exponencial o ARIMA).
  • Hay paquetes de software que hacer un trabajo razonablemente bueno en la conexión de múltiples modelos de serie de tiempo para una serie. Usted puede entonces simplemente iterar a través de su serie 2000, que no debe tomar mucho más tiempo de ejecución de una taza de café. Recomiendo, en particular, la ets() función en el forecast paquete en R. (Menos el auto.arima() función para datos semanales.
  • Al menos descremada una previsión de libros de texto, por ejemplo, este. Utiliza el forecast paquete recomiendo por encima.
  • ¿Cuál es su objetivo final? ¿Quieres una imparcial pronóstico? Luego de evaluar el punto de pronósticos mediante el MSE. Será su bono depende de la MAPE? A continuación esta la lista de los problemas de la MAPE puede ser útil. ¿Necesita previsiones para establecer la seguridad de cantidades? Entonces usted necesita cuantil previsiones, no significa que las predicciones. (Las funciones de la forecast paquete puede darle esos.)

Si usted tiene preguntas más específicas, hacer publicar en el CV.

1voto

Owen Fraser-Green Puntos 642

La segmentación basada en la variación de la serie original no tiene sentido para mí como el mejor modelo debe ser invariante a la escala. Tener en cuenta una serie ..modelo y luego multiplicar cada valor de la serie de tiempo por 1000 .

En términos de la producción en masa de ecuaciones que pueden tener tanto determinista de la estructura (pulsos/cambio de nivel/locales tendencias en el tiempo ) O de cualquiera de auto-regresivo de la estacionalidad y arima estructura tiene que ejecutar en un equipo basado en la secuencia de comandos . Tenga cuidado de simple auto arima soluciones que asumen que no hay determinista estructura fija O suposiciones acerca de la misma.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X