Blogreihe: Data Science mit SAP
Jared Hirschner | Juni 18, 2024 | 7 min

SAP Analytics Cloud: Programmiersprache R

In den letzten Blogbeiträgen haben wir Prognoseszenarien und anderweitig bereitgestellte Vorhersageverfahren der SAP Analytics Cloud behandelt, wie etwa die lineare Regression, die exponentielle Glättung und die automatische Prognose.

Die SAP Analytics Cloud (SAC) eröffnet aber nicht nur mit ihren Prognoseszenarien und den sonstigen Vorhersageverfahren statistische Chancen, sondern gerade auch durch die eingebettete Programmiersprache R. Dies gilt sowohl hinsichtlich komplexerer grafischer Darstellungen als auch im Hinblick auf die Verwendung von fortgeschrittenen Modellen zur Vorhersage von beispielsweise Risikokennzahlen.

Programmiersprache R

Bevor spezifische Aspekte der Programmiersprache R hervorgehoben werden, sollen jedoch nochmals wesentliche Begriffe umrissen werden, mit Hilfe derer sich drei typische Aufgaben der Data Science gruppieren lassen:

Regression: Bei diesem als Klasse aufgefassten Begriff steht die Erklärung einer Zielgrösse im Fokus, die sich als Zahlenwert ausdrücken lässt. Denken Sie beispielsweise an die 0.42 als Vertreter der reellen Zahlen, der eine Aktienrendite ausdrücken kann. Bezüglich dieser wäre sodann der Versuch denkbar, diese zu erklärende Variable durch Merkmale wie den Zins zu modellieren.

Zeitreihenprognose: Mit den Schweizer Fallzahlen des Coronavirus aus den vorherigen Blogbeiträgen ist Ihnen bereits ein Beispiel für die Aufgabenstellung bekannt, den Verlauf einer Zielgrösse über die Zeit zu erklären.

Klassifikation: Hierbei geht es darum, kategoriale Daten zu klassifizieren. Beispielsweise kann anhand verschiedener medizinischer Merkmale eingeordnet werden, um welche Zellen es sich bei einer betrachteten Gewebsprobe handelt. Kategorien werden meistens durch Wörter ausgedrückt.

Alle drei Fragestellungen können mittels eines geeigneten SAC-Prognoseszenarios angegangen werden. Zusätzlich sind – wie schon dargelegt – z. B. auch mittels der drei Verfahren der SAC-Zeitreihengrafik Vorhersagen möglich, die rein auf vergangenen Zeitreihendaten basieren. In der Regel sind mit den gegebenen Optionen somit bereits zahlreiche Anforderungen realisierbar. Aufgrund der oben erwähnten Faktoren weisen diese Standardverfahren verschiedene Vorteile für den Endnutzer auf. Dies gilt besonders hinsichtlich der Wartung. Dennoch kann sich bei einer Aufgabenstellung ein Kosten-Nutzenverhältnis ergeben, das individuelle Implementierungen rechtfertigt oder gar erfordert.

Hierbei ist R als eingebettete Programmiersprache besonders interessant, da sie fortgeschrittene statistische Verfahren und grafische Analysen ermöglicht. So sind prinzipiell alle oben genannten Aufgabenstellung abgedeckt. Jedoch besteht zusätzlich eine grössere Vielfalt und Flexibilität was einzelne Modelle und Darstellungen betrifft. Dabei kann R nicht nur in der SAC beziehungsweise in ihrer technischen Umgebung, sondern auch auf eigenen Servern seine Arbeit verrichten. Zur Übung und für umgrenzte Fragestellungen kann ebenfalls der persönliche Computer eingesetzt werden. Bei entsprechend vorhandener Hardware sind ferner Grafikkarten für Berechnungen nutzbar. Dies beschleunigt die Laufzeit gerade bei neuronalen Netzen.

