Seminar: Warum wir falsch liegen und trotzdem weitermachen - Aktuelle Themen in Banken und Versicherungen 16.07.2010 Statistische Software von Martin Dörr Betreuer: Sebastian Kaiser
Gliederung 1 Motivation 2 Statistikwerkzeuge 3 Ökonometrie-Funktionen 4 Leistungsoptimierung 5 Zusammenfassung 6 Links
Motivation für Softwarelösungen viele Probleme analytisch nicht lösbar numerische Lösungen extrem rechenaufwendig viele Wiederholungen des gleichen Problems riesige Datenmengen graphische Ausgabe der Ergebnisse
Statistikwerkzeuge PASW (SPSS) SAS Matlab R MS Excel weitere Software
Geschichte von PASW (SPSS) 1968 Gründung von SPSS Inc. an der Stanford University von Nie, Hull und Bent 1968 Veröffentlichung der Statistik-Software SPSS 1983 erste PC-Version 2009 IBM übernimmt SPSS Inc. 2010 SPSS Statistics heißt nun PASW (Predictive Analysis SoftWare)
Struktur von PASW (SPSS) modular aufgebautes Programmpaket Basismodul für Datenmangement und gängigste statistische Verfahren Dateneditor Syntaxeditor Ausgabenavigator Skripteditor Zusatzmodule für spezielle Anwendungen Forecasting Statistics Developer...
Struktur von PASW (SPSS)
Vorteile von PASW (SPSS) + weltweit das am meisten verbreitete Statistikprogramm + vollständige graphische Benutzeroberfläche (GUI) + eigener und sehr guter Dateneditor + publikumsreife Ausgabe von Graphiken und Analyseergebnissen + automatische Erstellung von Befehlssyntax + umfassende Software-Hilfe bzw. Literatur + Schnittstelle zu R und Python + läuft in schnellem Maschinencode
Nachteile von PASW (SPSS) - kommerzielles Programm, jährliche Lizenzgebühren - Black-Box - jüngere statistische Methoden fehlen - enthält wenig (exotische) statistische Verfahren - Programmierung mit Befehlssyntax und Automatisierungen umständlich - kaum Schnittstellen zu anderer Software - läuft nur unter MS-Windows
Geschichte von SAS Anfang 1970er Entwicklung der Software an der NC State University von Goodnight und Sall 1976 Gründung des SAS Institute 2004 Aufbau der Intelligence Platform
Struktur von SAS/STAT Windowing Environment Explorer Log-Fenster Programmeditor Ausgabefenster Befehlssyntax DATA Step PROC Step Datenbank-Engine Transaktionen finden auf Tabellenebene statt Konzept der Historisierung Bündelung von Tabellen in Libraries
Struktur von SAS/STAT
Vorteile von SAS + leistungsfähigste Datenbankanbindung + weit verbreitetes Statistikprogramm + betriebssystemunabhängig und -übergreifend + läuft in schnellem Maschinencode + umfassende Software-Hilfe bzw. Literatur + Schnittstelle zu R und anderen Datenbanksystemen + ermöglicht komplexe Informationsgewinnungsprozesse in heterogenen IT-Infrastrukturen + geringe Anforderungen an Arbeitsspeicher
Nachteile von SAS - teures kommerzielles Programm, jährliche Lizenzgebühren - Black-Box - jüngere statistische Methoden fehlen - keine graphische Benutzeroberfläche (GUI) - hohe Anforderungen an Festplattenleistung
Geschichte von Matlab Ende 1970er Entwicklung der Software an der New Mexico University von Moler 1984 Gründung von MathWorks durch Moler, Little und Bangert http://www.matlab.rwth-aachen.de/index.php?id=799
Struktur von Matlab Entwicklungssystem für die Programiersprache MATLAB bietet Konzepte der objektorientierten Programmierung an Laufzeitinterpreter vektorbasierte Sprache, auf numerische Berechnungen ausgelegt Bündelung von Funktionen in Toolboxes Arbeitsspeicheraufteilung in 8-Byte-Blöcke
Vorteile von Matlab + flexibles Werkzeug für Automatisierungen, wiederholende Abläufe oder eigene Funktionen + weit verbreitetes Programm + plattformunabhängig + Operationen auf Matrizen oder Vektoren fast so schnell wie Compilersprachen + mannigfaltige Schnittstellen zu anderen Programmiersprachen (C, C++, FORTRAN) Datenbanksystemen + Grafische Ausgabefunktionen enthalten Animationen und interaktive Bedienelemente + umfassende Software-Hilfe bzw. Literatur + Support durch viele Freiwillige, z.b. in Foren
Nachteile von Matlab - kommerzielles Programm, jährliche Lizenzgebühren - Black-Box - Laufzeitinterpreter, sehr langsam z.b. bei Schleifen - jüngere statistische Methoden fehlen - keine graphische Benutzeroberfläche (GUI) - hohe Anforderungen an Arbeitsspeicherkapazität
Geschichte von R 1976 S wird an den Bell Laboratories von AT&T entwickelt 1992 Beginn des R-Projects. 1993 erste Binärversion auf Statlib 1997 R Development Core Team wird gegründet 2000 R-1.0.0 wird veröffentlicht, die erste vollständig kompatible Version zur Sprache S der Version 3. 2001 Die Zeitschrift R News wird erstmalig herausgegeben. 2004 Die erste R Anwenderkonferenz user! wird abgehalten.
Struktur von R rein objektorientierte Programmiersprache Laufzeitinterpreter vektorbasierte Sprache, auf numerische Berechnungen ausgelegt Bündelung von Funktionen in Paketen Arbeitsspeicher wird durch environments organisiert Arbeitsspeicheraufteilung in 8-Byte-Blöcke
Struktur von R
Vorteile von R + flexibles Werkzeug für Automatisierungen, wiederholende Abläufe oder eigene Funktionen + Open-Source-Software, sämtlicher Quellcode einsehbar + kostenlos beziehbar unter www.r-project.org + Operationen auf Matrizen oder Vektoren fast so schnell wie Compilersprachen + plattformunabhängig + liegt am Puls der Forschung + großer Pool an Paketen (Stand 02.07.2010: 2449) + mannigfaltige Schnittstellen zu anderen Programmiersprachen (C, C++, FORTRAN) Datenbanksystemen (Paket RODBC) Graphiktools (Paket RGtk2, ggobi)
Vorteile von R + umfassende Software-Literatur + Support durch viele Freiwillige, z.b. Mailinglisten R-help und R-devel + schnelle Korrektur von fehlerhaften Programmsequenzen + Suchmaschine für Funktionen und Pakete http://finzi/psych.upenn.edu/search.html http://cran.r-project.org/search.html RSiteSearch() in R
Nachteile von R - Laufzeitinterpreter, sehr langsam z.b. bei Schleifen - hohe Anforderungen an Arbeitsspeicherkapazität - keine Benutzeroberfläche (Rcmdr für elementarste Auswertungen) - kein eigener Dateneditor - Graphikausgabe erzeugt weder dynamische interaktive verknüpfte Graphiken
Geschichte von MS Excel 1982 Spreadsheet-Programm Multiplan wird vermarktet 1987 erste MS Excel-Version (2.05) für Windows (unter MS DOS) 1993 Trademark-Gerichtsstreit
Struktur von MS Excel Spreadsheet-Programm Tabellenkalkulation Graphik-Erstellung Pivot-Tabellen Macro-Sprache Visual Basic for Applications (VBA)
Struktur von MS Excel
Vorteile von MS Excel + weltweit das am meisten verbreitete Tabellenkalkulationsprogramm + vollständige graphische Benutzeroberfläche (GUI) + eigener und sehr guter Dateneditor + publikumsreife Ausgabe von Graphiken + umfassende Software-Literatur + dynamische Graphiken
Nachteile von MS Excel - kommerzielles Programm - Black-Box - viele statistische Methoden fehlen - Matrizenrechnung nur über VBA möglich - kaum Schnittstellen zu anderer Software - schlechte Software-Hilfe - historisierendes Menüsystem in MS Excel 2007 - irreführende Statistikfunktionen - begrenzter Datumsbereich - schlechte Rechengenauigkeit - enge Verknüpfung von Daten, Rechenwegen und Ergebnissen - Spreadsheet-Dimension: 65536 Zeilen x 256 Spalten
weitere Software im Überblick EViews gretl Limdep RATS JMulti RiskLink-ALM allgemeine ökonometrische und statistische Analyse Zeitreihenanalyse Ausgabe von Graphen und Tabellen Daten-Organisation inkl. Datenbankzugriffe Regression allgemeine ökonometrische Analyse Zeitreihenanalyse Regression allgemeine ökonometrische Analyse Zeitreihenanalyse Paneldatenanalyse Regression Zeitreihenanalyse Zeitreihenanalyse Schadensmodellierung von Katastrophen
Ökonometrie-Funktionen Vorstellung Software-Pakete von Matlab und R synonyme Funktionen
Matlab Financial Toolbox Berechnung und Analyse von Prices, Yields und Sensitivities für Derivate und anderer Wertpapiere, und für Portfolios von Wertpapieren Ausführen von Securities Industry Association (SIA) kompatiblem Fixed-Income Pricing, Yield und Sensitivity Analyse Portfolios analysieren und verwalten Hedging-Strategien gestalten und bewerten Risiko erkennen, messen und kontrollieren Analyse und Berechnung von Cash Flows, einschließlich Rates of Return und Depreciation Streams Analyse und Vorhersage von ökonomischer Aktivität Visualisierung und Analyse von finanziellen Zeitreihendaten Gestaltung von strukturierten Finanzinstrumenten, einschließlich Auslandswährungs-Instrumenten
Matlab Financial Derivatives Toolbox Bonds Bond Options Caps Fixed-Rate Notes Floating-Rate Notes Floors Swaps Swaption Callable und Puttable Bonds Options (Asian, Barrier, Compound, Lookback und Vanilla stock)
R Pakete Rmetrics foptions, fexoticoptions, fasianoptions, fassets, fbonds, fportfolio, fregression, fextremes, timeseries...
synonyme Funktionen Black-Scholar-Modell Matlab R SAS (Financial Toolbox) (foptions) (?) blsprice GBSOption BLKSHCLPRC BLKSHPTPRC blsgamma GBSGreeks blsdelta blslambda blsrho blstheta blsvega GBSCharacteristics
synonyme Funktionen Heston-Nandi-Garch-Modell Matlab (Financial Toolbox) ugarch ugarchsim R (foptions, fexoticoptions) HNGOption HNGGreeks HNGCharacteristics hngarchfit hngarchsim
synonyme Funktionen exotische Optionen Matlab (Financial (Derivatives Toolbox) barrierbycrr barrierbyeqp barrierbyitt R (fexoticoptions) StandardBarrierOption ForwardStartOption
Leistungsoptimierung Motivation SAS Matlab und R MS Excel
Motivation für Leistungsoptimierung Hardware-Tuning teuer effizientere Programme führen zu der Möglichkeit, aufwendige Berechnungen überhaupt erst durchzuführen schnelleren Ergebnissen detailgetreueren Modellen
Leistungsoptimierung in SAS Ressourcenkontrolle mit FullSTimer und SASTrace SAS-Systemoptionen, z.b. CPUCount, MemSize SAS Option COMPRESS=CHAR bei großen Dateien mit vielen CHAR-Variablen einschalten SAS Option NOSORTEQUALS bei Sortieren von Daten mit PROC SORT einschalten Datei mit SASFILE in den Hauptspeicher laden Views statt Zwischentabellen Hash-Tabellen fürs gleichzeitige Nachschlagen von mehreren Informationen in verschiedenen Tabellen innerhalb eines DATA STEP verwenden... Vorschläge können, müssen jedoch nicht zu schnelleren Programmlaufzeiten führen!
Leistungsoptimierung in Matlab und R Laufzeitmessung mit tic und toc oder Profiling (Matab) und system.time() (R) Schleifen durch Vektoroperationen erstetzen (R und Matlab) Verwendung geeigneter logischer Operatoren (R und Matlab) parallele Programmierung (R und Matlab) Code in C und FORTRAN programmieren (R und Matlab).Last.value löschen (R) Speicherplatz für Variablen reservieren (R und Matlab) Variablentyp beibehalten (R und Matlab) Schleifen statt rekursive Funktionen (R und Matlab)...
Leistungsoptimierung in MS Excel Beispiel Solver
Anmerkung zur Leistungsoptimierung Beachte: Code, der ungenaue oder sogar falsche Ergebnisse liefert, ist unbrauchbar, egal wie schnell er ist!
Zusammenfassung PASW Wegen eigenen Dateneditor und leichter Bedienung gut geeignet für Einsteiger und kleinere Standardanalysen. SAS Wegen leistungsstarker Datenbank-Engine sehr geeignet für die Auswertung riesiger Datenmengen, die zudem von unterschiedlichen Systemen erstellt wurden. Matlab und R Wegen ihrer hohen Flexibilität als Programmiersprachen geeignet für selbstkonzipierte, rechenintensive Verfahren wie z.b. Simulationen. MS Excel Wegen seiner Schlichtheit eher für einfache Berechnungen und Überschlagsrechnungen geeignet.
Links PASW SAS Matlab R sonstige www.spss.com/de/statistics/ www.sas.de www.mathworks.de www.r-project.org www.rmetrics.org http://finzi/psych.upenn.edu/search.html /[R-Ordner]/doc/manual de.wikipedia.org/wiki/liste_von_statistik-software