Zeitreihenanalyse der Energiekosten an den Ladesäulen mithilfe von R und SAP Analytics Cloud

Für die Elektrofahrzeuge unserer Firmenwagenflotte sammeln wir bereits über einen längeren Zeitraum die Informationen zu den Ladevorgängen.

Wir wollen nun mittels Zeitreihenanalyse die durchschnittlichen monatlichen Energiekosten pro kWh an den Ladesäulen exemplarisch für bestimmte Anbieter analysieren.

Datenbestand

Die Daten für die Analyse wurden aus unserem SAP HANA System exportiert. 

Die Datentabelle enthält 774 Datensätze mit Ladevorgängen zwischen 11.05.2019 und 01.02.2023.

Die Zeitreihe ist somit eine Erfassung der Ladevorgänge auf der täglichen Basis, allerdings nicht regulär und es sind Erfassungslücken vorhanden.

Des Weiteren müssen die Daten entsprechend für die anschließende Analyse gesäubert und vorbereitet werden.


Endgültige Datenmatrix für die Analyse

Wir haben uns entschieden, die zwei größte Anbieter aus der Anbieterliste auszuwählen und diese in Bezug auf die Dynamik der Preisentwicklung zu analysieren.

Des Weiteren werden wir uns die Daten auf der Monatsbasis aggregieren (wegen Zeitlücken) und auf diese Weise die durchschnittliche monatliche Preisentwicklung (durchschnittliche Brutto-Kosten pro kWh pro Monat pro jeweiligen Anbieter) betrachten.

Allerdings gibt uns auch diese Aggregation auf der Monatsbasis nicht für jeden vorhandenen Monat die Daten für die zwei größten Anbieter "Ladeverbund+" und "Ionity".

In diesem Zusammenhang wurde entschieden, nur die Daten zu berücksichtigen, die ab dem August 2021 bis zum letzten vorhandenen Monat vorhanden sind.

Für diese Zeitspanne sind genügend Erfassungen für die beiden Anbieter vorhanden.

Im Endeffekt sieht die endgültige Datenmatrix für die anstehende Zeitreihenanalyse folgendermaßen aus:

Die Spalte CI_GROSSCOST_PER_KWH gibt für den jeweiligen Anbieter ("Ladeverbund+" und "Ionity") den durchschnittlichen monatlichen Bruttopreis in EUR pro Kilowattstunde an.

Datenauswertung

Die vorläufige Gegenüberstellung und das Zeichnen der beiden Zeitreihen für den jeweiligen Anbieter

Die Grafik der beiden Zeitreihen sieht folgendermaßen aus:

Sofort ist zu erkennen, dass das allgemeine Level des jeweiligen Preises beim Anbieter „Ladeverbund+“ höher liegt, als beim Anbieter „Ionity“.

Bei „Ionity“ ist der Preisniveau-Absturz vom Sept. 2021 auf Okt. 2021 zu erkennen, was auf eine Tarifanpassung zurückzuführen ist. Mit dem Tarif Ionity Premium haben wir einen festen Preis von 0,29 EUR pro kWh.


Analyse der Zeitreihe für den Anbieter „Ionity“

Mal angenommen, dass wir über die Existenz eines festen Tarifs nichts wissen...

Für diesen Anbieter ist die s.g. naive Vorhersage am plausibelsten, wenn man als Forecast für die nächste Zeitperiode einfach den Wert der letzten Zeitperiode nimmt.

Wenn man bedenkt, dass bei diesem Anbieter der durchschnittliche monatliche Bruttopreis pro Kilowattstunde seit Februar 2022 stets fast konstant bleibt (bitte s. Grafik und Tabelle oben), - wäre die naive Vorhersage die einzige rationale Wahl in dieser Situation gewesen.

Die s.g. naive Vorhersage ist übrigens auch die Vorhersage, die man hauptsächlich bei den Aktienkursen als Forecast anwendet.

In diesem Sinne ist die Vorhersage für den Anbieter „Ionity“ für die nächste Zeitperiode (Feb. 2023) nichts anderes als der tatsächlich beobachtete Wert für Jan. 2023, nämlich ca. 0,29 EUR pro kWh.


Analyse der Zeitreihe für den Anbieter „Ladeverbund+“

Bei diesem Anbieter ist es nicht alles so eindeutig wie bei „Ionity“.

Zwar ist die Zeitreihe an sich auch flach und ohne bemerkenswerte Ereignisse, dennoch ist ein geringfügiger positiver Trend (langsame Preissteigerung) in dieser Zeitreihe zu erkennen.

