Statistik mit R leicht gemacht: Der R Commander – eine grafische Oberfläche

Rcmdr anova plot

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:

R Commander: Eine grafische Oberfläche zur Datenanalyse mit R

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")
R Commander: Daten auswählen

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.

R Commander: Einfaktorielle 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.

Rcmdr: anova Einstellungen

Als einzige Änderung zur Vorauswahl aktiviere ich das Kästchen neben „Pairwise comparisons of means“ – paarweise Mittelwertvergleiche.

Nach Klick auf „OK“ passiert eine Menge:

Sehen wir uns einige Ergebnisse an:

Anova per R Commander: Ergebnisse

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:

R Commander: Anova, Tukey-Kontraste

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:

R Commander: Anova, grafische Darstellung der Einzelvergleiche

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(RCommander) 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(RCommander) 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: