Dieser Beitrag ist der erste in einer kleinen Serie locker zusammenhängender Artikel rund um die Themen Datenanalyse, rechnergestützte Statistik und die exzellente universelle Statistikumgebung R.
Rückblick
Es ist noch nicht so lange her, 10 oder 15 Jahre, da reichte es für die Durchführung einer gewöhnlichen Datenanalyse, Zugriff auf eine Statistiksoftware zu haben und mit einer Textverarbeitung umgehen zu können. In der zweiten Hälfte der 90er Jahre hatten SPSS und SAS den Wechsel von den Großrechnern auf die Windows-Plattform vollzogen und sich dort gemütlich eingerichtet. Den Steuersprachen waren GUIs übergestülpt worden, was vor allem für Gelegenheitsanwender und Technophobe praktisch war, weil es sie von der Aufgabe befreite, syntaktisch korrekte Anweisungen schreiben zu müssen – nicht immer eine triviale Aufgabe, da in diesen Systemen neben eigentlich einfachen Syntaxregeln teils komplexe Einschränkungen und nicht immer intuitive Randbedingungen zu beachten sind. Mit Einführung der GUIs war damals dem Anschein nach viel gewonnen; auf jeden Fall aber war die Vertracktheit besagter Steuersprachen erfolgreich der Wahrnehmung der Anwender entzogen worden – Statistik ließ sich jetzt auf Knopfdruck betreiben. Mit der Frage, warum trotz des Computers oft immer noch so viel Zeit für kostenintensive und fehleranfällige Handarbeit nötig war, plagte man sich als Anwender nur in besonders kniffligen Fällen.
Seitdem haben verschiedene alternative Statistiklösungen die Bühne betreten und zum Teil bereits wieder verlassen. Die Platzhirsche sind nach wie vor SAS und SPSS. Beide Produkte kamen ursprünglich aus Wissenschaft und Forschung, haben aber zwischenzeitlich ihre Ausrichtung ausgedehnt und erfolgreich die Wirtschaft ins Visier genommen, was sich positiv auf ihre Lizensierungsmodelle ausgewirkt hat. SPSS hat mittlerweile den Besitzer gewechselt und kurzfristig mal PASW geheißen (im Sommer 2010 aber, wohl infolge verzögert durchsetzender Erkenntnis, doch wieder den ursprünglichen Namen angenommen).
Was sich seit damals aber vor allem geändert hat, sind die Anforderungen an die rechnergestützte Statistik. Wir haben es heute mit heterogeneren Datenquellen zu tun, es gibt einen Trend zu deutlich größeren Datenmengen pro Analyse, wir haben neue und komplexere Fragestellungen und neue statistische Modelle, die zu ihrer Beantwortung entwickelt wurden. Die maßgeblichen Katalysatoren dieser Entwicklung waren und sind (aus meiner Sicht) das Internet mit seinen diversen, nicht vorhergesehenen Neben- und Seiteneffekten, die Ausbreitung von Datenbanksystemen bis zu ihrer heutigen Allgegenwart und die mit alledem einhergehende, exponentielle Vermehrung anfallender Daten. Damit wir nicht in diesem Informationsrauschen versinken, mussten sich auch die Werkzeuge und Strategien weiterentwickeln. Nach manchem, was sich heute auf herkömmlichen Arbeitsplatzrechnern einsetzen lässt, hätten viele von uns „Datenknechten” vor zehn Jahren sehnsüchtig die Hände ausgestreckt wie nach einer Fata Morgana. Auch daran hat das Internet als Kommunikations- und Informationsmedium, maßgeblich Anteil gehabt – nicht zuletzt wegen der vielen, parallel dazu entstandenen Projekte, die wir heute unter dem Sammelbegriff Open Source kennen.
Ich hatte vor einer Weile geschrieben, Datenanalyse würde heute mit so ziemlich allem betrieben, was sich auf einem Rechner installieren und mit Daten füttern lässt. Ein weites Feld. Ich will mich in diesem zweiteiligen Artikel auf zwei Themen aus der rechnergestützten Statistik konzentrieren: in der ersten Hälfte wird es um aktuelle Optionen gehen, statistische Datenanalysen durchzuführen; im zweiten Teil befasse ich mich mit dem Ausgangsmaterial – mit den vielfältigen Datenquellen und mit Werkzeugen zum effizienten Umgang damit. Es zahlt sich heute schnell aus, sich nicht nur mit seiner Statistiksoftware zu befassen, sondern seinen Werkzeugkasten sukzessive auszubauen.
Wenn Sie direkt aus der Statistik oder Informatik kommen, werden Sie vieles von dem, was ich hier vorstellen werde, bereits kennen (und gelegentlich vielleicht eine andere Meinung haben). Meiner Beobachtung nach kann allerdings nicht jeder, der Statistik betreibt, automatisch diesen Überblick haben – ich hoffe deshalb, dem einen oder der anderen doch ein paar Anregungen geben zu können.
Statistiksoftware: der Stand der Dinge
Das wichtigste Werkzeug im Inventar des Datenanalysten ist natürlich die Analysesoftware (abgesehen von der Softwareausstattung im eigenen Kopf, aber das ist ein anderes Thema). Die Marktdominanz der beiden bekanntesten Vertreter, SPSS und SAS, lässt sich nicht ausschließlich durch ihren Leistungsumfang erklären. Ein anderer wesentlicher Faktor ist der Widerstand, den die Vorstellung, zu einem anderen System zu wechseln, unter Anwendern dieser Programme häufig provoziert – so ist zumindest meine Beobachtung (vergl. auch die Einschätzung von Bruno Hopp). Das jeweilige System meistern zu lernen, hat viele Leute viel Zeit und oft auch Nerven gekostet; dazu kommen proprietär abgespeicherte Datensätze und Analyseprotokolle und die Last der jährlichen Lizenzkosten. Es ist nachvollziehbar, dass man ab einer bestimmten Höhe geleisteter Investitionen sein gewohntes Werkzeug maximal ausschöpfen möchte und erst in Frage stellt, wenn die Umstände keine andere Wahl lassen. Alternativen in Betracht zu ziehen wird zweitrangig, solange es darauf hinauszulaufen scheint, zurück auf Los gehen und von vorne anfangen zu müssen. Ohne Frage keine leichte Entscheidung.
Die Mängel- und die Wunschliste
SPSS, SAS und andere Vertreter dieser Softwaregeneration sind unbestritten leistungsfähig, im Rahmen ihrer natürlichen Grenzen. Schwerer fällt es mir, ihnen das Attribut „modern” zuzugestehen. Egal, was diesen Programmen seit ihren Anfängen an Oberflächenkosmetik und neuen Prozeduren hinzugefügt wurde, im Kern handelt es sich unverändert um Steuersprachen mit begrenzten Ausdrucksmöglichkeiten und nur sehr rudimentären Abstraktionsfähigkeiten. Zu den schwerwiegendsten Handicaps gehören für mich
- das Nebeneinander (oder Gegeneinander) von teilkompatiblen Syntaxsubsystemen, typischerweise ungefähr so: Steuersprache, Makrosprache, vielleicht ein paar Programmierkonstrukte oder externe Erweiterungen, jeder Bereich mit seinem eigenen Regelsatz;
- die (weitgehend) fehlenden Möglichkeiten, benutzerdefinierte Funktionalitäten, Algorithmen und Modelle zuzulassen und als gleichberechtigte Bestandteile ins System zu integrieren;
- die Fixierung auf strikt rechteckige, „flache” tabellarische Datensätze und das dahinter stehende rigide Fall-/Variablen-Paradigma;
- die fehlende Möglichkeit, Datensätze „live” zu kombinieren (also im gleichen Kontext mehr als einen Datensatz bearbeiten zu können);
- das ungünstige Verhältnis von Arbeitsaufwand und Ertrag bereits bei mäßig komplexen Arbeitsabläufen.
Natürlich zeigt nicht jedes Produkt der alten Garde alle diese Mängel in gleichem Umfang. Natürlich stößt man, je nach Tätigkeitsfeld, nicht in jeder Analyse an die Grenzen seines Systems. Wenn das aber geschieht, ist der Kampf gegen die Beschränkungen zeitaufwändig und endet gelegentlich in einer Sackgasse. Die Wahrscheinlichkeit solcher Negativerfahrungen steigt, sobald man begonnen hat, seine Erwartungen an den Möglichkeiten weiterentwickelter Sprachen zu orientieren. Wenn der erfahrene Anwender zu oft den Eindruck bekommt, gegen das Werkzeug zu arbeiten, statt es für sich arbeiten lassen zu können, regt sich irgendwann der Verdacht, das etwas mit dem Werkzeug nicht stimmen könnte. Ich denke, solche Reaktionen sind legitim.
Wir brauchen heute statistische Analysesoftware,
- die uns die Möglichkeit gibt, anhand organisatorischer Überlegungen zu entscheiden, mit welchen Datenstrukturen wir arbeiten wollen (statt jede Datenquelle stereotyp in eine flache Tabelle zu zwingen);
- mit der sich Datensätze effizient explorieren und umformen lassen (ohne permanent im Auge behalten zu müssen, welche dauerhaften Auswirkungen das auf den Ursprungsdatensatz hat);
- mit der sich wiederkehrende Arbeitsabläufe einfach abstrahieren und automatisieren lassen (gerne auch ohne den Kampf gegen ein wenig kooperatives System);
- deren Leistungsumfang wir jederzeit an die Anforderungen unserer Aufgaben anpassen können (indem wir z.B. selbstentwickelte Berechnungsvorschriften ins System einbinden);
- die in der Lage ist, auf beliebige externe Werkzeuge und Datenlieferanten zuzugreifen, statt sich hermetisch abzuschotten (Skriptsprachen, Datenbanken, Messwerterfassungssysteme, etc.).
Die Alternativen
Ähnliche Überlegungen führten an den Bell Labs Mitte der siebziger Jahre zur Entwicklung der Statistikumgebung S). Im Kontrast zu Steuersprachen wie SAS und SPSS wurde S von vorne herein als offene dynamische Programmiersprache konzipiert, unter dem von John Chambers formulierten Leitgedanken „to turn ideas into software, quickly and faithfully”.
S hat im Lauf der Jahre verschiedene Umbau- und Modernisierungsmaßnahmen erlebt, zuletzt Mitte bis Ende der neunziger Jahre mit der Einführung des objektorientierten Programmier-paradigmas S4. Unverändert geblieben ist die Idee einer leistungsstarken und flexiblen Programmiersprache, die einfach zu erlernen, interaktiv zu bedienen, gut zu erweitern und leicht in größere rechnergestützte Arbeitsabläufe zu integrieren ist. S hat sich im Lauf der Jahre als eins der wichtigsten Werkzeuge für Statistiker in Forschung und Lehre etabliert.
S ist in diesem Zusammenhang vor allem deshalb interessant, weil – ebenfalls in den neunziger Jahren – R als quelloffene Implementierung von S die Bühne betrat. John Chambers, Mastermind der Sprache S, gehört, neben anderen hochkarätigen Statistikern, zu den Beitragenden. R ist im Verlauf der vergangenen zehn Jahre erstaunlich schnell gereift, insbesondere, wenn man bedenkt, dass es sich um ein nicht profitorientiertes Freiwilligenprojekt handelt. Das Design von R erfüllt viele Forderungen an eine moderne Datenanalyseumgebung:
- R liest bereits in der Grundausstattung die wichtigsten Datenquellen (inklusive der Dateien anderer Statistiksysteme), eine große Menge weiterer Fremdformate lässt sich über Erweiterungspakete ansprechen (z.B. zum Einlesen oder Bearbeiten von Excel-Dokumenten).
- R passt sich unkompliziert an unterschiedlichste Aufgabenstellungen an, egal, ob Sie es für eine ausgewachsene Datenanalyse oder als „statistischen Tischrechner” verwenden wollen (z.B., um schnell mal einen z-Wert zu bestimmen oder ein Konfidenzintervall zu berechnen).
- Die Funktionalität von R lässt sich flexibel erweitern (durch eigene Funktionen oder Datenstrukturen; mit öffentlich verfügbaren Erweiterungspaketen; über Schnittstellen zu anderen Programmiersprachen).
- Wegen seiner Offenheit und Erweiterbarkeit ist R, im Unterschied zu den tonangebenden kommerziellen Produkten, in der Lage, Nischenbedürfnisse zu bedienen und aktuelle Trends zugänglich zu machen.
- Arbeitsabläufe lassen sich automatisieren, ohne dass ein Wechsel in eine andere Programmiersprache erzwungen wird.
- R erzeugt statistische Diagramme in Publikationsqualität; auch dieser Aspekt lässt sich vollständig automatisieren oder beliebig ausbauen (wenn man bereit ist, sich diese Materie zu erschließen).
- R läuft nativ auf allen wichtigen Plattformen (Windows, Mac OS X, Linux, Unix).
Und das alles kostenlos (oder gegen eine freiwillige Spende), aber das ist nicht der ausschlaggebende Aspekt. Auf verschiedene Eigenschaften von R werde ich im Verlauf dieser Serie konkreter eingehen. Dass R kein Bastler- oder Außenseiterprodukt ist und seit spätestens 2008/2009 auch außerhalb der Universitäten auf steigendes Interesse stößt, belegen vielleicht die folgenden anekdotischen Beobachtungen:
– Am 6. Januar 2009 erscheint ein Artikel in der New York Times, der für einigen Wirbel in der Szene sorgt, inklusive einer lebhaften Diskussion im dazugehörigen Blogbeitrag.
– Etwa zeitgleich kommen von SPSS und SAS Ankündigungen, Schnittstellen zu R in die eigenen Systeme integrieren zu wollen. Neben der eigentlichen Botschaft sind auch die Untertöne in diesen Verlautbarungen interessant.
– Ebenfalls erwähnenswert ist in diesem Zusammenhang, dass einer der ehemaligen Chefentwickler von SPSS, Norman H. Nie, im Herbst 2009 den Posten des CEO von Revolution Analytics (ursprünglich Revolution Computing) antritt, einem kommerziellen Software-Haus, das Lösungen mit und um R für Unternehmenskunden anbietet.
– Nachdem das Literaturangebot zu S und R zwischen Ende der 1990er Jahre und 2007 zwar stetig, aber nur um jeweils ein paar wenige Titel pro Jahr gewachsen war, kommt es 2008 und 2009 zu einem sprunghaften Anstieg an Neuveröffentlichungen. Kein Angebot ohne Nachfrage, und nebenbei bemerkt demonstriert das Themenspektrum auch, wie unterschiedlich die Szenarien sind, in denen R zum Einsatz kommt.
Ein Fazit?
Trotz des steigenden Literaturangebots war es lange Zeit mühsam, sich die Sprache R zu erarbeiten. Die traditionellen Steuersprachen (SAS, SPSS, SYSTAT, etc.) haben syntaktisch viele Gemeinsamkeiten, was einen Wechsel zwischen den Systemen erleichtert. Das lässt sich von R nicht sagen, Syntax und Semantik folgen einer ganz anderen Tradition, anfängliches Fremdeln ist da ganz natürlich. Die überwiegende Zahl der Bücher zu R legt den Fokus leider auf die Datenauswertung und behandelt die Merkmale der Sprache häufig nur als untergeordneten Aspekt und mit minimalem Aufwand. Ich kannte bis vor einer Weile nur ein einziges Buch, das ich als Einführung in die Programmierung mit R wirklich empfehlen konnte, John Chambers vorzügliches Programming with Data von 1998, das allerdings genau besehen S behandelt, nicht R, und da gibt es schon ein paar relevante Unterschiede.
Mit der Veröffentlichung der deutschen Ausgabe von R in a Nutshell liegt aber seit Weihnachten 2010 endlich ein Buch vor, dass dem interessierten R-Anwender eine breit angelegte Einführung in die Programmiersprache, ein umfassendes Nachschlagewerk und einen Überblick über wichtige statistische Verfahren bietet. In die Übersetzung und Bearbeitung dieses 770-Seiten-Schwergewichts ist so viel Arbeit geflossen, dass ich das Buch auch Lesern empfehlen kann, die gewohnheitsmäßig zu Übersetzungen auf Abstand bleiben. (Ich hoffe, Sie nehmen mir ab, dass ich von dieser Empfehlung keine materiellen Vorteile habe…)
Ich würde nicht soweit gehen, jedem Anwender eines der bekannten kommerziellen Systeme zum sofortigen Umstieg auf R zu raten – diese radikale Option würde vielen auch gar nicht zur Verfügung stehen. Aber was spricht dagegen, die Sprache schrittweise zu erkunden und zu beginnen, mehrsprachig zu arbeiten? Falsch machen können Sie damit nichts, und wie Sie oben gelesen haben, werden Sie von den beiden Großen der Branche sogar ausdrücklich dazu eingeladen, die Vorteile aus beiden Welten zu nutzen. Den Lernaufwand sollte man dabei nicht überbewerten – niemand, der sich in seine zweite (oder dritte) Analysesoftware einarbeitet, fängt bei Null an, es findet immer Transfer statt. Wenn Sie dagegen Statistik- Einsteiger sind, gibt es aktuell keine bessere Wahl als R, Daten und Algorithmen zu explorieren. Sie lernen en passant mehr über statistische Zusammenhänge, als mit jeder anderen verfügbaren Option – weil R (wie S) genau für diesen Zweck entworfen wurde.
Über den Autor:
Jörg Beyer hat an der Universität Marburg Psychologie studiert, eine intensive Statistikausbildung inbegriffen. Parallel hat er sich im Lauf der Zeit von allerhand cleveren Software-Werkzeugen begeistern lassen, mit denen sich große Datenmengen bewältigen, Routinearbeiten beschleunigen oder ungewöhnliche Aufgaben lösen lassen: Datenbankentwicklung und SQL, reguläre Ausdrücke, verschiedene Skriptsprachen, XML, R,… eine recht lange Liste, die immer in Gefahr ist, noch ein bisschen länger zu werden. Er arbeitet als Statistik-Consultant im Gesundheitswesen und als Übersetzer für wissenschaftliche und IT-Fachliteratur.