Wer neu mit Datenanalysen in R beginnt oder von anderen Statistik-Programmen kommt, mag es als Hürde empfinden, dass man nun Befehle kennen und eintippen muss. Doch es gibt Abhilfe in Form von grafischen Oberflächen. Eine davon ist der R Commander, mit dem man sich statistische Tests „zusammenklicken“ kann. Man erhält R-Code, mit dem man anschließend weiterarbeiten kann, und in einigen Fällen auch grafische Ergebnisse, wie hier bei der Varianzanalyse.
Den R Commander installieren und starten
Vor der ersten Nutzung muss der Commander einmalig installiert werden:
install.packages("Rcmdr")
Er nutzt eine ganze Reihe von R-Paketen im Hintergrund, die ggf. mit installiert werden – das kann also eine Weile dauern. Ist die Installation komplett, kann man ihn so aufrufen:
library(Rcmdr)
Unter Umständen fragt der R Commander nach weiteren Paketen. Man sollte zustimmen, diese ebenfalls zu installieren.
Dann öffnet sich ein neues Fenster, das man zur Datenanalyse nutzen kann:
Zunächst werden viele Menüeinträge grau, also inaktiv sein. Um überhaupt Analysen durchführen zu können, muss man einen Datensatz aktivieren: bequem per Klick auf das Feld neben „Datenmatrix“ – im Bild steht dort der Datensatz „albums“.
Die Menüsprache richtet sich nach der lokalen Einstellung. Wer diese verändern will, kann das vor dem Aufruf des R-Commanders so tun:
# Deutsch einstellen Sys.setenv(LANGUAGE = "DE") # Englisch einstellen Sys.setenv(LANGUAGE = "EN")
Anwendungsbeispiel: Varianzanalyse – Hühner und Fütterungsmethoden
Um den R Commander auszuprobieren, zeige ich eine simple Varianzanalyse mit einem in R integrierten Datensatz: chickwts (chick weights), Gewicht von Hühnern in Abhängigkeit von der Fütterung.
data("chickwts")
Der Datensatz ist denkbar simpel: Er enthält lediglich zwei Variablen – das Gewicht (weight, Gewicht in Gramm nach 6 Wochen) sowie die Fütterungsmethode (feed, kategorial mit 6 Ausprägungen).
Unter Statistik- Mittelwerte vergleichen finden wir den Eintrag Einfaktorielle Anova. Englisch: Statistics – Means – One-way Anova.
Der R Commander hilft uns und hat die Variablen schon vorausgewählt: Als abhängige Variable kommt lediglich das numerische Gewicht in Frage, als Gruppenvariable die kategoriale Fütterungsmethode.
Als einzige Änderung zur Vorauswahl aktiviere ich das Kästchen neben „Pairwise comparisons of means“ – paarweise Mittelwertvergleiche.
Nach Klick auf „OK“ passiert eine Menge:
- Wir erhalten R-Code unter dem Reiter „R Script“
- Wir erhalten R-Code unter dem Reiter „R Markdown“ – in diesem Format kann man Berichte in verschiedenen Ausgabeformaten erstellen, etwa Word, PDF, Powerpoint, sowie verschiedene HTML-Formate für Webseiten und HTML-basierte Präsentationen (Lese-Tipp: Datenanalysen präsentieren – Warum ich nicht Powerpoint verwende)
- Ausführliche Ergebnisse der Varianzanalyse in der Konsole
- Eine Grafik mit den paarweisen Einzelvergleichen
Sehen wir uns einige Ergebnisse an:
Der p-Wert oben unter Pr(>F) ist deutlich signifikant (wesentlich kleiner als 0,05, mit drei Sternchen markiert): insgesamt gibt es signifikante Unterschiede im Gewicht der Hühner in Abhängigkeit vom Futter. Die Tabelle darunter zeigt deskriptive Statistiken: Mittelwerte, Standardabweichungen (sd) und Fallzahlen.
Wie sieht es mit den Einzelvergleichen aus – welche Futterarten unterscheiden sich signifikant?
Anova: Post-Hoc-Tests, Einzelvergleiche
Bei Einzelvergleichen ist die sog. Alpha-Fehler-Kumulierung zu beachten: je mehr Einzelvergleiche, desto höher die Wahrscheinlichkeit, zufällig signifikante Ergebnisse zu erzielen, obwohl „in Wirklichkeit“ (in der Grundgesamtheit) kein Effekt vorliegt. Siehe einen meiner Lieblingscartoons von xkcd im Beitrag Signifikant: Gummibärchen verursachen Akne. Um diesem Phänomen vorzubeugen, werden die p-Werte angepasst, hier mit der Tukey-Methode:
Die Sternchen rechts geben eine Interpretationshilfe zu den p-Werten. So fallen etwa die Vergleiche zwischen horsebean (Saubohnen) und Kasein sowie zwischen linseed (Leinsamen) und Kasein signifikant aus, nicht aber die Vergleiche zwischen meatmeal (Fleischmehl) und Kasein (3. Zeile) oder sunflower (Sonnenblume) und Kasein (5. Zeile).
Zu post-hoc-Tests siehe den Beitrag ad hoc und post hoc.
Dazu erhalten wir auch eine grafische Ausgabe:
Anhand der Konfidenzintervalle und der gestrichelten vertikalen Null-Linie kann man die signifikanten Gruppenvergleiche rasch erkennen: Signifikant sind alle Einzelvergleiche, bei denen das Konfidenzintervall nicht die Null einschließt – wie etwa die ersten beiden, nicht aber der dritte.
Eine weitere Tabelle in der Konsole zeigt die Konfidenzintervalle numerisch – ich verzichte hier auf eine Wiedergabe.
Was, wenn das R Commander-Fenster versehentlich geschlossen wurde?
Wurde das Fenster des R Commanders versehentlich geschlossen, so kann man es mit dem Befehl
Commander()
wieder öffnen. library(Rcmdr) hat diese Wirkung nicht, wenn das Paket bereits geladen ist. Alternative: Neue R-Session starten, z. B. in RStudio über Session – Restart R, dann öffnet library(Rcmdr) das Fenster ebenfalls wieder.
Diskussion: Wie nützlich ist der R Commander?
Die R-Anwendung besteht üblicherweise darin, R-Befehle in die Konsole oder in ein Skript zu tippen und ausführen. Gerade für Einsteiger kann das abschreckend wirken. Abhilfe schaffen grafische Oberflächen wie der R Commander: Nun kann man sich statistische Analysen „zusammenklicken“. Man erhält zusätzlich zu den Ergebnissen auch den R-Code. Das ist praktisch und senkt die Einstiegs-Hürde deutlich ab.
Allerdings ist der R-Code nicht unbedingt so geschrieben, wie es ein erfahrener Anwender tun würde. Beispielsweise wurden die Einzelvergleiche oben durch einen mehrzeiligen local({…})-Aufruf ermittelt – das hätte ich anders geschrieben. Zudem gehören die grafischen Darstellungen nicht unbedingt zu den Stärken des R Commanders; andere Pakete liefern elegantere Grafiken, zum Beispiel ggstatsplot.
Ich zeige den R Commander gern in meinen Einführungskursen, ermutige aber gleichzeitig dazu, sich mit dem R-Code vertraut zu machen. Grafische Oberflächen treffen immer eine begrenzte Auswahl an Möglichkeiten im Vergleich zu dem, was man mit direktem R-Code erreichen kann.
Weitere grafische Oberflächen für R sind RKWard, Deducer und Rattle. Speziell zur Grafikerstellung mit ggplot2 gibt es das ausgezeichnete esquisse, das sogar ein RStudio-Addin beinhaltet.
Zur Auswahl des passenden statistischen Tests siehe den Beitrag Methodenberatung: Welcher statistische Test passt zu meiner Fragestellung und meinen Daten?
Das Video in der englischsprachigen Version:
Ein Gedanke zu „Statistik mit R leicht gemacht: Der R Commander – eine grafische Oberfläche“