Valutare le previsioni delle serie storiche


11

Supponiamo di avere poco più di 20.000 serie temporali mensili che vanno dal gennaio 2005 al dicembre 11. Ognuno di questi rappresenta i dati di vendita globali per un prodotto diverso. E se invece di calcolare le previsioni per ognuno di loro, volessi concentrarmi solo su un numero limitato di prodotti che "contano davvero"?

Potrei classificare quei prodotti in base al totale delle entrate annuali e tagliare l'elenco usando il Pareto classico. Tuttavia mi sembra che, sebbene non contribuiscano molto ai profitti, alcuni prodotti sono così facili da prevedere che lasciarli fuori sarebbe un cattivo giudizio. Un prodotto che ha venduto 50 $ ogni mese negli ultimi 10 anni potrebbe non sembrare molto, ma richiede così poco sforzo per generare previsioni sulle vendite future che potrei anche farlo.

Quindi diciamo che divido i miei prodotti in quattro categorie: entrate elevate / previsioni facili - entrate basse / previsioni facili - entrate elevate / previsioni difficili - entrate basse / previsioni difficili.

Penso che sarebbe ragionevole lasciarsi alle spalle solo quelle serie storiche appartenenti al quarto gruppo. Ma come posso valutare esattamente la "previsione"?

Il coefficiente di variazione sembra un buon punto di partenza (ricordo anche di aver visto qualche articolo a riguardo qualche tempo fa). Ma cosa succede se le mie serie storiche mostrano stagionalità / cambiamenti di livello / effetti del calendario / forti tendenze?

Immagino che dovrei basare la mia valutazione solo sulla variabilità della componente casuale e non su quella dei dati "grezzi". Oppure mi sfugge qualcosa?

Qualcuno si è imbattuto in un problema simile prima? Come fareste ragazzi?

Come sempre, qualsiasi aiuto è molto apprezzato!

Risposte:


9

Ecco una seconda idea basata su stl.

È possibile adattare una decomposizione stl a ciascuna serie e quindi confrontare l'errore standard del componente rimanente con la media dei dati originali ignorando eventuali anni parziali. Le serie facili da prevedere dovrebbero avere un piccolo rapporto tra se (resto) e media (dati).

Il motivo per cui suggerisco di ignorare gli anni parziali è che la stagionalità influenzerà diversamente la media dei dati. Nell'esempio della domanda, tutte le serie hanno sette anni completi, quindi non è un problema. Ma se la serie si estendesse fino al 2012, suggerisco che la media venga calcolata solo fino alla fine del 2011 per evitare la contaminazione stagionale della media.

Questa idea presuppone che la media (dati) abbia un senso, ovvero che i dati siano medi stazionari (a parte la stagionalità). Probabilmente non funzionerebbe bene con dati con tendenze forti o radici di unità.

Presuppone anche che una buona misura stl si traduca in buone previsioni, ma non riesco a pensare a un esempio in cui ciò non sarebbe vero, quindi probabilmente è un presupposto ok.


Ciao Rob, grazie per essere tornato da me. Mi piace la tua idea, quindi ci proverò e vedrò se fornisce il livello di filtro desiderato. Solo un'altra cosa, c'è qualche motivo particolare per usare media (dati) su media (resto)? Temo che alcune delle mie serie storiche potrebbero avere una tendenza piuttosto forte. Le serie decomposte STL, invece, non dovrebbero. Ritiene inoltre che l'approccio che abbiamo delineato finora per valutare le previsioni e individuare i valori anomali sia abbastanza buono per essere implementato in un ambiente aziendale reale? O è troppo "amatoriale"? Normalmente faresti le cose in modo molto diverso?
Bruder,

la media (resto) sarà prossima allo zero. Vuoi confrontare il rumore con la scala dei dati, quindi media (dati) dovrebbe essere ok. Non sono sicuro di come gestire le tue tendenze. Vorrei testare attentamente l'approccio su una serie di dati prima di credere ai risultati.
Rob Hyndman,

