Insgesamt 4,1 Millionen Tonnen Lebensmittel entsorgt die deutsche Lebensmittelindustrie (Produktion, Verarbeitung, Groß- und Einzelhandel) jedes Jahr. Das ist wenig nachhaltig und zudem kostenintensiv. Durch eine bessere Vorhersage von Absatz und Nachfrage ließe sich Überproduktion reduzieren und dabei auch noch Kosten sparen. Derartige Prognosen sind eines der Anwendungsfelder von Time Series Prediction. Die Technik basiert auf der Analyse vergangener Zeitreihen und deren Prognose in die Zukunft.
In der Praxis werden derartige Prognosen häufig manuell erstellt und stark abstrahiert, denn eine manuelle Absatzprognose für z.B. 100 Filialen zu je 1000 Artikeln ist sehr anspruchsvoll. So werden Forecasts beispielsweise auf Ebene von Artikelgruppen oder auf Region durchgeführt, obwohl granulare Daten verfügbar wären.
Dieser Blogartikel soll einen Überblick über Machine Learning Methoden geben, die für komplexe Zeitreihenanalysen zur Verfügung stehen und einen Eindruck davon vermitteln, was deren Möglichkeiten und Grenzen sind. Die dargestellten Methoden sind dabei selbstverständlich nur eine Auswahl der vielen Ansätze, die sich und die folgenden Kategorien unterteilen lassen:
Im Folgenden dienen die fiktiven Verkaufszahlen von Schokoladenosterhasen der vergangenen Jahre als Beispiel. Aus diesen Daten soll die Absatzmenge für das gesamte Jahr bestimmt werden. Allerdings nicht für die ganze Saison, sondern nur für die letzten 40 Tage vor Ostern. Die Hoffnung ist, dass ein gutes Modell in der Lage ist, mit den Daten vom Saison-Beginn (01.01.2022 – 07.02.2022) und unter Zuhilfenahme der Verläufe früherer Jahre die Absätze in der heißen Phase vorherzusagen. Und zwar auch dann, wenn sich der Verkaufstrend von letzter zu dieser Saison geändert hat.
Möglich wird die Prognose von Zeitreihenwerten durch das Erkennen ihrer Charakteristika und deren anschließender Fortschreibung in die Zukunft. Ein erstes Zeitreihenmerkmal wäre der Verkaufstrend der letzten Jahre (also ob die Osterhasenverkäufe über die Jahre zunehmen, abnehmen oder stagnieren). Dieser Trend ist das langfristigste Signal einer Zeitreihe und weist die geringste Bewegung auf.
Ein zweites Merkmal wäre die – in diesem Fall extrem ausgeprägte – Saisonalität der Verkäufe, die sich aufgrund des wandernden Osterdatums natürlich von Jahr zu Jahr verschiebt. Jedes periodisch wiederkehrende Muster wird als Saisonalität bezeichnet. Sie können stündlich, monatlich, jährlich auftreten, wie im Beispiel von Feiertagen abhängen oder auch von wiederkehrenden menschlichen Verhaltensmustern. Beispielsweise ist für den Absatz von Winterjacken nicht allein die Tatsache ausschlaggebend, dass meteorologisch gesehen Winter ist, sondern auch wie früh bestimme Temperaturschwellen unterschritten werden und wie tief sie fallen.
Trend und Saisonalität lassen sich mittels statistischer Verfahren erkennen und von der Gesamt-Zeitreihe abziehen. Übrig bleibt ein Rest. Ist dieser klein, erklären Trend und Saisonalitäten die Entwicklung einer Zeitreihe. Ist er es nicht, steht uns weitere Arbeit ins Haus. Es könnte sich um chaotische Anomalien der Zeitreihe handeln; möglicherweise fehlen aber auch Daten, welche die Entwicklung erklären können.
Die fiktiven Osterhasen-Verkaufsdaten bestehen zunächst nur aus zwei Spalten:
Es liegen Daten für fünf Jahre vor. Die Verkäufe der Osterhasen beginnen jeweils am ersten Februar, steigen bis Ostern an und fallen anschließend abrupt ab. Die Verkäufe an Sonntagen sind jeweils erheblich geringer als die Verkäufe an den übrigen Wochentagen.
Beim Trainieren eines Machine-Learning-Modells benötigen wir eine Trainings- (blau) und eine Testperiode (orange). Das Modell bekommt also nur den blauen Teil der Daten gezeigt. Nach dem Training soll es dann die orangene Testperiode vorhersagen. Die Abweichung zwischen der Vorhersage und Testdaten gibt Auskunft über die Qualität unseres Modells. Unser Modell kann also vier der fünf Jahre zum Training nutzen.
Der Time Series Analyse hilft es, den beiden initialen Spalten Verkaufsdatum und Verkaufsmenge weitere Spalten zur Seite zu stellen: sogenannte Features. Standardmäßig teilen wir das Datum in Wochentag, Monat, ggf. Stunden und Minuten auf und fügen Feiertage hinzu. Im spezifischen Osterfall fügen wir eine Countdown-Spalte hinzu, welche die bis Ostern verbleibenden Tage herunterzählt.
Auch die Verkaufsmenge nutzen wir zum Erzeugen weiterer Features, beispielsweise des gleitenden Absatzdurchnitts pro Kalenderwoche. Denkbar wären auch Features, die z.B. Aufschluss über den Konjunkturzyklus geben und helfen, den Trend vorherzusagen oder Features (die in diesem Fall keinen Anwendungen finden) wie Verkaufspreise, potenzielle Werbekampagnen und vieles mehr. Kurzum: alle Daten die einer hohen Prognosegenauigkeit potenziell dienlich sind. Inwieweit sie dies tatsächlich sind, lässt sich später mittels Feature Importance- und Korrelations-Analysen testen.
Machine Learning nutzt mathematische Modelle, um möglichst genaue Prognosen zu erzielen. Ein häufig gewählter alternativer Ansatz ist die Annahme, dass sich das zu prognostizierende Jahr ähnlich oder gleich dem Vorjahr verhält.
Im Bild ist zu sehen, dass die Vorjahresdaten einfach ins aktuelle Jahr kopiert wurden. In diesem Beispiel wurde auch darauf verzichtet, dass wandernde Osterdatum (04.04.2021 bzw. 17.04.2022) zu berücksichtigen, was sich entsprechend im Diagramm zeigt. Ein nützliches Time Series Modell muss die Genauigkeit eines solch schlichten Vorjahresvergleiches deutlich übertreffen!
Der Times Series Analyse steht eine große Palette an Modellen zur Verfügung, die in unterschiedlichen Anwendungsfällen sinnvoll sind. Es beginnt bei linearer Regression und reicht bis zu modernen neuronalen Netzen. Bei der Modellauswahl empfiehlt es sich, zunächst nicht mit (Laser-)Kanonen auf Spatzen zu schießen, sondern simpel zu beginnen und zu schauen, wie hartnäckig die Spatzen sind.
Eines der einfachsten Modelle ist die aus dem Mathematikunterricht bekannte Lineare Regression. Sie erzeugt eine Regressiongerade und versucht diese möglichst gut an die Eingabewerte anzupassen. Da die Osterhasenverkäufe in keiner Weise linear sind, versagt das Modell völlig. Es ist mit der Komplexität der Daten restlos überfordert. Die niedrigen Werte der Prognosegerade ergeben sich aus dem Umstand, dass die Trainingsdaten auch alle Werte nach Ostern beinhalten. Diese sind größtenteils null, dafür aber zahlreich. Auf einem modernen Laptop betrug die Berechnungszeit dieses Models der Linearen Regression etwa 0,5 Sekunden. Die Erkenntnis, dass es nutzlos ist, stellt sich also immerhin sehr schnell ein.
Ein weiterer einfacher Ansatz ist die Berechnung eines Durchschnitts der Wochenverkäufe aus den letzten vier Jahren. Also z.B. die Summe der Verkäufe in der Woche vor Ostern geteilt durch 4 Jahre Anzahl.
Das Ergebnis ist in diesem Fall etwas besser als reine Vorjahresvergleich. Das muss natürlich nicht jedes Jahr so sein.
Seit dem Aufkommen der linearen Regression im Jahre 1805 wurden schrittweise verbesserte Regressionsverfahren entwickelt. Dieser Prozess hält bis heute an und führt regelmäßig zu Innovationen. Eine Entwicklung aus dem Jahr 2014 ist das XGBoost-Modell, welches weite Teile der Entwicklung der letzten 200 Jahre in sich vereint.
Im Training betrachtet das Modell sämtliche verfügbaren Daten und analysiert selbstständig deren Abhängigkeiten: Haben beispielsweise bestimmte Wochentage Auswirkung auf die Verkäufe? Lässt sich erkennen, dass Verkäufe im März höher sind als im Februar? Bestehen starke oder schwache Korrelationen zu den Verkäufen der Vorwoche? Wie hoch ist die Aussagekraft eines Vorjahres für sein Folgejahr? Und so weiter und so weiter …
Die im Vorfeld bereitgestellten Features bestimmen dabei über die Abhängigkeiten, die untersucht werden können. Über deren Bereitstellung nehmen wir Einfluss auf die Zusammenhänge, die das Modell finden kann. So lernt das Modell beispielsweise, dass es einen starken Zusammenhang zwischen der Absatzmenge und der Anzahl der bis Ostern verbleibenden Tage gibt. Ein Zusammenhang, der für Menschen offensichtlich ist. Offensichtlich oder nicht offensichtlich ist für das Modell jedoch kein Konzept. Es prüft sämtliche mögliche Verbindungen mit der gleichen Sorgfalt und findet auch solche, die Menschen entgehen.
Wenn wir nach Abschluss des Trainings eine Prognose erzeugen lassen, wird diese für jeden Tag einzeln erstellt. Daher kann die Prognose für Ostersamstag sehr hoch sein und die für Ostermontag sehr niedrig. Bei der linearen Regression wären die Ergebnisse der beiden Tage zwangsläufig nah beieinander. XGBoost liefert jedoch keine Funktion zurück, sondern individuelle Vorhersagen für jeden Tag. Das Ergebnis ist eine Zick-Zack-Kurve, die auf starke Wertschwankungen reagieren kann und nicht mehr den Einschränkungen von Geraden oder Kurven unterliegt.
Die Prognosegenauigkeit am letzten Tag ist praktisch exakt korrekt, in den Vortagen jedoch weniger genau. Insgesamt zeigt sich jedoch ein gutes Ergebnis. Dieses Modell war innerhalb von 7 Sekunden berechnet. Die Rechenintensivität steigt mit zunehmender Komplexität an, bleibt jedoch auch bei größeren Modellen in einem Rahmen, den ein modernes Laptop bewältigen sollte.
Neuronale Netze sind die Laserkanone unter den Machine-Learning-Modellen. Bekannte Einsatzgebiete sind beispielsweise Objekterkennung auf Bildern, Bildgenerierung anhand von Texteingaben oder die Steuerung mehr oder minder selbstfahrender Autos. Sie sind gut darin, Muster in gewaltigen Datenbergen zu erkennen. Daher können sie auch bei Zeitreihenproblemen eingesetzt werden.
Allerdings brauchen neuronale Netze für ein erfolgreiches Training sehr viele Datensätze. Mehr Datensätze, als in unserem Beispiel zur Verfügung stehen. Beim Training vergleichen sie, anders als klassische Modelle, alle Datenpunkte untereinander und versuchen, prognoeserelevante Zusammenhänge aufzudecken.
Bei der Prognose der Osterhasenverkäufe liefert das eingesetzte Neuronale Netzwerk ebenfalls ein gutes Ergebnis. Zwar weicht es an den letzten beiden Tagen stärker ab als XGBoost, davor jedoch nicht. Die Trainingszeit beträgt 9 Minuten und 10 Sekunden. Für sich betrachtet ist das immer noch schnell, aber trotzdem 78 Mal so lang wie XGBoost. Zudem ist der Osterhasen-Datensatz im Vergleich zu realen Datensätzen sehr überschaubar. In einem realistischen Szenario entstehen schnell extreme Trainingszeiten und damit auch Kosten. Mit klassischen Verfahren kann meist schnell ein Training durchgeführt und getestet werden, wie das Modell auf Änderungen reagiert und ob es besser oder schlechter als sein Vorgänger ist. Bei komplexen neuronalen Netzen ist das gleiche Vorgehen kostspielig und langwierig. Diese Aspekte sollten beim Einsatz Neuronaler Netze in der Zeitreihenanalyse berücksichtigt werden.
Time Series Analysen erkennen Trends, Trendwenden und auch komplexe Saisonalitäten. Dadurch ermöglichen sie Prognosen mit hoher Genauigkeit. Moderne Analysemethoden entdecken Regelmäßigkeiten, die einem menschlichen Betrachter entgehen und sind in der Lage, Datenmengen sinnvoll zu nutzen, die eine manuelle Analyse überfordern. Durch Erweiterung der Datenbasis um bisher ungenutzte Datentöpfe wie beispielsweise Werbekampagnen lässt sich die Prognosegenauigkeit weiter erhöhen.
Time Series Analyse liefert akkurate Ergebnisse, kann aber nicht hellsehen. Ereignisse, auf die es in den analysierten Daten keine Hinweise gibt, können nicht vorhergesagt werden. Unerwartete geopolitische Schocks entziehen sich der Prognose. Die Weiter-Projektion von Aktienkursen scheitert daran, dass die Information über den zukünftigen Wert nicht in den vergangenen Wert enthalten sind.
Gegenüber Prognosen, die auf einen manuellen Vorjahresvergleich oder eine aggregierte Datenbasis setzen, bieten Machine Learning Verfahren verbesserte Genauigkeit, höhere Granularität und Erkennung von Trendwenden, die ihre Schatten – versteckt in Millionen von Datenpunkten – bereits vorauswerfen.