Bewertung der Vorhersagbarkeit von Zeitreihen

11

Angenommen, ich habe etwas mehr als 20.000 monatliche Zeitreihen vom 05. Januar bis zum 11. Dezember. Diese repräsentieren jeweils globale Verkaufsdaten für ein anderes Produkt. Was wäre, wenn ich mich, anstatt Prognosen für jeden einzelnen von ihnen zu berechnen, nur auf eine kleine Anzahl von Produkten konzentrieren wollte, die "tatsächlich wichtig" sind?

Ich könnte diese Produkte nach dem jährlichen Gesamtumsatz ordnen und die Liste mit klassischem Pareto reduzieren. Trotzdem scheint es mir, dass einige Produkte, obwohl sie nicht viel zum Endergebnis beitragen, so einfach vorherzusagen sind, dass es eine schlechte Beurteilung wäre, sie wegzulassen. Ein Produkt, das in den letzten 10 Jahren jeden Monat einen Wert von 50 US-Dollar verkauft hat, klingt vielleicht nicht nach viel, erfordert jedoch so wenig Aufwand, um Vorhersagen über zukünftige Verkäufe zu erstellen, dass ich es genauso gut tun könnte.

Nehmen wir also an, ich teile meine Produkte in vier Kategorien ein: hoher Umsatz / einfach zu prognostizieren - niedriger Umsatz / einfach zu prognostizieren - hoher Umsatz / schwer zu prognostizieren - niedriger Umsatz / schwer zu prognostizieren.

Ich denke, es wäre vernünftig, nur die Zeitreihen der vierten Gruppe zurückzulassen. Aber wie genau kann ich die "Prognosefähigkeit" bewerten?

Der Variationskoeffizient scheint ein guter Ausgangspunkt zu sein (ich erinnere mich auch, dass ich vor einiger Zeit ein Papier darüber gesehen habe). Aber was ist, wenn meine Zeitreihen Saisonalität / Pegelverschiebungen / Kalendereffekte / starke Trends aufweisen?

Ich würde mir vorstellen, dass ich meine Bewertung nur auf die Variabilität der Zufallskomponente und nicht auf die der "Rohdaten" stützen sollte. Oder fehlt mir etwas?

Hat jemand schon einmal auf ein ähnliches Problem gestoßen? Wie würdet ihr das machen?

Wie immer wird jede Hilfe sehr geschätzt!

Bruder
quelle

Antworten:

9

Hier ist eine zweite Idee basierend auf stl.

Sie können jeder Serie eine STL-Zerlegung anpassen und dann den Standardfehler der Restkomponente mit dem Mittelwert der Originaldaten vergleichen, wobei Teiljahre ignoriert werden. Serien, die leicht vorherzusagen sind, sollten ein kleines Verhältnis von se (Rest) zu Mittelwert (Daten) haben.

Der Grund, warum ich vorschlage, Teiljahre zu ignorieren, ist, dass die Saisonalität ansonsten den Mittelwert der Daten beeinflusst. In dem Beispiel in der Frage haben alle Serien sieben vollständige Jahre, es ist also kein Problem. Wenn sich die Serie jedoch bis 2012 erstreckt, schlage ich vor, dass der Mittelwert nur bis Ende 2011 berechnet wird, um eine saisonale Kontamination des Mittelwerts zu vermeiden.

Diese Idee geht davon aus, dass Mittelwert (Daten) sinnvoll ist - das heißt, dass die Daten Mittelwert stationär sind (abgesehen von der Saisonalität). Es würde wahrscheinlich nicht gut für Daten mit starken Trends oder Einheitswurzeln funktionieren.

Es wird auch davon ausgegangen, dass eine gute stl-Anpassung zu guten Prognosen führt, aber ich kann mir kein Beispiel vorstellen, bei dem dies nicht der Fall wäre, sodass dies wahrscheinlich eine gute Annahme ist.

