In wissenschaftlichen Publikationen werden häufig Messwerte in Grafiken dargestellt. Messungen sind allerdings immer fehlerbehaftet. Daher sollte man dem Leser mitteilen, wie verlässlich die gemessenen Werte sind. In der deskriptiven Statistik gibt es dafür diverse Kennzahlen, wie z.B. die Standardabweichung oder den Standardfehler. Diese werden oft als Fehlerbalken in die Grafiken eingefügt.
In R gibt es leider keine Standardmethode, die diese Aufgabe übernimmt. Zunächst hatte ich nach Anleitungen im Internet eigene Funktionen für diese Aufgabe erstellt.
- Eine Lösung fand ich bei Stackoverflow. Allerdings wurden hier die horizontalen Linien bei einer logarithmischen X-Achse nicht korrekt angezeigt (links und rechts waren die Linien unterschiedlich lang).
- Die Lösung von MonkeysUncle war in der Hinsicht besser. Allerdings wurde keine horizontale Linie angezeigt, wenn der Fehler 0 war. Zudem wurde gar kein Fehlerbalken angezeigt, wenn die untere Grenze des Fehlers (bei logarithmischer Y-Achse) im negativen Bereich lag.
Schließlich habe ich die Funktion errbar()
im Paket Hmisc
gefunden (siehe auch StackOverflow). Hier werden:
- Die horizontalen Linien auch bei logarithmischer X-Achse korrekt gezeichnet.
- Bei logarithmischer Y-Achse und negativer unteren Fehlergrenze, wird zumindest die obere Fehlergrenze geplottet.
- Eine horizontale Linie wird auch hinzugefügt, wenn der Fehler 0 ist.
- Die Y-Ranges werden automatisch gewählt, wenn die Fehlerbalken ausserhalb der Grafik liegen würden.
Das folgende Beispiel zeigt, wie man Datenpunkte mit ihren Fehlerbalken in eine Grafik einträgt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # Datenpunkte (x, y) mit einer Standardabweichung (sd) daten = data.frame( x = c(1:5) , y = c(1.1, 1.5, 2.9, 3.8, 5.2) , sd = c(0.2, 0.3, 0.2, 0.0, 0.4) ) # Paket "Hmisc" installieren und laden install.packages("Hmisc", dependencies=T) library("Hmisc") # Plot mit automatischer Wahl des Y ranges with ( data = daten , expr = Hmisc::errbar(x, y, y+sd, y-sd, pch=1) ) # Datenpunkte mit Fehlerbalken zu einem # existierenden Koordinatensystem hinzufügen (add=T) plot(daten$x, daten$y, type="n", xlab="X-Werte", ylab="Y-Werte") with ( data = daten , expr = Hmisc::errbar(x, y, y+sd, y-sd, pch=2, add=T) ) |
Die Funktion errbar()
erweitert die Funktion plot()
. Daher können die Grafikparameter von plot()
und par()
(hier z.B. pch
) verwendet werden. Zusätzlich gibt es noch Parameter, mit denen sich z.B. die breite der horizontalen Begrenzung (cap
) steuern lässt.