R für Umsteiger von Excel und SPSS: Automatisierte Berichte

In den letzten Jahren wurden mehrfach Artikel publiziert, die auf ein gravierendes Problem hinwiesen: Schätzungen zufolge sind deutlich mehr als die Hälfte der prä-klinischen Studienergebnisse nicht reproduzierbar.

Wissenschaftliche Studienergebnisse oft nicht reproduzierbar

So titelte das Wall Street Journal im Dezember 2011: “Scientists‘ Elusive Goal: Reproducing Study Results. In der New York Times hieß es im Mai 2016: Why Do So Many Studies Fail to Replicate? Und Nature stellte ein Special zusammen zum Thema Challenges in irreproducible research.

Es dürfte vielfältige Gründe geben, warum Studienergebnisse sich als nicht reproduzierbar erweisen, unter anderem:

  • Druck, positive Ergebnisse zu erzielen (sprich signifikante Effekte). Daran hängen oft Finanzierung und die Möglichkeit, in Fachzeitschriften zu publizieren. Dabei können nicht signifikante Ergebnisse („kein Effekt“) oft ebenso wertvolle Erkenntnisse liefern (z. B. wenn man damit einen weit verbreiteten Irrglauben widerlegt).
  • Kontextabhängigkeit: Z. B. bei sozialwissenschaftlichen Fragestellungen ist es oft schwierig, die Versuchsbedingungen wiederherzustellen.
  • Rohdaten sind nicht zugänglich
  • Evtl. Druck bei Fachzeitschriften, Ergebnisse schnell zu veröffentlichen aufgrund hohen Konkurrenzdrucks.
  • In einigen Fällen möglicherweise Betrug: z. B. Datenfälschungen, um publikationsfähige Ergebnisse zu erreichen.

Mangelhafte Reproduzierbarkeit aufgrund manueller Arbeitsschritte

Heute soll es um einen speziellen Grund gehen, warum Ergebnisse sich nicht reproduzieren lassen: Manuelle, nicht dokumentierte Arbeitsschritte. Das heißt: Mit den Rohdaten kann man nachträglich nicht mehr nachvollziehen, wie die publizierten Ergebnisse zustande kamen.

Datenanalyse in Excel

Microsoft Excel ist ein weit verbreitetes, mächtiges Werkzeug zur Datenanalyse und für die Erstellung von Grafiken. Ich habe mehrere umfangreiche Projekte bearbeitet, bei denen das Endprodukt für den Kunden eine Excelmappe war. Die Art der Darstellung war schon vor der Datenerhebung in einer Mustermappe (Zieldatei) festgelegt, mit Tabellen und Beispielgrafiken. Dieses Muster wurde mehrfach gefüllt, meist für gleich aufgebaute Auswertungen für mehrere Länder. In der Analyse wurden dann Quelldateien mit den statistischen Ergebnissen erstellt und in der Zieldatei verknüpft. Obwohl die statistische Analyse selbst programmiert und damit automatisiert war (damals mit dem Programm Stata, später mit R), konnten wir manuelle Arbeitsschritte nicht ganz eliminieren. Ich blätterte die Excel-Mappe mit den Ergebnissen durch, passte Grafiken an (z. B. Entfernung von Null-Beschriftungen) und „hübschte den Report auf“, wenn das Layout nicht gut aussah (z. B. Diagramm- oder Balkenbreite, wenn die Anzahl der Kategorien stark variierte).

Menschen machen Fehler. Je mehr manuelle Arbeitsschritte in einer Analyse vorkommen, desto mehr Gelegenheiten gibt es für Fehler. Zum Beispiel löscht man mal eine Null-Beschriftung – bei der nächsten Auswertung fehlt dann eben an dieser Stelle eine Beschriftung. Oder man macht Fehler bei Zellbezügen: Die Grafik bezieht sich nur auf einen Teil der Daten, ein Teil fehlt. Oder man verwendet versehentlich eine „harte Zahl“ statt einer Verknüpfung. Bei neuen Daten (z. B. Auswertung eines anderen Landes) bleibt die Zahl unbemerkt stehen, statt sich per Verknüpfung auf die neuen Ergebnisse zu beziehen. Oder man beseitigt Ausreißer in einer Exceltabelle durch händisches Löschen.

Datenanalyse in SPSS

Typische SPSS-Ergebnistabelle mit festgelegtem Format.

Ich habe rund 10 Jahre lang zahlreiche Datenanalysen mit SPSS durchgeführt. Durch Syntax-Programmierung sind solche Analysen gut dokumentierbar und später nachvollziehbar. Als Schwachstelle erwiesen sich die Ausgabeformate. Kaum jemand verwendet SPSS-Outputs direkt. In Word oder Powerpoint werden Tabellen manuell angelegt und Ergebnisse per Copy-and-Paste übertragen, oder gar per Hand abgetippt. Klar, dass dabei Fehler passieren können. Auch habe ich im Verlauf der Jahre kein Unternehmen kennen gelernt, das SPSS-Grafiken direkt verwendet hat. Meist wurden die Daten in Exceltabellen übertragen (Copy-and-Paste oder abgetippt) und dann die Grafiken in Excel erstellt. Auch hier können Fehler passieren.

R und R Markdown: Voll automatisierte Berichte