Rob Hyndman
quelle
Hallo Rob, danke, dass du dich bei mir gemeldet hast. Ich mag Ihre Idee, also werde ich es versuchen und sehen, ob sie die gewünschte Filterstufe bietet. Nur noch eine Sache, gibt es einen bestimmten Grund, Mittelwert (Daten) über Mittelwert (Rest) zu verwenden? Ich befürchte, dass einige meiner Zeitreihen einen etwas starken Trend haben könnten. STL zerlegte Serien sollten stattdessen nicht. Denken Sie auch, dass der bisher skizzierte Ansatz zur Bewertung der Prognosefähigkeit / Erkennung von Ausreißern gut genug ist, um in einer realen Geschäftsumgebung umgesetzt zu werden? Oder ist es zu "amateurhaft"? Würden Sie das normalerweise anders machen?
Bruder
Mittelwert (Rest) liegt nahe bei Null. Sie möchten das Rauschen mit der Skalierung der Daten vergleichen, daher sollte der Mittelwert (Daten) in Ordnung sein. Ich bin mir nicht sicher, wie ich mit deinen Trends umgehen soll. Ich würde den Ansatz sorgfältig anhand einer Reihe von Daten testen, bevor ich an die Ergebnisse glaube.
Rob Hyndman
8

Dies ist ein ziemlich häufiges Problem bei der Prognose. Die traditionelle Lösung besteht darin, mittlere absolute prozentuale Fehler (MAPEs) für jedes Element zu berechnen. Je niedriger die MAPE, desto einfacher ist die Vorhersage des Artikels.

Ein Problem dabei ist, dass viele Serien Nullwerte enthalten und MAPE dann undefiniert ist.

Ich schlug eine Lösung in Hyndman und Koehler (IJF 2006) [Preprint-Version] vor, bei der mittlere absolute skalierte Fehler (MASEs) verwendet wurden. Für monatliche Zeitreihen würde die Skalierung auf saisonalen naiven Prognosen in der Stichprobe basieren. Das heißt, wenn eine Beobachtung zum Zeitpunkt , sind Daten von den Zeitpunkten 1 bis verfügbar und dann ist ein skalierter Fehler , wobei eine Prognose von Verwendung der Prognosemethode ist, die Sie für dieses Element implementieren. Nehmen Sie den mittleren absoluten Wert der skalierten Fehler, um die MASE zu erhalten. Beispielsweise könnten Sie einen rollierenden Ursprung verwenden (auch bekannt als)yttT

Q=1T12t=13T|ytyt12|,
qt=(yty^t)/Q y tythy^tytZeitreihen-Kreuzvalidierung ) und nehmen Sie den mittleren absoluten Wert der resultierenden Ein-Schritt- (oder Schritt-) Fehler.h

Serien, die leicht vorherzusagen sind, sollten niedrige MASE-Werte aufweisen. Hier wird "leicht zu prognostizieren" relativ zur saisonal naiven Prognose interpretiert. Unter bestimmten Umständen kann es sinnvoller sein, eine alternative Basismaßnahme zur Skalierung der Ergebnisse zu verwenden.

Rob Hyndman
quelle
Hallo Rob, danke für deine freundliche Antwort. Wie immer ist Ihr Ansatz sehr ordentlich, unkompliziert und vernünftig. Ich bewerte den prognostizierten Mehrwert ( FTV ) bereits anhand eines saisonal naiven Modells, sodass Ihre Idee, die Prognostizierbarkeit mit demselben "Basismaß" zu bewerten, sehr ansprechend klingt. Das einzige Problem ist, dass ich zur Berechnung von MASE eine Prognosemethode auswählen und Simulationen für jede meiner 20000 Zeitreihen ausführen muss. Ich hatte gehofft, dass ich vorher leicht zu prognostizierende Serien erkennen konnte, um Rechenzeit zu sparen.
Bruder
Aus irgendeinem Grund dachte ich, dass Zeitreihen mit einer geringeren relativen Variabilität (dh CV) notwendigerweise zu einfacheren und genaueren Vorhersagen führen würden. Prognosen zu berechnen und dann und erst dann Fehler zu messen, trotzt meiner Meinung nach meinem Ziel. Ich denke, ich versuche zu sagen, dass ich MASE eher als Maß für die Prognosegenauigkeit als als Maß für die Prognosefähigkeit betrachte. Aber ich könnte mich irren ... :)
Bruder
1
@Bruder: 2 Gedanken: 1. Sie könnten sich eine einfache naive Prognose anstatt einer saisonalen Prognose ansehen. Eine einfache naive Prognose verwendet nur den vorherigen Wert der Zeitreihe und nimmt einen starken Trend auf (mit einer Verzögerung von 1 Periode). 2. STL-Zerlegung ist eine gute Idee. Wenn die Residuen im Vergleich zu den saisonalen und Trendkomponenten sehr klein sind, können Sie die Serie wahrscheinlich leicht vorhersagen.
Zach
1
@Rob - was ist mit STL-Zerlegung? Kann ich zwei Fliegen mit einer Klappe schlagen (dh Ausreißer erkennen und die Vorhersagbarkeit beurteilen, also die "wahre" Vorhersagbarkeit beurteilen)? Es wundert mich, wie viele Dinge ich mit nur STL und einem saisonal naiven Modell erreichen kann. Aber Sie wissen, was passiert, wenn die Dinge zu gut sind, um wahr zu sein ...
Bruder
1
Ich glaube, dass der Index der Summe anstelle von . iti
Blakeoft
5