Aus meiner Erfahrung würde ich auf Anhieb auf ein Random Walk (zufälliges Fluktuieren) tippen, allerdings habe ich bei dieser Zeitreihe den Verdacht, dass es sich hier um den s.g. Random Walk mit Drift handelt.

Ein Random Walk mit Drift wird als AR(1) (Autoregressive Process of order 1) Prozess bezeichnet, wo die jeweils nächste Beobachtung der kompletten jeweiligen vorigen Beobachtung entspricht (theta-Koeffizient ist gleich eins) plus etwas weißes Rauchen (random noise), und dazu noch eine arbiträre additive und - in diesem Fall - positive Konstante zu dieser Konstellation hinzugefügt.

Diese arbiträre additive und positive Konstante wäre in diesem Fall der s.g. langsame Drift der Preisentwicklung tendenziell zu einem höheren durchschnittlichen Niveau, und könnte womöglich eine andere, hier nicht vorhandene latente Variable an sich darstellen, etwa die Preissteigerung für die Rohstoffe der entsprechenden Energiegewinnung.

Diese Hypothese vom Random Walk mit Drift muss noch überprüft werden. Es kann durchaus sein, dass man hier nur mit einem einfachen Random Walk zu tun hat, so dass der langsame positive Trend nur zufällig anhand sporadischer Fluktuationen entstanden sei (etwa die Preisanpassung anhand des jeweiligen zufälligen täglichen Konsums) und nicht etwa durch die kontinuierliche absichtliche Preisanpassung in Abhängigkeit von einer externen latenten Variable (etwa steigende Rohstoffpreise oder z.B.  evtl. eine kontinuierlich steigende Nachfrage).

Um die Hypothese von Random Walk mit Drift für den Anbieter „Ladeverbund+“ zu überprüfen, haben wir das zweifache exponentielle Glätten (Holt‘s exponential smoothing) auf die Zeitreihe mit dem folgenden Ergebnis angewendet:

Der Parameter alpha: 1 besagt, dass für die Vorhersage der jeweils nächsten Beobachtung stets nur jeweils der unmittelbar vorige Wert genommen wurde, so dass die Zeitreihe kein „Gedächtnis“ hat und die Ausprägungen, die weiter in der Vergangenheit liegen für die Vorhersage der zukünftigen Werte komplett ignoriert wurden (a 0.373117200).

Der Parameter beta: 0.2045453 besagt, dass für die Vorhersage der Tendenz der Steigung (b 0.001181986) hauptsächlich die Werte benutzt wurden, die nicht weit weg in die Vergangenheit gehen.

Die Auswahl für diese Parameter wurde automatisch durch den Algorithmus gemacht, nachdem der MSE (mean squared error) der jeweiligen Residuen minimiert wurde.

Der Parameter alpha: 1 ist ein klares Indiz dafür, dass man hier mit dem nicht-stationären AR(1) Prozess zu tun hat, wo der theta-Parameter gleich eins ist. Dies wäre also die Bestätigung für ein einfaches Random Walk (ohne Drift).

Allerdings ist der Parameter beta: 0.2045453 nicht gleich Null, so dass man bei dieser Zeitreihe und diesem leicht zu beobachteten Aufwärtstrend nicht von einem konstanten deterministischen Trend im Sinne der linearen Regression über die gesamte Zeitperiode hinweg sprechen kann. Dieser Trend wird stets mit jedem nächsten Wert an die jeweiligen Gegebenheiten angepasst.

Mit den anderen Worten: nicht jede Beobachtung in der Zeitreihe trägt gleichermaßen zum Aufwärtstrend bei.

Diese Erkenntnis ist noch keine direkte Bestätigung von Random Walk mit Drift, ist aber ein starkes Indiz dafür.

Die partielle Autokorrelationsfunktion zeigt eindeutig einen AR(1) Prozess mit dem signifikanten AC Lag an der ersten Position:

Und die gewöhnliche ACF zeigt ebenfalls, wie dieser leichte Trend durch alle Lags hinweg propagiert wird (zwar mit einem nicht signifikanten Ergebnis für die hinteren Lags):

Und genau diese ACF zeigt eindeutig, dass man hier mit einem nicht-stationären AR(1) Prozess zu tun hat, wenn man den Verlauf der Lags genau betrachtet.

Die Frage bleibt allerdings: ist das ein Drift im Sinne von Random Walk mit Drift, oder handelt es sich hier dann doch um einen deterministischen Trend im Sinne der einfachen linearen Regression über die vorhandene Zeitperiode?