Hier setzt R mit dem Berichtsformat RMarkdown an. Markdown wird nicht alle oben genannten Ursachen für nicht-reproduzierbare Ergebnisse beseitigen, ermöglicht aber voll automatisierte Berichte auf Knopfdruck. Markdown ist eine Auszeichnungssprache, ähnlich wie HTML (Hypertext Markup Language) für Webseiten oder XML (Extensible Markup Language) für hierarchisch strukturierte Daten. Berichte können in den Formaten Word, PDF, HTML und inzwischen auch direkt in Powerpoint erstellt werden. Im Markdown-Dokument kann man Text und Ergebnisse von Datenanalysen beliebig mischen: Text, Tabellen, Grafiken; Berechnungen können in den laufenden Fließtext eingebettet werden.

Dabei steht die ganze Bandbreite der mächtigen R-Werkzeuge zur Verfügung: neben zahlreichen Erweiterungspaketen für Datenaufbereitung, statistische Verfahren und Machine-Learning-Algorithmen auch das leistungsfähige ggplot2-Paket für publikationsfähige Diagramme. Es gibt auch zahlreiche Pakete, die statistische Ergebnisse ansprechend aufbereiten.

Verbesserte Reproduzierbarkeit dank R Markdown

Die Vorteile dieses Ansatzes liegen auf der Hand:

  • Ausschluss von Copy- und Paste-Fehlern durch vollständige Automatisierung – einschließlich Datenaufbereitung, Zusammenstellung von Ergebnistabellen und Grafiken
  • Stabiles Layout von Grafiken; kein Verrutschen oder Verschieben

Zudem kann man mit Parametern arbeiten, die zum Zeitpunkt der Berichtserstellung angegeben werden: z. B. eine Filtervariable. So kann man mehrere Berichte (etwa für unterschiedliche Teilgruppen, z. B. Regionen oder Jahre) mit demselben Skript erzeugen.

Interaktive Elemente im HTML-Format

HTML ist meines Wissens noch nicht sehr populär als Berichtsformat. Es bietet jedoch einige Vorteile gegenüber statischen Formaten wie Powerpoint, Word oder PDF, insbesondere interaktive Elemente, die auf Javascript basieren:

Interaktive Tabelle im R Markdown-Bericht (nur im HTML-Format): mit Suchfeld zum Filtern, Sortiermöglichkeit je Spalte und Paginierung (anklickbare Seitenzahlen), sodass die Daten wenig Platz beanspruchen. (Hier in WordPress nur als Bild; für die interaktive Version siehe den Link weiter unten)
  • Mouse-Over-Effekte und Zoom-In bei Grafiken; so bearbeitete Grafiken können dann als statisches Bild heruntergeladen werden
  • filter- und sortierbare Tabellen: so können Leser des Berichts z. B. die für sie relevanten Rohdaten prüfen
  • Navigation mit einem anklickbaren Inhaltsverzeichnis, das auf Wunsch beim Scrollen stabil in der Seitenspalte stehen bleibt („floating“)
  • Optionales Ein- und Ausblenden von R-Code-Blöcken
  • Optionaler Download des R-Skriptes

Solche Berichte sind, einmal erstellt, unabhängig von R lesbar, auch offline – benötigt wird lediglich ein Browser, der die Javascript-Elemente darstellt. Als R-Programmierer muss man kein Javascript schreiben – das erledigen R-Pakete im Hintergrund.

Rechts oben: Markdown-Bericht im HTML-Format: Optional kann man anbieten, den R-Code ein- oder auszublenden oder das R-Skript (Rmd) herunterzuladen.

Unten: Die Zahlen 3000 (Alben) und 1010 (verschiedene Bands / Künstler) wurden während der Berichtserstellung aus dem Datensatz ermittelt und automatisch in den Text eingebettet.

Hier finden Sie einen Beispielbericht im HTML-Format.

Erweiterungen: Flexdashboards, Blogdown, Bookdown, Shiny

In den letzten Jahren wurden einige Erweiterungen entwickelt, die auf RMarkdown aufbauen. flexdashboard bietet mehr Freiheit beim Layout, z. B. Kombinationen aus ein- und mehrspaltigen Grafiken und Texten, Reiter / Tabs, Storyboards. Mit Blogdown und Bookdown kann man Blogs bzw. Bücher nahtlos direkt aus R heraus erstellen.

Beispiel für flexdashboard: Mit Reitern und interaktiven Grafiken

Shiny ist das leistungsfähigste Berichtsformat in R, allerdings auch das anspruchsvollste, sowohl was das Erlernen als auch die Installation betrifft. Mit einer serverbasierten R-Installation kann man Webapplikationen erstellen, die live auf R zugreifen, um Berechnungen dynamisch anzupassen. Zum Beispiel kann der Nutzer bei Clusteranalysen die Clusteranzahl vorgeben und R berechnet live die Analyse neu und stellt die Ergebnisse grafisch und / oder tabellarisch dar.

Shiny funktioniert auch offline lokal auf dem eigenen Rechner: z. B. wenn man beim Kundentermin verschiedene Szenarien vorstellen und durchspielen möchte.

Fazit: Der Umstieg auf R lohnt sich!

Wer bisher regelmäßig Zeit aufwenden muss, um sich wiederholende Berichte manuell zu bearbeiten, hat gute Gründe, auf R und RMarkdown umzusteigen. Auch für einmalige Projekte / Datenanalysen lohnt sich Markdown, da man alle Arbeitsschritte von der Datenaufbereitung bis hin zum fertigen Bericht automatisieren und damit an einem Ort lückenlos dokumentieren kann. Das hilft nicht nur Kollegen, die die Analysen verstehen wollen, sondern auch dem zukünftigen Ich.

Ein Gedanke zu „R für Umsteiger von Excel und SPSS: Automatisierte Berichte“

Freue mich über Kommentare!