Sie könnten an ForeCA: Forecastable Component Analysis interessiert sein (Haftungsausschluss: Ich bin der Autor). Wie der Name schon sagt, handelt es sich um eine BSS-Technik (Dimension Reduction / Blind Source Separation), um die meisten vorhersagbaren Signale aus vielen multivariaten - mehr oder weniger stationären - Zeitreihen zu finden. Für Ihren speziellen Fall von 20.000 Zeitreihen ist dies möglicherweise nicht die schnellste Aufgabe (die Lösung umfasst multivariate Leistungsspektren und iterative, analytische Aktualisierung des besten Gewichtsvektors; außerdem könnte es zu Problemen mit .)pn

Es gibt auch ein R-Paket ForeCA bei CRAN (wieder: Ich bin der Autor), das grundlegende Funktionen implementiert. Derzeit unterstützt es die Funktionalität zum Schätzen des Prognosefähigkeitsmaßes für univariate Zeitreihen und verfügt über einige gute Wrapper-Funktionen für multivariate Spektren (wieder sind 20.000 Zeitreihen wahrscheinlich zu viel, um sie gleichzeitig zu verarbeiten).Ω(xt)

Aber vielleicht können Sie versuchen, die von Rob vorgeschlagene MASE-Maßnahme zu verwenden, um eine grobe Gittertrennung der 20.000 in mehreren Untergruppen vorzunehmen und dann ForeCA für jede separat anzuwenden.

Georg M. Goerg
quelle
0

Diese Antwort ist sehr spät, aber für diejenigen, die immer noch nach einem geeigneten Maß für die Vorhersagbarkeit für Zeitreihen der Produktnachfrage suchen, empfehle ich dringend, die ungefähre Entropie zu betrachten .

Das Vorhandensein sich wiederholender Schwankungsmuster in einer Zeitreihe macht es vorhersehbarer als eine Zeitreihe, in der solche Muster fehlen. ApEn spiegelt die Wahrscheinlichkeit wider, dass auf ähnliche Beobachtungsmuster keine zusätzlichen ähnlichen Beobachtungen folgen. [7] Eine Zeitreihe mit vielen sich wiederholenden Mustern hat einen relativ kleinen ApEn; Ein weniger vorhersehbarer Prozess hat einen höheren ApEn.

Die Produktnachfrage hat tendenziell eine sehr starke saisonale Komponente, was den Variationskoeffizienten (CV) unangemessen macht. ApEn (m, r) kann damit richtig umgehen. In meinem Fall setze ich, da meine Daten tendenziell eine starke wöchentliche Saisonalität aufweisen, die hier empfohlenen Parameter m = 7 und r = 0,2 * std .

Meraxe
quelle
Was bedeutet im Wikipedia-Artikel ? u
Blakeoft
Ich sehe jetzt. Ich dachte und wären verwandt, aber sie sind es tatsächlich nicht. u uu
Blakeoft