Ganz allgemein kann R vor allem zwei Erweiterungen leisten, die ansonsten nicht erreichbar sind: zusätzliche grafische Darstellungen sowie mathematische Modellierungen. Nachfolgend finden sich verschiedene Beispiele, welche diese Möglichkeiten verdeutlichen sollen. Hierbei wird zunächst mit einer weiterführenden Zeitreihenanalyse begonnen.

Saisonalitäten der eigenen Produktion erkennen

Zahlreiche Unternehmen unterliegen dem Einfluss von zyklischen Mustern. Klassische Beispiele hierfür sind absetzbare Verkaufsmengen und die von ihnen abhängige Produktion sowie auch der Bedarf an Roh-, Hilfs- und Betriebsstoffen. So setzt ein Eisverkäufer im Sommer in aller Regel mehr Eis als im Winter ab. Sicherlich hat er ein gutes Gespür dafür, was er wann in welcher Menge produzieren kann und soll. Besondere Modelle können ihm aber helfen, dieses Gefühl zu validieren und präzise auszudrücken. Hilfreich sind dabei wiederum die Möglichkeiten der SAP Analytics Cloud in Verbindung mit der Programmsprache R.

Eingangs sei vor diesem Hintergrund ein konkretes Beispiel, das auf echten Daten basiert, betrachtet: die australische quartalsweise Bierproduktion in Millionen Litern von 1956 bis 1972. Intuitiv macht hierbei ein schwankender Verlauf über die verschiedenen Jahreszeiten Sinn. Aber lässt sich dieser auch quantifizieren? Unter Betrachtung der Zeitreihengrafik der SAP Analytics Cloud wird tatsächlich eine rhythmische Entwicklung der Produktion erkennbar.

Der zyklische Verlauf der Produktion ist also bereits in der abgebildeten Standardgrafik relativ gut erkennbar. Weitere Analysen werden zudem durch die Verwendung der Programmiersprache R ermöglicht, die in einer SAC-Abbildung in Form eines ausführbaren Skripts Anwendung findet. Mit ihr könnte ein nächster Schritt in der Zerlegung der Zeitreihe in einzelne Komponenten bestehen.

Bemerkenswert ist hierbei wiederum, dass Informationen aus der Vergangenheit wertvolle Rückschlüsse auf Muster liefern, die auch in Zukunft auftreten können. Im betrachteten Fall ist konkret erkennbar, dass immer mehr Bier über die beobachtete Zeit produziert wurde und vor allem, dass diese Produktion für die verschiedenen Quartale allgemein recht ähnlich schwankt. Den Anstieg der Produktion bezeichnet man wiederum als steigenden Trend, die regelmässigen Schwankungen als Saisonalität. Beide erkennt man hier in ihrer grundsätzlichen Wirkung als Blickdiagnose. Der letzte Teil der Abbildung beschreibt jenen gewissermassen zufälligen Einfluss, der nicht mit dem Trend oder saisonalen Einfluss des Modells erklärbar ist.

Diese Analyse wäre jedoch auch noch mit dem Prognoseszenario der SAC möglich gewesen. Allerdings ist unter Verwendung von R eine wesentlich grössere Breite und Tiefe an Modellierungen realisierbar. So ist es denkbar, die einzelnen Jahre des vorgestellten Szenarios in einem sogenannten Polardiagramm abzubilden. Durch dieses wird sowohl ersichtlich, welche quartalsweisen Schwankungen vorhanden sind, als auch wie sich die Gesamtmenge der Produktion allgemein entwickelt hat. Beides ist somit wiederum auf einen Blick erkennbar. Gerade um diesen schnellen und exakten Erkenntnisgewinn geht es bei der grafischen Aufbereitung von Daten. Angemerkt sei allerdings, dass diese Informationen kein Selbstzweck an sich sind, sondern vielmehr dazu dienen, Entscheidungen zu ermöglichen und zu verbessern. Die allgemein immer breiter werdenden Verläufe der folgenden Abbildung verweisen jedenfalls zusammen mit den eingefärbten Jahren auf eine zunehmende Produktion. Der zumeist grössere Ausschlag nach links zeigt, dass im vierten Quartal besonders viel Bier produziert wurde.

