Evaluar la previsibilidad de series temporales

11

Supongamos que tengo un poco más de 20,000 series de tiempo mensuales que abarcan desde enero de 2005 hasta diciembre de 2011. Cada uno de estos representa datos de ventas globales para un producto diferente. ¿Qué sucedería si, en lugar de calcular pronósticos para todos y cada uno de ellos, quisiera centrarme solo en un pequeño número de productos que "realmente importan"?

Podría clasificar esos productos por ingresos anuales totales y recortar la lista usando Pareto clásico. Aún así me parece que, aunque no contribuyen mucho al resultado final, algunos productos son tan fáciles de pronosticar que dejarlos fuera sería un mal juicio. Un producto que vendió 50 dólares cada mes durante los últimos 10 años puede no parecer mucho, pero requiere tan poco esfuerzo generar predicciones sobre ventas futuras que yo también podría hacerlo.

Digamos que divido mis productos en cuatro categorías: altos ingresos / fácil de pronosticar - bajos ingresos / fácil de pronosticar - altos ingresos / difícil de pronosticar - bajos ingresos / difícil de pronosticar.

Creo que sería razonable dejar atrás solo aquellas series de tiempo que pertenecen al cuarto grupo. Pero, ¿cómo puedo evaluar exactamente la "capacidad de predicción"?

El coeficiente de variación parece ser un buen punto de partida (también recuerdo haber visto algún artículo al respecto hace un tiempo). Pero, ¿qué pasa si mis series temporales exhiben estacionalidad / cambios de nivel / efectos de calendario / tendencias fuertes?

Me imagino que debería basar mi evaluación solo en la variabilidad del componente aleatorio y no en el de los datos "en bruto". ¿O me estoy perdiendo algo?

¿Alguien ha tropezado con un problema similar antes? ¿Cómo lo harían ustedes?

Como siempre, cualquier ayuda es muy apreciada.

Bruder
fuente

Respuestas:

9

Aquí hay una segunda idea basada en stl.

Podría ajustar una descomposición stl a cada serie y luego comparar el error estándar del componente restante con la media de los datos originales ignorando cualquier año parcial. Las series que son fáciles de pronosticar deben tener una pequeña proporción de se (resto) a la media (datos).

La razón por la que sugiero ignorar años parciales es que la estacionalidad afectará la media de los datos de lo contrario. En el ejemplo de la pregunta, todas las series tienen siete años completos, por lo que no es un problema. Pero si la serie se extendió hasta 2012, sugiero que la media se calcule solo hasta fines de 2011 para evitar la contaminación estacional de la media.

Esta idea supone que la media (datos) tiene sentido, es decir, que los datos son estacionarios medios (aparte de la estacionalidad). Probablemente no funcionaría bien para datos con fuertes tendencias o raíces unitarias.

También supone que un buen ajuste estándar se traduce en buenos pronósticos, pero no puedo pensar en un ejemplo en el que eso no sea cierto, por lo que probablemente sea una suposición correcta.

Rob Hyndman
fuente
Hola Rob, gracias por responderme. Me gusta tu idea, así que lo intentaré y veré si proporciona el nivel deseado de filtrado. Solo una cosa más, ¿hay alguna razón particular para usar la media (datos) sobre la media (resto)? Me temo que algunas de mis series temporales podrían tener una tendencia algo fuerte. Las series descompuestas STL, en cambio, no deberían. Además, ¿cree que el enfoque que describimos hasta ahora para evaluar la capacidad de predicción / detección de valores atípicos es lo suficientemente bueno como para implementarse en un entorno empresarial real? ¿O es demasiado "amateur"? ¿Normalmente harías las cosas de manera muy diferente?
Bruder
media (resto) estará cerca de cero. Desea comparar el ruido con la escala de los datos, por lo que la media (datos) debería estar bien. No estoy seguro de cómo lidiar con sus tendencias. Probaría el enfoque cuidadosamente en un rango de datos antes de creer los resultados.
Rob Hyndman
8

Este es un problema bastante común en el pronóstico. La solución tradicional es calcular los errores de porcentaje absoluto medio (MAPE) en cada elemento. Cuanto más bajo sea el MAPE, más fácilmente se pronostica el artículo.

Un problema con eso es que muchas series contienen valores cero y luego MAPE no está definido.

Propuse una solución en Hyndman y Koehler (IJF 2006) [Versión de preimpresión] utilizando errores medios de escala absoluta (MASE). Para series de tiempo mensuales, la escala se basaría en pronósticos ingenuos estacionales dentro de la muestra. Es decir, si es una observación en el tiempo , los datos están disponibles desde los tiempos 1 a y entonces un error escalado es , donde es un pronóstico de usando cualquier método de pronóstico que esté implementando para ese elemento. Tome el valor absoluto medio de los errores escalados para obtener el MASE. Por ejemplo, puede usar un origen móvil (también conocido comoyttT

Q=1T12t=13T|ytyt12|,
qt=(yty^t)/Q y tythy^tytvalidación cruzada de series de tiempo ) y tome el valor absoluto medio de los errores resultantes de un paso (o paso ).h

Las series que son fáciles de pronosticar deben tener valores bajos de MASE. Aquí "fácil de pronosticar" se interpreta en relación con el pronóstico ingenuo estacional. En algunas circunstancias, puede tener más sentido usar una medida base alternativa para escalar los resultados.

Rob Hyndman
fuente
Hola Rob, gracias por tu amable respuesta. Como siempre, su enfoque es muy ordenado, directo y razonable. Ya evalúo el valor agregado de pronóstico ( FTV ) en comparación con un modelo ingenuo estacional, por lo que su idea de evaluar la capacidad de predicción utilizando la misma "medida base" suena muy atractiva. El único problema es que, para calcular MASE, necesito elegir un método de pronóstico y ejecutar simulaciones para cada una de mis series de tiempo 20000. Esperaba poder detectar de antemano series fáciles de pronosticar, para poder ahorrar tiempo de cálculo.
Bruder
Por alguna razón, pensé que las series temporales con una variabilidad relativa más baja (es decir, CV) necesariamente darían lugar a pronósticos más fáciles y más precisos. Calculando pronósticos y luego, y solo entonces midiendo errores, desafía, creo, mi propósito. Supongo que lo que estoy tratando de decir es que veo MASE más como una medida de precisión del pronóstico que como una medida de previsibilidad. Pero podría estar equivocado ... :)
Bruder
1
@Bruder: 2 pensamientos: 1. Podría ver un pronóstico ingenuo simple, en lugar de un pronóstico estacional. Un pronóstico ingenuo simple solo usa el valor anterior de la serie de tiempo y recogerá una tendencia fuerte (con un retraso de 1 período). 2. La descomposición de STL es una buena idea. Si los residuos son muy pequeños en comparación con los componentes estacionales y de tendencia, entonces probablemente pueda pronosticar fácilmente la serie.
Zach
1
@Rob: ¿qué pasa con la descomposición de STL? ¿Puedo obtener dos pájaros de un tiro (es decir, detectar valores atípicos y evaluar la capacidad de predicción, por lo tanto, evaluar la capacidad de predicción "verdadera")? Me sorprende cuántas cosas puedo lograr con solo STL y un modelo ingenuo de temporada. Pero ya sabes lo que sucede cuando las cosas son demasiado buenas para ser verdad ...
Bruder
1
Creo que el índice de la suma debería ser lugar de . iti
blakeoft el
5

Quizás le interese ForeCA: Análisis de componentes pronosticables (descargo de responsabilidad: soy el autor). Como su nombre indica, es una técnica de reducción de dimensiones / separación de fuente ciega (BSS) para encontrar la mayoría de las señales pronosticables de muchas series de tiempo multivariadas, más o menos estacionarias. Para su caso particular de 20,000 series de tiempo, puede que no sea lo más rápido (la solución involucra espectros de potencia multivariados y actualización analítica iterativa del mejor vector de peso; además, supongo que podría encontrarse con el problema de ).pn

También hay un paquete R ForeCA disponible en CRAN (de nuevo: soy el autor) que implementa la funcionalidad básica; en este momento es compatible con la funcionalidad para estimar la medida de predicción para series de tiempo univariadas y tiene algunas buenas funciones de envoltura para espectros multivariados (nuevamente 20,000 series de tiempo es probablemente demasiado para manejar a la vez).Ω(xt)

Pero tal vez pueda intentar usar la medida MASE propuesta por Rob para hacer una separación gruesa de la cuadrícula de los 20,000 en varios subgrupos y luego aplicar ForeCA a cada uno por separado.

Georg M. Goerg
fuente
0

Esta respuesta es muy tardía, pero para aquellos que todavía están buscando una medida adecuada de capacidad de predicción para las series de tiempo de demanda de productos, les sugiero que busquen una entropía aproximada .

La presencia de patrones repetitivos de fluctuación en una serie temporal lo hace más predecible que una serie temporal en la que dichos patrones están ausentes. ApEn refleja la probabilidad de que patrones similares de observaciones no sean seguidos por observaciones similares adicionales. [7] Una serie temporal que contiene muchos patrones repetitivos tiene un ApEn relativamente pequeño; un proceso menos predecible tiene un ApEn más alto.

La demanda del producto tiende a tener un componente estacional muy fuerte, lo que hace que el coeficiente de variación (CV) sea inapropiado. ApEn (m, r) puede manejar esto correctamente. En mi caso, dado que mis datos tienden a tener una fuerte estacionalidad semanal, configuré los parámetros m = 7 yr = 0.2 * std como se recomienda aquí .

meraxes
fuente
En el artículo de Wikipedia, ¿qué significa ? u
blakeoft el
Ya lo veo. Pensé que y estaban relacionados, pero en realidad no lo están. u uu
blakeoft el