So visualisieren Sie Prozentsätze im Vergleich zur Anzahl der Einträge.

10

Ich versuche herauszufinden, wie ich die folgende Tabelle am besten visualisieren und die Wirksamkeit der Behandlung in Bezug auf die Anzahl der Patienten, die die Behandlung ausprobiert haben, hervorheben kann. Hier ist der Link zur aktuellen Seite: http://curetogether.com/cluster-headaches/treatments/

Legende zur Behandlung von Clusterkopfschmerz Cluster-Kopfschmerz-Behandlungen

Was ist der beste Weg, um die Wirksamkeit hervorzuheben und gleichzeitig den Vergleich von Behandlungen zu vereinfachen und festzustellen, wie viele Patienten jeweils bewertet wurden? Mein Gedanke war, die Wirksamkeit in Prozent zu zeigen, aber ich bin mir nicht sicher, wie ich sie trotzdem leicht vergleichbar machen und die Anzahl der Patienten zeigen kann, die sie jeweils ausprobiert haben.

Vielen Dank!

David Hobs
quelle
(Bitte verwenden Sie keine Kreisdiagramme.) Mit "Hervorheben der Wirksamkeit bei gleichzeitiger Vereinfachung des Vergleichs von Behandlungen" beziehen Sie sich auf die Tatsache, dass z. B. schwer zu erkennen ist, ob caffeineoder aufgrund der Basislinien ibuprofeneine höhere Wahrscheinlichkeit besteht moderate improvementsich unterscheiden? Oder etwas anderes?
Gung - Reinstate Monica

Antworten:

12

Sie möchten die "Wirksamkeit" vergleichen und die Anzahl der Patienten bewerten, die über jede Behandlung berichten. Die Wirksamkeit wird in fünf diskreten, geordneten Kategorien aufgezeichnet, aber (irgendwie) auch in einem "Durchschnitt" zusammengefasst. (Durchschnitts-) Wert, was darauf hindeutet, dass es sich um eine quantitative Variable handelt.

Dementsprechend sollten wir eine Grafik auswählen, deren Elemente gut angepasst sind, um diese Art von Informationen zu vermitteln. Unter den vielen hervorragenden Lösungen, die sich anbieten, verwendet man dieses Schema:

  • Stellen Sie die Gesamt- oder Durchschnittswirksamkeit als Position entlang einer linearen Skala dar. Solche Positionen lassen sich am leichtesten visuell erfassen und quantitativ genau ablesen. Machen Sie die Skala allen 34 Behandlungen gemeinsam.

  • Stellen Sie die Anzahl der Patienten durch ein grafisches Symbol dar, das leicht als direkt proportional zu diesen Zahlen erkennbar ist. Rechtecke sind gut geeignet: Sie können so positioniert werden, dass sie die vorhergehende Anforderung erfüllen, und in orthogonaler Richtung dimensioniert werden, sodass sowohl ihre Höhe als auch ihre Bereiche die Informationen zur Patientennummer übermitteln.

  • Unterscheiden Sie die fünf Effektivitätskategorien durch einen Farb- und / oder Schattierungswert. Behalten Sie die Reihenfolge dieser Kategorien bei.

Ein enormer Fehler der Grafik in der Frage besteht darin, dass die wichtigsten visuellen Werte - die Länge der Balken - eher die Informationen zur Patientennummer als die Informationen zur Gesamteffektivität darstellen. Wir können dies leicht beheben, indem wir jeden Balken um einen natürlichen Mittelwert neu zentrieren .

Ohne weitere Änderungen vorzunehmen (z. B. das Farbschema zu verbessern, das für farbenblinde Personen außergewöhnlich schlecht ist), ist hier die Neugestaltung.

Zahl

Ich fügte horizontale gepunktete Linien hinzu, um dem Auge zu helfen, Etiketten mit Plots zu verbinden, und löschte eine dünne vertikale Linie, um die gemeinsame zentrale Position anzuzeigen.

Die Muster und die Anzahl der Antworten sind viel offensichtlicher. Insbesondere erhalten wir im Wesentlichen zwei Grafiken zum Preis von einer: Auf der linken Seite können wir ein Maß für die nachteiligen Auswirkungen ablesen, während wir auf der rechten Seite sehen können, wie stark die positiven Effekte sind. In dieser Anwendung ist es wichtig, das Risiko einerseits gegen den Nutzen andererseits abwägen zu können.

Ein zufälliger Effekt dieser Neugestaltung ist, dass die Namen von Behandlungen mit vielen Reaktionen vertikal von den anderen getrennt sind, sodass Sie leicht nach unten scannen und feststellen können, welche Behandlungen am beliebtesten sind.

Ein weiterer interessanter Aspekt ist, dass diese Grafik den Algorithmus in Frage stellt, mit dem die Behandlungen nach "Durchschn. Effektivität" geordnet werden: Warum ist beispielsweise "Kopfschmerz-Tracking" so niedrig platziert, wenn es unter allen beliebtesten Behandlungen die einzige war? keine nachteiligen Auswirkungen haben?

Der schnelle und schmutzige RCode, der dieses Diagramm erstellt hat, wird angehängt.