Der Wert von beta: 0.2045453 aus dem zweifachen exponentiellen Glätten wäre ein starkes Indiz für ein Random Walk mit Drift, da der beta Koeffizient nicht gleich Null ist.

Allerdings ist das exponentielle Glätten nur ein heuristisches Verfahren, so dass man am besten noch zusätzliche Beweise aus der Inferenz-Statistik mitliefern sollte.

Unten wird der Augmented Dickey–Fuller (ADF) t-statistic test for unit root dargestellt:

Der ausgewiesene p-value weist eindeutig auf einen nicht stationären Prozess hin.

Das könnte allerdings auch der deterministische lineare Trend (lineare Regression) sein.

Demnächst folgt der Kwiatkowski-Phillips-Schmidt-Shin (KPSS) test for level or trend stationarity:

Und dieser Test liefert den nötigen Beweis, dass es sich hier tatsächlich um das Random Walk mit Drift handelt, da der KPSS Test auf den deterministischen Trend (lineare Regression über die Zeit) negativ ist.

Der Wert von beta: 0.2045453 besagt daher tatsächlich, dass man hier mit einem Random Walk mit Drift zu tun hat, und, dass man daher in der allernächsten Zukunft mit einer sequenziellen Steigung der Preise beim „Ladeverbund+“ Anbieter um durchschnittlich 0,0012 EUR pro Monat (b 0.001181986) rechnen kann.

In diesem Sinne wäre dann die Vorhersage für die nächsten vier Monate (samt 95%-Konfidenzintervall):

Analyse der „Ladeverbund+“ Zeitreihe mithilfe der SAP Analytics Cloud (SAC)

Wie die SAC das Predictive Modelling hinsichtlich der Zeitreihenanalyse macht, kann man in diesem Beitrag nachlesen: https://blogs.sap.com/2019/10/07/time-series-forecasting-in-sap-analytics-cloud-in-detail/

Dort werden sehr anschaulich sowohl die methodologische Systematik vom Forecasting selbst, als auch dessen Ausführung innerhalb der SAC Umgebung vorgestellt.

Als wir die Zeitreihe des „Ladeverbund+“ Anbieters mithilfe von SAC ausgewertet haben, hat die Automatik dort die einfache lineare Regression über die gesamte Zeitperiode hinweg als „am Optimalsten“ vorgefunden:

Demensprechend sind die Vorhersagen gewissermaßen um Einiges übertrieben und sind womöglich höher als die zukünftigen Werte, da der allgemeine lineare Trend alle Beobachtungen in der Zeitreihe gleichermaßen gewichtet und diesen prekären Umstand mit dem sich anpassenden Drift nicht berücksichtigt:

Die hervorgehobenen SAC Forecasts sind höher als die Forecasts, die mithilfe der R Programmiersprache zustande gebracht wurden (siehe oben).

Fazit

Als Letztes ist hier zu erwähnen, dass unsere Zeitreihe sehr kurz ist, d.h. es liegen einfach nicht viele historische Beobachtungen vor.

Aus diesem Grund wäre eine großzügige Validation (Cross-Validation) auf den Evaluierungs- und Test-Sets nicht wirklich möglich, da man auf diese Weise einfach zu viel Ausprägungen der Zeitreihe für das Erstellen dieser Sets verlieren würde, die man aber unter solcher Daten-Knappheit bitter nötig zur eigentlichen Modell-Bildung braucht.

Um in Situationen mit Daten-Knappheit dennoch ein optimales und einigermaßen adäquates Modell zustande zu bringen, sollte eine ausführliche explorative Analyse der Zeitreihe im Vorfeld der Modellbildung gemacht werden. In diesem Fall wäre die normative Analyse der empirischen Analyse vorzuziehen, da die ordentliche empirische Analyse (datengetriebene Cross-Validation Technik) bei der Daten-Knappheit nicht ernsthaft möglich wäre.

Die Zeitreihenanalyse ermöglicht das Vorhersagen der Werte mit einer bestimmten Sicherheit (Konfidenzintervall) für die kurze Periode in die Zukunft und nur unter Beibehaltung der selben / gleichen Rahmenbedingungen, wie man diese in den tatsächlich beobachteten historischen Werten wiederfindet.

Falls ein Schock (unvorhergesehenes Ereignis) stattfinden sollte, so sind die zuvor ermittelten Vorhersagen natürlich nichtig. 

In diesem Sinne: Viel Spaß beim Forecasting!