Bei annähernd normal verteilten Daten sind Boxplots eine großartige Möglichkeit, den Median und die Verbreitung der Daten sowie das Vorhandensein von Ausreißern schnell zu visualisieren.
Bei stärker schwanzförmigen Verteilungen werden jedoch viele Punkte als Ausreißer angezeigt, da Ausreißer als außerhalb des festgelegten Faktors des IQR liegend definiert sind, und dies passiert natürlich viel häufiger bei stark schwanzförmigen Verteilungen.
Was verwenden die Leute, um diese Art von Daten zu visualisieren? Gibt es etwas passenderes? Ich benutze ggplot auf R, wenn das wichtig ist.
r
distributions
data-visualization
data-transformation
ggplot2
static_rtti
quelle
quelle
Antworten:
Das zentrale Problem der OP zu haben scheint , ist , dass sie sehr schwere tailed Daten haben - und ich glaube nicht , die meisten der vorliegenden Antworten tatsächlich mit diesem Thema beschäftigen überhaupt , so dass ich auf eine Antwort meinen vorherigen Kommentar bin zu fördern.
Wenn Sie bei Boxplots bleiben wollten, sind nachfolgend einige Optionen aufgeführt. Ich habe einige Daten in R erstellt, die das Grundproblem zeigen:
Die mittlere Hälfte der Daten ist auf einen winzigen Streifen von einigen mm Breite reduziert. Das gleiche Problem betrifft die meisten anderen Vorschläge - einschließlich QQ-Diagramme, Streifendiagramme, Bienenstock- / Bienenwarmdiagramme und Geigendiagramme.
Nun einige mögliche Lösungen:
1) Umwandlung ,
Wenn Protokolle oder Umkehrungen ein lesbares Boxplot erzeugen, sind sie möglicherweise eine sehr gute Idee, und der ursprüngliche Maßstab kann weiterhin auf der Achse angezeigt werden.
Das große Problem ist, dass es manchmal keine "intuitive" Transformation gibt. Es gibt ein kleineres Problem, dass sich Quantile selbst zwar gut genug mit monotonen Transformationen übersetzen lassen, die Zäune jedoch nicht. Wenn Sie nur die transformierten Daten boxplotten (wie hier), haben die Whisker andere x-Werte als im ursprünglichen Plot.
Hier habe ich eine inverse hyperbolische Sünde (asinh) benutzt; Es ist logarithmisch in den Schwänzen und ähnlich wie linear nahe Null, aber die Leute empfinden es im Allgemeinen nicht als intuitive Transformation. Im Allgemeinen würde ich diese Option nicht empfehlen, es sei denn, eine ziemlich intuitive Transformation wie log ist offensichtlich. Code dafür:
2) Skalenbrüche - nehmen Sie extreme Ausreißer und komprimieren Sie sie in engen Fenstern an jedem Ende mit einer viel stärker komprimierten Skala als in der Mitte. Ich empfehle dringend eine vollständige Pause über die gesamte Skala, wenn Sie dies tun.
3) Trimmen extremer Ausreißer (was ich normalerweise nicht empfehlen würde, ohne dies sehr deutlich anzugeben, aber es sieht aus wie das nächste Diagramm, ohne die "<5" und "2>" an beiden Enden) und
4) Was ich Extrem-Ausreißer "Pfeile" nennen werde - ähnlich wie beim Trimmen, aber mit der Anzahl der getrimmten Werte, die an jedem Ende angezeigt werden
quelle
Persönlich benutze ich gerne einen Stripplot mit Jitter, um zumindest ein Gefühl für die Daten zu bekommen. Die Grafik unten ist mit Gitter in R (leider nicht ggplot2). Ich mag diese Handlungen, weil sie sehr einfach zu interpretieren sind. Wie Sie sagen, ist ein Grund dafür, dass es keine Transformation gibt.
Das Bienenwarm- Paket bietet eine großartige Alternative zu Stripplot (danke an @January für den Vorschlag).
Da Ihre Daten ungefähr normal verteilt sind, können Sie auch ein qqplot ausprobieren, in diesem Fall qqnorm .
quelle
beeswarm
Paket.Sie können sich an Boxplots halten. Es gibt verschiedene Möglichkeiten, Whisker zu definieren. Je nach Schwanzdicke, Anzahl der Proben und Toleranz gegenüber Ausreißern können Sie zwei mehr oder weniger extreme Quantile auswählen. Aufgrund Ihres Problems würde ich Whisker vermeiden, die durch den IQR definiert wurden.
Es sei denn, Sie möchten Ihre Daten transformieren, was in diesem Fall das Verständnis erschwert.
quelle
Ich gehe davon aus, dass es bei dieser Frage um das Verständnis von Daten geht (im Gegensatz zum „Verwalten“ von
Daten ). Wenn die Daten überlastet und / oder multimodal sind, finde ich diese „Ebenen“ von ggplot2 sehr nützlich für den Zweck:
geom_violin
undgeom_jitter
.quelle