In meinem Forschungsgebiet besteht eine beliebte Art der Anzeige von Daten darin, ein Balkendiagramm mit "Lenkern" zu kombinieren. Beispielsweise,
Die "Lenker" wechseln je nach Autor zwischen Standardfehlern und Standardabweichungen. Typischerweise sind die Stichprobengrößen für jeden "Balken" ziemlich klein - ungefähr sechs.
Diese Handlungen scheinen in den Biowissenschaften besonders beliebt zu sein - Beispiele finden Sie in den ersten Veröffentlichungen von BMC Biology, Bd. 3 .
Wie würden Sie diese Daten präsentieren?
Warum ich diese Grundstücke nicht mag
Persönlich mag ich diese Handlungen nicht.
- Wenn die Stichprobengröße klein ist, können Sie die einzelnen Datenpunkte anzeigen.
- Ist es die SD oder die SE, die angezeigt wird? Niemand ist damit einverstanden, welche zu verwenden.
- Warum überhaupt Bars benutzen? Die Daten gehen (normalerweise) nicht von 0 aus, aber ein erster Durchgang in der Grafik legt nahe, dass dies der Fall ist.
- Die Grafiken geben keine Auskunft über den Bereich oder die Stichprobengröße der Daten.
R-Skript
Dies ist der R-Code, mit dem ich den Plot erstellt habe. Auf diese Weise können Sie (wenn Sie möchten) dieselben Daten verwenden.
#Generate the data
set.seed(1)
names = c("A1", "A2", "A3", "B1", "B2", "B3", "C1", "C2", "C3")
prevs = c(38, 37, 31, 31, 29, 26, 40, 32, 39)
n=6; se = numeric(length(prevs))
for(i in 1:length(prevs))
se[i] = sd(rnorm(n, prevs, 15))/n
#Basic plot
par(fin=c(6,6), pin=c(6,6), mai=c(0.8,1.0,0.0,0.125), cex.axis=0.8)
barplot(prevs,space=c(0,0,0,3,0,0, 3,0,0), names.arg=NULL, horiz=FALSE,
axes=FALSE, ylab="Percent", col=c(2,3,4), width=5, ylim=range(0,50))
#Add in the CIs
xx = c(2.5, 7.5, 12.5, 32.5, 37.5, 42.5, 62.5, 67.5, 72.5)
for (i in 1:length(prevs)) {
lines(rep(xx[i], 2), c(prevs[i], prevs[i]+se[i]))
lines(c(xx[i]+1/2, xx[i]-1/2), rep(prevs[i]+se[i], 2))
}
#Add the axis
axis(2, tick=TRUE, xaxp=c(0, 50, 5))
axis(1, at=xx+0.1, labels=names, font=1,
tck=0, tcl=0, las=1, padj=0, col=0, cex=0.1)
data-visualization
csgillespie
quelle
quelle
Antworten:
Vielen Dank für alle Antworten. Der Vollständigkeit halber dachte ich, ich sollte einschließen, was ich normalerweise tue. Ich tendiere dazu, eine Kombination der gegebenen Vorschläge zu machen: Punkte, Boxplots (wenn n groß ist) und se (oder sd) Bereiche.
( Vom Moderator entfernt, da die Website, auf der das Bild gehostet wird, anscheinend nicht mehr ordnungsgemäß funktioniert. )
Aus dem Punktdiagramm geht hervor, dass die Daten in den "Griffleisten" -Diagrammen weitaus weiter verteilt sind. In der Tat gibt es einen negativen Wert in A3!
Ich habe diese Antwort zu einer CW gemacht, damit ich keine Wiederholung bekomme
quelle
Frank Harrells (hervorragendste) Keynote mit dem Titel "Information Allergy" bei useR! Der letzte Monat zeigte Alternativen zu diesen: Anstatt die Rohdaten über die Aggregation der Balken auszublenden, werden die Rohdaten auch als Punkte (oder Punkte) angezeigt. "Warum die Daten verstecken?" war Franks Kommentar.
Angesichts der Alpa-Mischung ist dies ein sehr vernünftiger Vorschlag (und das ganze Gespräch ist voller guter und wichtiger Nuggets).
quelle
jitter
ist auch in der Ebene R.Aus psychologischer Sicht empfehle ich, die Daten zuzüglich Ihrer Unsicherheit über die Daten zu zeichnen. Daher würde ich in einem Diagramm wie dem von Ihnen nie die Mühe machen, die Balken bis auf Null zu verlängern, was nur dazu dient, die Fähigkeit des Auges zur Unterscheidung von Unterschieden im Datenbereich zu minimieren.
Darüber hinaus bin ich ehrlich gesagt Anti-Bargraph; Balkendiagramme ordnen zwei Variablen demselben ästhetischen Attribut zu (Position auf der x-Achse), was zu Verwirrung führen kann. Ein besserer Ansatz besteht darin, redundante ästhetische Abbildungen zu vermeiden, indem eine Variable auf die x-Achse und eine andere Variable auf ein anderes ästhetisches Attribut (z. B. Punktform oder -farbe oder beides) abgebildet werden.
Schließlich fügen Sie in Ihrem Diagramm oben nur Fehlerbalken oberhalb des Werts ein, was die Möglichkeit erschwert, die Unsicherheitsintervalle mit Balken oberhalb und unterhalb des Werts zu vergleichen.
Hier ist, wie ich die Daten plotten würde (über das Paket ggplot2). Beachten Sie, dass ich Linien hinzufüge, die Punkte in derselben Reihe verbinden. Einige argumentieren, dass dies nur angebracht ist, wenn die Reihen, über die die Linien verbunden sind, numerisch sind (wie es in diesem Fall zu sein scheint), aber solange es eine vernünftige ordinale Beziehung zwischen den Ebenen der Variablen der x-Achse gibt, denke ich Verbindungslinien sind nützlich, damit das Auge Punkte auf der x-Achse zuordnen kann. Dies kann besonders nützlich sein, um Interaktionen zu erkennen, die bei Linien wirklich auffallen.
quelle
geom_ribbon()
Angabe des Fehlers zu lesen . Wenn Sie keine offensichtlichen Schätzungen für Bereiche zwischen 1 und 2 erstellen möchten, reduzieren Sie zumindest die Breite des Fehlerbalkens.Ich bin gespannt, warum Ihnen diese Grundstücke nicht gefallen. Ich benutze sie die ganze Zeit. Ohne das Erblühen als offensichtlich bezeichnen zu wollen, können Sie die Mittelwerte verschiedener Gruppen vergleichen und feststellen, ob sich ihre 95% -KI überlappen (dh der wahre Mittelwert ist wahrscheinlich unterschiedlich).
Ich denke, es ist wichtig, ein Gleichgewicht zwischen Einfachheit und Information für verschiedene Zwecke zu finden. Aber wenn ich diese Handlungen verwende, sage ich: "Diese beiden Gruppen unterscheiden sich in irgendeiner wichtigen Weise voneinander" [oder auch nicht].
Scheint mir ziemlich gut zu sein, aber ich würde gerne Gegenbeispiele hören. Ich nehme an, dass die Verwendung des Diagramms impliziert, dass die Daten keine bizzare Verteilung aufweisen, die den Mittelwert ungültig oder irreführend macht.
quelle
Wenn es sich bei den Daten um Raten handelt, dh die Anzahl der Erfolge geteilt durch die Anzahl der Versuche, ist eine sehr elegante Methode eine Trichterdarstellung. Beispiel: http://qshc.bmj.com/content/11/4/390.2.full (Entschuldigung, wenn für den Link ein Abonnement erforderlich ist - lassen Sie es mich wissen und ich werde ein anderes finden).
Es mag möglich sein, es an andere Datentypen anzupassen, aber ich habe keine Beispiele gesehen.
AKTUALISIEREN:
Hier ist ein Link zu einem Beispiel, für das kein Abonnement erforderlich ist (und das eine gute Erklärung für die Verwendung enthält): http://understandinguncertainty.org/fertility
Sie können für Nichtraten-Daten verwendet werden, indem einfach der Mittelwert gegen den Standardfehler aufgetragen wird, sie können jedoch einen Teil ihrer Einfachheit verlieren.
Der Wikipedia-Artikel ist nicht großartig, da er nur die Verwendung in Meta-Analysen beschreibt. Ich würde argumentieren, dass sie in vielen anderen Zusammenhängen nützlich sein könnten.
quelle
Ich würde hier Boxplots verwenden; sauber, aussagekräftig, nicht parametrisch ... oder vioplot, wenn die Verteilung interessanter ist.
quelle
Vereinfachung von @ csgillespies großartigem Code von oben:
quelle
Ich bevorzuge geom_pointrange gegenüber errorbar und denke, dass die Linien eher ablenken als hilfreich sind. Hier ist die Version, die ich viel sauberer finde als die @ James- oder @ CSGILLESPIE-Version:
quelle