Die Daten sind somit die gleichen wie zuvor dargestellt, aber unterschiedlich grafisch betont aufbereitet. Je nach Anwendungsfall oder Fragestellung würde die passendste Abbildung gewählt werden.

Analyse von Kursrenditen: Bitcoin und Kupfer

Ein weiteres Beispiel für eine individuelle Grafik unter Verwendung von R ist mit der folgenden Abbildung gegeben. Sie stellt die logarithmierten Bitcoin-Kursrenditen geordnet dar. Hierbei ist mit der roten Linie diejenige Rendite (ca. -0.0621) angezeigt, die in den betrachteten fünf Jahren in unter fünf Prozent der Fälle unterschritten wurde. Weiterhin wird anhand der Position der blauen (Median-)Markierung erkennbar, dass über die Hälfte aller betrachteten Renditen positiv ausfiel. Dies ist durch die Lage der Linie rechts der Null ersichtlich.

Diese Betrachtung ist nicht nur auf Kryptowährungen beschränkt, sie kann vielmehr auch für verschiedenste andere Assetklassen wie etwa Rohstoffe erfolgen.

Rendite versus Volatilität

Die Vorhersage der Wertentwicklung von Vermögenswerten wie etwa Aktien ist von erheblichem wissenschaftlichem und wirtschaftlichem Interesse. Und dennoch stehen derartige Bemühungen noch immer vor grossen Herausforderungen. Trotz aller Schwierigkeiten der Prognosebemühungen in Bezug auf Renditen, konnte gerade im Umgang mit Wertschwankungen und Risiken ein grosser Zuwachs an statistischen Modellen und Möglichkeiten des Risikomanagement gewonnen werden. Sowohl in der Forschung als auch in der täglichen Praxis ermöglicht R hierbei wiederum häufig die Formulierung und Anwendung von finanzmathematischen Modellen.

Eine nennenswerte Erkenntnis besteht dabei in der empirischen Feststellung, dass Renditen auf Basis ihrer vergangenen Ausprägungen nur schwer vorhersagbar sind. Beispielhaft seien hierzu die in der Abbildung logarithmierten Tagesrenditen des Kupferpreises betrachtet.

Ein eher zufälliger erster Eindruck wird ferner besonders unter dem Aspekt der reinen Zeitreihenanalyse unter Verwendung von sogenannten (partiellen) Autokorrelationsgrafiken verstärkt, die ebenfalls mit R angefertigt werden können. Diese stellen die statistische Beziehung der Renditen zu sich selbst beziehungsweise zu ihren vergangenen Ausprägungen dar.

Demgegenüber stehen die Schwankungen der Renditen jedoch in einem wesentlich stärkeren zeitlichen Zusammenhang zu sich selbst, was auch bereits der partielle Autokorrelationsplot der quadrierten Renditen zeigt.

Dieser Zusammenhang kann in R-Programmen schliesslich in sogenannten Generalized Auto Regressive Conditional Heteroscedasticity (GARCH)-Modellen genutzt werden, um zukünftige Schwankungen vorherzusagen.

Optionspreismodelle

Soll mehr Sicherheit über die Auswirkung von Kursschwankungen erzielt werden, so stehen dem heutigen Risikomanagement trotz der beschriebenen Herausforderungen konkrete Massnahmen zur Verfügung, wie beispielsweise die derivative Absicherung mittels eines Optionsscheins. Derivate sind vereinfacht ausgedrückt Finanzinstrumente, deren Wert(-entwicklung) von einem anderen zugrundeliegenden Vermögenswert (dem «Underlying») abhängt. Wiederum kann R auch bei der Modellierung von Optionsscheinpreisen unterstützten. Zur Veranschaulichung findet sich nachfolgend ein Beispiel, das einem Put-Optionsschein (welcher hier exemplarisch das Recht verkörpert, einen Aktienverkauf zu einem bestimmten Preis durchzuführen) die Kursentwicklung eines zufällig ausgewählten Aktienkurses gegenüberstellt.

