Im folgenden kurzen Blogbeitrag wollen wir auf unser neues Template zur Zeitreihenprognose auf Basis eines bayesschen Regressionsmodells aufmerksam machen, welches mit der "AirPassengers" Datenreihe hier abgerufen werden kann.
Im Prinzip ist das Vorgehen selbsterklärend. In den hellorange hinterlegten Zellen sind Daten einzugeben, so in Spalte B der fortlaufende Zeitstempel (auf Monatsbasis) und in Spalte C der entsprechende Wert. In Zellen F14 ff werden die zu prognostizierenden Datumsdaten (zum Monat, maximal 32 Prognosewerte) eingetragen, in den Zelle G2 der Anteil der Daten, welcher für das Training Verwendung finden soll und in Spalte F3 das zu modellierende Prognoseintervall.
Alle anderen Zellen werden nach Anstossen einer Monte-Carlo Simulation automatisch berechnet. Kein Code, keine weiteren Aufbereitungsarbeiten.
Vor Starten einer Monte-Carlo Simulation sehen Sie drei Referenzmodelle, den Durchschnitt aus der Trainingsmenge, den Vormonatswert und den Vorjahresmonatswert sowie zwei gebräuchliche KPI’s, den MAE (mean absolute error) und MAPE (mean absolute percentage error). In unserem Fall bei einer Testdatensatzmenge von 30% liegt der MAPE in den Referenzmodellen im besten Fall bei 9%.
Wir starten die Simulation mit wenigen Iterationen (hier 5, das Anstossen der Simulation dient nur zur Überprüfung des Lizenzschlüssels). Folgende Ergebnisse resultieren:
In Bezug auf die Testdaten hat das Bayessche Regressionsmodell eine bessere Performance (MAPE bei 4%) als die der Referenzmodelle. Vom 90% spezifizierten Prognoseintervall sind effektiv 95% aller Daten im entsprechenden Prognoseintervall enthalten. Das Modell berechnet somit ein zu tiefes unteres Prognoseintervall und ein zu hohes oberes Prognoseintervall als gemäss Spezifikation erforderlich. Insgesamt ist in Bezug auf die Testdatenmenge festzuhalten, dass a) das Bayessches Regressionsmodell ausgewogen spezifiziert ist und b) eine bessere Prognose als die Benchmarkmodelle aufweist.
Ein Vergleich mit gängigen in R implementierten Zeitreihenmodellen zeigt auf, dass die Bayessche Regression hier besser abschneidet (das beste Modell ist ARIMA mit einem MAPE von 5.21%).
Eine kurze Reflexion: Warum überhaupt ein Bayessches Regressionsmodell? Die Bayessche Statistik erfordert ein Vorwissen über die Parameter eines Modells. Hier in Bezug auf die einfache, lineare Regression ist es der Achsenabschnitt und der Steigungsparameter. Durch Kombination dieses Vorwissens mit den gemessenen Daten kann das Wissen über den „wahren“ Parameterwert erhöht und somit die Unsicherheit reduziert werden. In MC FLO wird bei der Bayesschen Regression das Vorwissen anhand der Daten „vorkalibriert“, so dass am Ende ein stabileres Resultat als bei Anwendung der klassischen Regression resultiert (Stichwort: „Ridge Regression“).
Die Vorteile der hier präsentierten Lösung sind mannigfach: Sie können die Spezifikation anpassen und neue Daten eingeben und das Modell berechnet automatisch neue Prognosewerte, inklusive Prognoseintervall. Das Anpassen eines Skripts in R oder Python entfällt. Da die Daten als Tabelle in Excel vorliegen, brauchen Sie für eine Erweiterung nur die Dimension der Tabelle anzupassen, die Formeln werden automatisch "weitergezogen". Die Prognosedaten können direkt in nachgelagerte Modelle (etwa der Unternehmensplanung) nahtlos weitergegeben und somit weiterverarbeitet werden.
There is no free lunch: Es ist zwar ungemein nützlich, dass die Automatisierung aufgrund der Referenzfunktion von Microsoft Excel so einfach umzusetzen ist, der Preis ist aber eine relativ langsame Berechnungsgeschwindigkeit im Vergleich zu anderen Programmen, etwa R oder Python…. Dies, weil mit Änderung einer Zelle alle anderen abhängigen Zellen ebenfalls neu berechnet werden, somit auch das Prognosemodell samt Graphiken. In jeder Zelle, in welcher die Formel "fmc_BayesPredictionRegressionV" hinterlegt ist, wird eine vollständige Zeitreihenanalyse mittels Markov Chain Monte- Carlo durchgeführt, welche auch in R und Python nicht im Handumdrehen erledigt ist.
Kommentar schreiben