Ein Boxplot bildet verschiedene Lageparameter und Streuparameter ab und gibt damit einen ersten groben Überblick über eine Verteilung. Dieser Artikel zeigt die Erstellung in R über verschiedene Wege.
Ein Boxplot kann auch in SPSS erstellt werden. Für eine ausführliche Interpretation gibt es einen speziellen Artikel. Wie man R und das Zusatzmodul RStudio installiert, zeigt dieser Artikel.
1 Boxplot über die Funktion “boxplot” erstellen
Am einfachsten gelingt das Erstellen eines Boxplots über die gleichnamige Funktion “boxplot”
1.1 Der einfache Boxplot
Der Code hierfür ist auch denkbar einfach. Hier wird ein Boxplot für die Variable IQ eines zufällig generierten Datensatzes erstellt:
boxplot(IQ)
Das führt zu folgendem Ergebnis:
Hier fehlt für meinen Geschmack allerdings eine Bezeichnung, was ich etwas weiter unten zeige.
1.2 Der gruppierte Boxplot
Hat man zwei Gruppen, z.B. das Geschlecht der Probanden, das man vergleichen möchte, verwendet man eine leicht geänderte Funktion:
boxplot(IQ~Geschlecht)
Hier erhält man nun zwei Boxplots:
Die Beschriftung der Kategorien wird dann automatisch von R vorgenommen. Möchte man statt Geschlecht – was ja ziemlich klar als Oberkategorie ist – z.B. zeigen, dass es sich um eine Kontrollgruppe handelt, fügt man einfach xlab=”Kontrollgruppe” hinzu. Das hat zur Folge, dass die Beschriftung der x-Achse geändert wird. Hier belasse ich es aufgrund des Kontexts aber schlicht bei der Bezeichnung Geschlecht für die x-Achse und füge zusätzlich mit ylab=”IQ” noch eine Bezeichnung für die y-Achse ein.
Sollte das Diagramm zusätzlich einen Titel (z.B. “IQ der Probanden”) benötigen, verwendet man main=”IQ der Probanden” in der boxplot-Funktion. Konkret sieht die Funktion für beide Argumente wie folgt aus:
boxplot(IQ~Geschlecht, xlab="Geschlecht", ylab="IQ", main="IQ der Probanden")
1.3 Der eingefärbte Boxplot
Eine farbige Unterscheidung kann auch durch Einfärben der Boxplots hinzugefügt werden. Der Boxplot für Männlich soll z.B. hellblau (“lightblue”) und der Boxplot für Weiblich pink (“pink”) gefärbt werden. Dazu gibt es die col-Funktion: col=(c(“lightblue”,”pink”)). Je nachdem, wie viele Gruppen existieren, sind weitere Farben hinzuzufügen. Es ist zwingend notwendig beim Argument “col” die Farben mit c(“Farbe 1”, …, “Farbe n”) aufzulisten. Die Farben werden entsprechend von links nach rechts zugewiesen. Zu den Farben in R gibt es hier noch mal einen ausführlichen Artikel: Farben in R, der „col“-Befehl.
boxplot(IQ~Geschlecht, xlab="Geschlecht", ylab="IQ", col=(c("lightblue","pink")))
2 Boxplot über die Funktion “ggplot” erstellen
Die ggplot-Funktion ist sehr umfangreich bzw. erlaubt sehr viele Detailänderungen. Auf die meiner Meinung nach wichtigsten werde ich daher nachfolgend eingehen.
Zunächst muss sie über den Befehl library(ggplot2) geladen werden. Habt ihr ggplot2 nicht installiert, könnt ihr das über den Befehl install.packages(“ggplot2”) tun.
2.1 Der einfache Boxplot
In meinem Fall liegt das Datenset im Dataframe “data_xls”. Dies ist das erste Argument in der ggplot-Funktion. Danach kommt die aes-Funktion. Hier lege ich mit y=IQ fest, dass ich für IQ eine Grafik erstellen möchte.
ggplot(data_xls, aes(y = IQ))
Das Ergebnis ist zunächst nur ein leeres Koordinatensystem mit der entsprechenden Beschriftung:
Als Nächstes folgt der Boxplot-Befehl. (+geom_boxplot), der den Boxplot hinzufügt. Da ihr bereits oben spezifiziert habt, das ihr den IQ abtragen wollt, braucht es nichts weiter:
ggplot(data_xls, aes(y = IQ)) + geom_boxplot()
2.2 Der gruppierte Boxplot
Hier wird es nun deutlich einfacher als mit der oben gezeigten Variante. Lediglich der Befehl “x=” ist einzufügen:
ggplot(data_xls, aes(y = IQ, x = Geschlecht)) + geom_boxplot()
Dies bewirkt das Aufteilen der Boxplots in zwei oder mehr Gruppen und beschriftet die Boxplots auch direkt:
2.3 Der eingefärbte Boxplot
Auch die Einfärbung ist kein Problem. Hier muss in die geom_boxplot()-Funktion einfach das Argument “fill” eingesetzt werden und analog zu oben mit der c()-Funktion Farben eingefügt werden. Das sieht dann wie folgt aus:
ggplot(data_xls, aes(x = Geschlecht, y = IQ )) + geom_boxplot(fill=c("lightblue", "pink"))
Das hat folgendes Ergebnis:
Es gibt noch viele weitere sinnvolle Funktionen, bspw. wenn ihr die Boxplots drehen wollt. Dafür verwendet ihr einfach “+ coord_flip()”.
Weitere sinnvolle Befehle gibt es hier.