Statistische Eigenentwicklungen

Neben der Realisierung von fortgeschrittenen Grafiken kann der Einsatz von R also insbesondere auch erweiterte Modellierungen ermöglichen. Und tatsächlich konnte in einem Experiment zur Prognose der schon vorgestellten Schweizer Fallzahlen des Coronavirus eine verbesserte Vorhersagegüte als mit dem oben beschriebenen Prognoseszenario erreicht werden. Grundlage war wiederum lediglich die vorgestellte Zeitreihe. Verwendung fand diesmal allerdings ein anderes Modell in Form eines autoregressiven neuronalen Netzwerks. Es zeigte einen Vorteil im Sinne einer durchschnittlich geringeren absoluten Abweichung der Prognosen vom jeweiligen Istwert in Höhe von circa 1.2 Prozent. Dieser Gewinn kann mit komplexeren Modellen möglicherweise noch übertroffen werden.

Dabei ist abschliessend jedoch zu betonen, dass auch die Laufzeit einen entscheidenden Einfluss auf die zu wählende Architektur einer Lösung nimmt. Denn komplexe Verfahren können zu erhöhten Laufzeiten führen. In diesen Fällen muss im Sinne des übergeordneten Lösungsentwurfs geprüft werden, ob die Anbindung eines eigenen R-Servers an die SAP Analytics Cloud oder sogar die Nutzung alternativer Möglichkeiten, beispielsweise anderer BTP-Lösungen zu präferieren ist. Weiterhin ist in der SAP Analytics Cloud als Ergebnis der R-Nutzung momentan eine Grafik vorgesehen. Daher können Daten nicht ohne Weiteres beispielsweise in tabellarischer Form weiterverwendet werden. Auch dieser Aspekt verweist darauf, dass die Programmiersprache immer in einem grösseren Kontext betrachtet werden sollte. Unterschiedliche Lösungen erfüllen teils unterschiedliche Zwecke.

In jedem Fall wird durch die Einbettung von R grosses Potenzial geschaffen.

R Packages

R Packages stellen vielfach verwendete Funktionalitäten zur Verfügung, die ansonsten ausprogrammiert werden müssten. Hierbei ist anzumerken, dass die je zugrundeliegende algorithmische Komplexität oft sehr vorteilig gestaltet ist. In Bezug auf den Kontext der SAP Analytics Cloud kann es unter Verwendung der Standardumgebung dennoch zu längeren Laufzeiten kommen. Auch die begrenzte Auswahl von R Packages kann eine Einschränkung darstellen. Dies trifft insbesondere auf Packages der Finanzmathematik zu. Bei entsprechender Kenntnis können jedoch Algorithmen selbst ausprogrammiert werden, sofern die SAC-Laufzeit dies zulässt. R lässt sich ferner insbesondere auch im Kontext der SAP HANA-Technologie nutzen, wobei Laufzeitvorteile und mehr Flexibilität bezüglich der Installation von R Packages möglich sind.

Bevor der Fokus daher im nächsten Blogbeitrag auf dem Machine Learning mit SAP HANA liegt, sei an dieser Stelle noch anhand der folgenden Grafik die lokale SAP HANA-Einbettung der Programmiersprache R auf Ebene des zentralen Index Servers skizziert:

Blogreihe: Data Science mit SAP

Jared Hirschner

Ich helfe Ihnen gerne weiter

Sind Sie auf der Suche nach Antworten oder möchten Sie mehr Informationen über das Thema erhalten? Nehmen Sie noch heute Kontakt mit uns auf und lassen Sie uns besprechen, wo Ihre Probleme liegen, was Sie erreichen wollen und wie wir Ihnen dabei helfen können.

Jared Hirschner

Expert Consultant / Data Scientist

Lesen Sie die Blogbeiträge unserer Expert:innen

Blogreihe: Data Science mit SAP