8

Questo è un problema abbastanza comune nelle previsioni. La soluzione tradizionale è calcolare gli errori percentuali assoluti medi (MAPE) su ciascun elemento. Più basso è il MAPE, più facilmente è previsto l'articolo.

Un problema con questo è che molte serie contengono valori zero e quindi MAPE non è definito.

yttT

Q=1T12t=13T|ytyt12|,
qt=(yty^t)/Qy^tyth

Le serie facili da prevedere dovrebbero avere valori bassi di MASE. Qui "facile da prevedere" viene interpretato in relazione alla previsione ingenua stagionale. In alcune circostanze, potrebbe essere più sensato utilizzare una misura di base alternativa per ridimensionare i risultati.


Ciao Rob, grazie per la cortese risposta. Come sempre il tuo approccio è molto accurato, diretto e ragionevole. Ho già valutato il valore aggiunto della previsione ( FTV ) rispetto a un modello ingenuo stagionale, quindi la tua idea di valutare le previsioni usando la stessa "misura di base" sembra molto allettante. L'unico problema è che, per calcolare MASE, devo scegliere un metodo di previsione ed eseguire simulazioni per ciascuna delle mie 20000 serie storiche. Speravo di poter individuare in anticipo serie facili da prevedere, in modo da poter risparmiare tempo di calcolo.
Bruder,

Per qualche motivo, ho pensato che serie temporali con una variabilità relativa inferiore (ad esempio CV) avrebbero necessariamente comportato previsioni più semplici e accurate. Calcolo delle previsioni e quindi, e solo dopo aver misurato gli errori, penso che il mio scopo sia una specie di sfida. Immagino che ciò che sto cercando di dire è che guardo a MASE più come una misura dell'accuratezza delle previsioni che una misura della previsione. Ma potrei sbagliarmi ... :)
Bruder,

1
@Bruder: 2 pensieri: 1. Potresti guardare una semplice previsione ingenua, piuttosto che una previsione stagionale. Una semplice previsione ingenua utilizza solo il valore precedente delle serie temporali e prenderà una forte tendenza (con un ritardo di 1 periodo). 2. La decomposizione STL è una buona idea. Se i residui sono molto piccoli rispetto ai componenti stagionali e di tendenza, probabilmente puoi facilmente prevedere la serie.
Zach,

1
@Rob - che dire della decomposizione STL? Posso ottenere due volatili con una fava (ad esempio individuare i valori anomali e valutare la previsione, quindi valutare la previsione "vera")? Mi stupisce quante cose posso realizzare con solo STL e un modello ingenuo stagionale. Ma sai cosa succede quando le cose sono troppo belle per essere vere ...
Bruder,

1
ti

5

pn

Ω(xt)

Ma forse puoi provare a usare la misura MASE proposta da Rob per fare una separazione grossolana della griglia di 20.000 in diversi sottogruppi e quindi applicare ForeCA a ciascuno separatamente.


0

Questa risposta è molto tardi, ma per coloro che sono ancora alla ricerca di una misura adeguata delle previsioni per le serie temporali della domanda di prodotti, consiglio vivamente di esaminare l' entropia approssimativa .

La presenza di schemi ripetitivi di fluttuazione in una serie temporale la rende più prevedibile di una serie temporale in cui tali schemi sono assenti. ApEn riflette la probabilità che simili schemi di osservazioni non saranno seguiti da ulteriori osservazioni simili [7]. Una serie temporale contenente molti schemi ripetitivi ha un ApEn relativamente piccolo; un processo meno prevedibile ha un ApEn più elevato.

La domanda di prodotti tende ad avere una componente stagionale molto forte, rendendo inappropriato il coefficiente di variazione (CV). ApEn (m, r) è in grado di gestirlo correttamente. Nel mio caso, poiché i miei dati tendono ad avere una forte stagionalità settimanale, ho impostato i parametri m = 7 e r = 0,2 * std come raccomandato qui .


u

uu
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.