MC FLO bietet verschiedene Funktionen an, die in der Excel-Umgebung flexibel erweitert werden können. Ein interessanter Anwendungsfall ist die Bayessche Zeitreihenregression1.
Wie schon an anderer Stelle erklärt, nutzt die Bayessche Statistik ein Vorwissen, das durch beobachtete Daten aktualisiert wird. Bei der (linearen) Regression werden Annahmen über den Achsenabschnitt, den Steigungsparameter und den Fehler der Regression gemacht. Wenn die Zeit die unabhängige Variable ist, kann die Regressionsgleichung an die oben beschriebene Logik angepasst werden.
Wir haben die bekannten AirPassengers Daten von 1949 bis 1960 in eine Trainingsmenge (1949-1958) und eine Testmenge (1959-1960) aufgeteilt. Die einzelnen Monate Januar – Dezember haben wir in verschiedenen Spalten berücksichtigt, um die Saisonalität zu erfassen. Die Zeit wurde als fortlaufende Zahl dargestellt (beginnend mit 1 für den ersten Datensatz). Für jeden Monat gibt es also zehn Trainingsdatensätze.
Für jeden Monat können wir nun gemäss der Bayesschen Logik eine Zufallsvariable als mögliche a-priori Ausprägung der Regressionsparameter bestimmen und mittels Markov-Chain Monte Carlo die Posterior Verteilung basierend auf den beobachteten Daten berechnen. Noch einfacher ist es, wenn MC FLO automatisch eine a-priori Verteilung erzeugt und mögliche Posterior Ausprägungen mit der Formel fmc_BayesPredictionRegression() berechnet. Für jeden Monat (Januar – Dezember) müssen wir in Excel nur noch die entsprechende Regressionsgleichung mit einer Verweis-Funktion einfügen.
Info: Wir gehen hier nicht auf die Zellenverweise ein; alle Daten, Graphiken und Formeln sind in der Excel-Arbeitsmappe enthalten, die mit MC FLO geliefert wird.
Für den Testzeitraum sieht das Ergebnis so aus:
Das Bayessche Zeitreihenmodell bildet die Saisonalität und den Trend sehr gut ab. Der MAPE (mittlere absolute prozentuale Abweichung) liegt bei sehr guten 3%. Zudem werden 100% der Testdaten vom 95% glaubwürdigen Intervall umfasst2.
Ein Nachteil ist allerdings, dass die Residuen nicht normalverteilt sind (bei einem guten Modell sollten sich Über – und Unterschätzungen ungefähr ausgleichen, mit einem Erwartungswert der Residuen von Null). Als alternatives Modell kann das klassische Holt-Winters Verfahren („Exponential Triple Smoothing“) verwendet werden, entweder über die Batch-Funktion von MC FLO oder mit der Excel Funktion Prognose.ETS().
Der MAPE gemäss Prognose.ETS() Formel3 von Microsoft Excel liegt hier bei guten 6%, aber das berechnete Prognoseintervall ist nicht gut genug. Nur etwa 63% der beobachteten Daten liegen im angegebenen 95% Prognoseintervall (idealerweise sollten 95 von 100 beobachteten Daten aus der Testmenge im angegebenen 95%-Prognoseintervall liegen, dann wäre die Überdeckungsquote optimal bei 100%).
Wenn es nur darum geht, Prognosen zu erstellen und nicht Theorien zu prüfen, kann es sinnvoll sein, Modellprognosen zu kombinieren, um das Ergebnis zu optimieren („Ensemble-Verfahren“), vor allem dann, wenn ein einzelnes Modell nicht alle Merkmale prognostizieren kann. Als Ensemble können wir also die Mittelwerte des Bayesschen Regressionsmodells und des ETS Modells sowohl für den Erwartungswert als auch für die Prognoseintervalle zusammenführen.
Der MAPE beträgt nun 5% und 88% der Passagierzahlen in der Testmenge sind vom berechneten 95%-Intervall abgedeckt.
Sie fragen sich vielleicht, was andere Statistikprogramme leisten können; vielleicht gibt es mehr Auswahl und bessere Modellergebnisse, oder? Wir haben das Beispiel 1:1 in R mit der "modeltime" Bibliothek nachgebildet und die Testdaten von Januar 1959 bis Dezember 1960 zur Qualitätsmessung der einzelnen Modelle verwendet.
Die Teststatistiken sehen wie folgt aus:
Das Modell mit dem kleinsten MAPE ist Prophet. Die mittlere absolute prozentuale Abweichung zwischen dem prognostizierten Wert und dem tatsächlichen Wert in der Testmenge beträgt etwa 6.5% und ist doppelt so hoch wie die einfache Bayessche lineare Regression gemäss MC FLO mit 3%. Auch das ETS Modell von R schneidet mit einem MAPE von 13.3% schlechter ab als die Funktion Prognose.ETS() von Microsoft Excel mit 6% und das ETS Modell von MC FLO mit 11%, wobei auch hier zu beachten ist, dass die Algorithmen aufgrund des „Fehlerterms“ unterschiedliche Resultate liefern können.
Hier sind einige Anregungen zur Inspiration:
- Wenn Sie Daten über einen langen Zeitraum haben, die durch einen Trend und/oder eine Saisonalität beschrieben werden können und Sie verantwortungsvoll davon ausgehen können, dass das Muster aus der Vergangenheit auch für die Zukunft gilt, dann können Zeitreihenverfahren eine Alternative zu einem simulationsbasierten Ansatz sein.
- Kombinieren Sie Zeitreihenmodelle für die Erstellung der Prognose, lassen Sie sich nicht kurzfristig von der Perfomance eines bestimmten Modells beeinflussen. Kombinierte Modelle („Ensemble“) haben sich in der Praxis als robust erwiesen.
- Wenn Sie nur wenige Daten haben oder diese Daten keinem Trend oder keiner Saisonalität zugeordnet werden können, dann machen Sie eine Simulation. Durch die Kombination verschiedener Daten können Sie mit einer Simulation den Aggregationseffekt (oder auch Portfolioeffekt; 1+1 <> 2, was auf die Jensenschen Ungleichung zurückzuführen ist) besser erfassen.
Die Reise kann mit MC FLO und Microsoft Excel weitergehen. Sie können die Zeitreihe mit weiteren erklärenden Variablen (z.B. Arbeitslosenquote etc.) im Rahmen einer Regressionsanalyse kombinieren. Die Anzahl erklärender Variablen und die Anzahl der beobachteten Datenpunkte sind theoretisch unbegrenzt. Das unterscheidet MC FLO (auch) von den in Excel verfügbaren Regressionsfunktionen.
1 Der hier beschriebene Algorithmus ist eine vereinfachte Form des von Meta (Facebook) entwickelten Prophet Modell, siehe auch GitHub - facebook/prophet: Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth.
2 Wir haben das Modell ohne Logtransformation der Daten aufbereitet. Wie aus der Graphik oben ersichtlich, nimmt die Volatilität über den Zeitablauf zu, was sich noch nicht in der Testmenge bemerkbar macht.
3 Die Excel Funktion aktualisiert die Daten mit jeder Änderung, kann also bei vielen Zeitreihen zu Performanceproblemen führen. Die Batch Funktion von MC FLO wird nur auf „Befehl“ angestossen, womit Zeitreihenmodelle und andere Modellberechnungen in der gleichen Arbeitsmappe ohne Produktivitätsverluste kombiniert werden können.
Kommentar schreiben