Mission possible: Von Excel zum R-folg

Excelbeispiel

Excelbeispiel

„Oh. Da ist ja ein harter Wert drin. Wo ist denn die Formel geblieben?“

„Kein Wunder, dass der Wert so gering ist. Die Formel schließt gar nicht alle Zellen ein…“

Verschachtelte „sverweis“-, „indirekt“- und „wenn“-Formeln über viele Zeilen. Jeder, der schon ein wenig länger mit Tabellenkalkulationen arbeitet, hat sicher schon unangenehme Überraschungen erlebt. Mit etwas Glück sind dabei keine spektakulären Schäden entstanden, wie sie von der European Spreadsheet Risks Interest Group gesammelt werden: Excel-Horrorgeschichten.

Warum werden Tabellenkalkulationen dann so häufig auch für komplexe Berechnungen genutzt? Darum:

„The easy way looks hard – the hard way looks easy.“
-Patrick Burns-

Patrick hat dazu unter der Überschrift Spreadsheet Addiction ein paar interessante Gedanken aufgeschrieben.

Zentraler Grund für die weite Verbreitung von Tabellenkalkulationen ist seiner Einschätzung nach die durch den Nutzer wahrgenommene Nützlichkeit und die wahrgenommene Einfachheit – nicht immer korrespondiert jedoch die Wahrnehmung mit der Realität.

Nachfolgend einmal kurz zusammengefasst einige zentrale Punkte, die zur Fehleranfälligkeit von Tabellenkalkulationen führen. Einige der Punkte können gleichzeitig auch als Stärke interpretiert werden.

  • Fehlende Unterscheidbarkeit von Formel und Wert
  • Intransparente Zuweisung von von Datentypen (bspw. Zahl als Text und umgekehrt)
  • (Zu) einfache Datenstruktur
  • Fehlende Befehlshistorie bzw. schwierige Nachvollziehbarbeit von verschachtelten Formeln
  • Tendenz, mit der Zeit immer komplexer zu werden

Zusammenfassend ist festzuhalten: Tabellenkalkulationen sind das richtige Werkzeug für einfache Problemstellungen mit einfachen Daten. Sobald Daten und Problemstellung nicht mehr völlig trivial sind, steigt der Aufwand zur Sicherstellung einer angemessenen Ergebnisqualität deutlich an – möglicherweise lohnt es sich dann, über Alternativen nachzudenken.

Hier mal ein paar Anregungen für erste Schritte:

Für den Nagel den Hammer, für das Rohr den Lötkolben, für Datenanalyse R – immer das richtige Werkzeug im Werkzeugkasten.

Validierung der Langzeithistorie der Jahresausfallraten nach SolvV

07 Alles zusammenNachdem die Regelungen von Basel II jetzt einige Jahre im Einsatz sind, stellt sich mit der zunehmenden Datenhistorie die Frage, wie die Qualität der Prognosen gegen die Langzeitdurchschnitte zu validieren ist. Zum Thema der „Langzeithistorie der Jahresausfallraten“ mache ich hier mal einen Diskussionsvorschlag. Weiterlesen

Visualisierung von Kreditportfoliomodell-Ergebnissen mit R und ggplot2

Eigenmittelquote im Zeitablauf

Eigenmittelquote im Zeitablauf


Neben der verlässlichen Berechnung von Risikowerten kommt der Visualisierung der Ergebnisse eine entscheidende Bedeutung zu, wenn die richtigen Steuerungsimpulse gesetzt werden sollen. Hierzu bietet R eine Unzahl von Möglichkeiten. Ich bin vor einigen Tagen hier auf einen Artikel zu ggplot2 gestoßen und musste das direkt selbst ausprobieren (bitte tapfer durchhalten, der Graph kommt ganz unten…): Weiterlesen

Warp 7 für Kreditportfolio-Simulationen mit mclapply und Amazon EC2: Energie!

Stabilitätsanalyse

Stabilitätsanalyse

Gut. Ich muss mich dem stellen. Ich bin ein Nerd. Und ich werde es ausleben:

Den Code meiner Simulationsanwendung habe ich jetzt für die Anwendung der Funktion mclapply aus dem Package Multicore angepasst, jetzt gilt es den Effekt der Parallelisierung auszuprobieren.

Lokale Simulation sequentiell:
1,15 Sekunden pro Lauf → etwa 190 Minuten für 10.000 Simulationen (eine Periode)

Lokale Simulation parallel:
0,35 Sekunden pro Lauf → etwa 60 Minuten für 10.000 Simulationen (eine Periode)

Amazon Cloud:
0,15 Sekunden pro Lauf → etwa 25 Minuten für 10.0000 Simulationen (eine Periode)

Bei Amazon habe ich dafür die High-Memory Quadruple Extra Large (Vierfach XL) Instance benutzt:

68,4 GB Speicher
26 EC2 Compute Units (8 virtuelle Kerne mit je 3,25 EC2 Recheneinheiten)
1.690 GB Instance-Speicher
64-Bit-Plattform
E/A-Leistung: Hoch
Als EBS-optimiert verfügbar: 1000 Mbps
API-Name: m2.4xlarge

Für diese Instanz berechnet Amazon laut Preisliste 1,80$ pro Stunde, als Spot Instance habe ich 0,18$ gezahlt. Eine stabile Berechnung würde damit dann etwa 0,075$ kosten.

Die nächste Stufe wäre dann die Bündelung mehrerer Instanzen über Hadoop

Capital at Risk: Features des erweiterten Kreditportfoliomodells

Ergebnisse Capital at Risk

Migrationsmatrizen und Ergebnisausgabe

Vor einiger Zeit hatte ich ja hier und hier die Grundideen meines privaten Kreditportfoliomodell-Spielplatzes vorgestellt. Unten sind die bereits umgesetzten Funktionen des Modells aufgeführt, danach die Ideen, die ich gern noch einbauen möchte. Vielleicht hat ja noch jemand interessante Anregungen – ich freue mich über jeden Kommentar. Weiterlesen

R-Project: list in array umwandeln

Dieser Artikel beschreibt, wie man aus einer Liste von Arrays mit der Software R einen zusammenfassenden Ergebnisarray erzeugt. Gestoßen bin ich auf diese Herausforderung, weil die Funktion mclapply aus dem Package multicore das Ergebnis in Form einer Liste zurückgibt. Für die effiziente Weiterverarbeitung benötige ich jedoch den einen mehrdimensionales Array, also muss ich die Liste umwandeln:

Das Beispiel betrachtet insgesamt 4 Simulationsläufe, Weiterlesen

Amazon EC2 – Schritt für Schritt zum RStudio Server in der Cloud

Langsam stoße ich mit den Code-Optimierungen in R für mein Simulationsmodell an die Grenzen der lokalen Hardware. Um halbwegs verlässliche Werte zu erzeugen, sind Rechenzeiten von etwa 15 Stunden zu erwarten. Es wird also Zeit sich mit den Möglichkeiten des Cloud-Computing zu beschäftigen. Zu Beginn habe ich mich so wie hier beschrieben für die Amazon Web Services registiert.

Die nächste Herausforderung ist dann, eine eigene Instanz zu starten und den RStudio Server zu starten. Folgende Schritte sind notwendig: Weiterlesen