x <- c(0,0,3,5,5,
       0,0,0,0,2,
       0,0,3,2,4,
       0,1,7,9,7,
       0,0,3,2,3,
       0,0,0,0,1,
       0,1,1,1,2,
       0,0,2,2,1,
       0,0,1,0,1,
       0,0,3,2,1,
       0,0,2,0,1,
       1,0,5,5,2,
       1,3,15,15,4,
       1,2,5,7,3,
       0,0,4,4,0,
       0,0,2,2,0,
       0,0,3,0,1,
       0,0,2,2,0,
       0,4,18,19,2,
       0,0,2,1,0,
       3,1,27,25,3,
       1,0,2,2,1,
       0,0,4,2,0,
       0,1,6,5,0,
       0,0,3,1,0,
       3,0,3,7,2,
       0,1,0,1,0,
       0,0,21,4,2,
       0,0,6,1,0,
       1,0,2,0,1,
       2,4,15,8,1,
       1,1,3,1,0,
       0,0,1,0,0,
       0,0,1,0,0)
levels <- c("Made it much worse", "Made it slightly worse", "No effect or uncertain",
            "Moderate improvement", "Major improvement")
treatments <-  c("Oxygen", "Gluten-free diet", "Zomig", "Sumatriptan", "Rizatriptan (Maxalt)",
                 "Dilaudid suppository", "Dilaudid-Morphine", "Verapamil",
                 "Magic mushrooms", "Magnesium", "Psilocybine", "Excedrin Migraine",
                 "Ice packs on neck and head", "Passage of time", "Red Bull", "Lidocaine",
                 "Vitamin B-2 (Roboflavin)", "Caffergot", "Caffeine", "Tobasco in nose / on tongue")
treatments <- c(treatments, 
                 "Ibuprofen", "Topamax", "Excedrin Tension Headache", "Acetaminophen (Tylenol)",
                 "Extra Strength Excedrin", "Hot water bottle", "Eletriptan", 
                 "Headache tracking", "Women to Women vitamins", "Effexor", "Aspirin",
                 "Propanolol", "L-Arginine", "Fioricet")
x <- t(matrix(x, 5, dimnames=list(levels, treatments)))
#
# Precomputation for plotting.
#
n <- dim(x)[1]
m <- dim(x)[2]
d <- as.data.frame(x)
d$Total <- rowSums(d)
d$Effectiveness <- (x %*% c(-2,-1,0,1,2)) / d$Total
d$Root <- (d$Total)
#
# Set up the plot area.
#
colors <- c("#704030", "#d07030", "#d0d0d0", "#60c060", "#387038")
x.left <- 0; x.right <- 6; dx <- x.right - x.left; x.0 <- x.left-4
y.bottom <- 0; y.top <- 10; dy <- y.top - y.bottom
gap <- 0.4
par(mfrow=c(1,1))
plot(c(x.left-1, x.right), c(y.bottom, y.top), type="n", 
     bty="n", xaxt="n", yaxt="n", xlab="", ylab="", asp=(y.top-y.bottom)/(dx+1))
#
# Make the plots.
#
u <- t(apply(x, 1, function(z) c(0, cumsum(z)) / sum(z)))
y <- y.top - dy * c(0, cumsum(d$Root/sum(d$Root) + gap/n)) / (1+gap)

invisible(sapply(1:n, function(i) {
  lines(x=c(x.0+1/4, x.right), y=rep(dy*gap/(2*n)+(y[i]+y[i+1])/2, 2),
        lty=3, col="#e0e0e0")
  sapply(1:m, function(j) {
  mid <- (x.left - (u[i,3] + u[i,4])/2)*dx
  rect(mid + u[i,j]*dx, y[i+1] + (gap/n)*(y.top-y.bottom), 
       mid + u[i,j+1]*dx, y[i], 
       col=colors[j], border=NA)
})}))
abline(v = x.left, col="White")
labels <- mapply(function(s,n) paste0(s, " (", n, ")"), rownames(x), d$Total)
text(x.0, (y[-(n+1)]+y[-1])/2, labels=labels, adj=c(1, 0), cex=0.8,
     col="#505050")
whuber
quelle
Wow, danke für die unglaublich klare und gründliche Antwort. Es ist eine großartige Lösung, um alle Informationen zu visualisieren. Das von Ihnen erstellte Beispieldiagramm hilft wirklich dabei, die Antwort auf einen Blick zu erfassen, was ebenfalls hilfreich war. Vielen Dank!
David Hobs
2
(+1) Schöne Visualisierung. Zu beachten ist, dass die Pakete likert und HH R Funktionen für gestapelte Balkendiagramme haben, die speziell auf Likert-Skalen abzielen. In der letztgenannten Packung besteht sogar die Möglichkeit, die Höhe jedes Balkens je nach Probengröße variieren zu lassen (siehe S. 12 in diesem JSS-Dokument ).
Chl
3

Sie könnten sicherlich jede Zeile in Prozent umwandeln und alle Balken in derselben Länge darstellen, wobei der grüne Bruchteil des Balkens einen guten visuellen Indikator für die Wirksamkeit darstellt. Sie können die Zahl in Klammern nebeneinander beibehalten, um anzugeben, auf welcher Stichprobengröße die Ergebnisse basieren.

Wenn Sie einen visuellen Indikator für die Anzahl der Proben sowie die Wirksamkeit beibehalten möchten, können Sie das Diagramm unverändert betrachten, die Balken jedoch basierend auf der Mitte des grauen Abschnitts zentrieren. Dann zeigt die Gesamtgröße des Balkens visuell die Probengröße an, und der Anteil des Balkens rechts (oder links) von der Mittellinie gibt einen Hinweis auf die Wirksamkeit (oder auf andere Weise). In Kombination erhalten Sie einen visuellen Hinweis auf die beliebte und bewertete wirksame Behandlung der Balken, die am weitesten rechts liegen. Sie können auf drei Arten sortieren, die auf der von Ihnen verlinkten Seite verfügbar sind.

J Richard Snape
quelle