Come visualizzare le percentuali rispetto al numero di voci.


10

Sto cercando di capire il modo migliore per visualizzare la tabella seguente e enfatizzare l'efficacia del trattamento secondo il numero di pazienti che hanno provato il trattamento. Ecco il link alla pagina attuale: http://curetogether.com/cluster-headaches/treatments/

Legenda del trattamento del mal di testa del cluster Trattamenti per mal di testa a grappolo

Qual è il modo migliore per enfatizzare l'efficacia e allo stesso tempo semplificare il confronto dei trattamenti e vedere quanti pazienti hanno valutato ciascuno? Il mio pensiero era di mostrare l'efficacia in percentuale, ma non sono sicuro di come renderli facilmente comparabili e mostrare il numero di pazienti che hanno provato ciascuno.

Grazie!


(Si prega di non utilizzare i grafici a torta.) "Enfatizzare l'efficacia e allo stesso tempo rendere più semplice il confronto dei trattamenti", si riferisce al fatto che, ad esempio, è difficile vedere se caffeineo ibuprofenportare a una maggiore probabilità di moderate improvementperché le linee di base differire? O qualcos'altro?
gung - Ripristina Monica

Risposte:


12

Si desidera confrontare "l'efficacia" e valutare il numero di pazienti che hanno segnalato ciascun trattamento. L'efficacia è registrata in cinque categorie discrete, ordinate, ma (in qualche modo) è anche riassunta in una "Media". valore (medio), suggerendo che è considerata una variabile quantitativa.

Di conseguenza, dovremmo scegliere un grafico i cui elementi siano ben adattati per trasmettere questo tipo di informazioni. Tra le tante eccellenti soluzioni che si suggeriscono, si utilizza questo schema:

  • Rappresenta l'efficacia totale o media come posizione lungo una scala lineare. Tali posizioni sono prontamente colte visivamente e accuratamente lette quantitativamente. Rendi la scala comune a tutti e 34 i trattamenti.

  • Rappresenta i numeri dei pazienti con un simbolo grafico che è facilmente visibile direttamente proporzionale a tali numeri. I rettangoli sono adatti: possono essere posizionati per soddisfare il requisito precedente e dimensionati nella direzione ortogonale in modo che sia le loro altezze che le loro aree trasmettano le informazioni sul numero del paziente.

  • Distingua le cinque categorie di efficacia per un valore di colore e / o ombreggiatura. Mantenere l'ordinamento di queste categorie.

Un enorme errore commesso dal grafico nella domanda è che i valori visivi più importanti - le lunghezze delle barre - descrivono le informazioni sul numero del paziente piuttosto che le informazioni sull'efficacia totale. Possiamo risolverlo facilmente aggiornando ogni barra su un valore medio naturale.

Senza apportare altre modifiche (come migliorare la combinazione di colori, che è eccezionalmente scarsa per qualsiasi persona daltonica), ecco la riprogettazione.

figura

Ho aggiunto linee tratteggiate orizzontali per aiutare l'occhio a collegare le etichette con i grafici e ho cancellato una sottile linea verticale per mostrare la posizione centrale comune.

Gli schemi e il numero di risposte sono molto più evidenti. In particolare, otteniamo essenzialmente due grafici al prezzo di uno: sul lato sinistro possiamo leggere una misura di effetti avversi mentre sul lato destro possiamo vedere quanto sono forti gli effetti positivi . Essere in grado di bilanciare il rischio, da un lato, contro il beneficio, dall'altro, è importante in questa applicazione.

Un effetto fortuito di questa riprogettazione è che i nomi dei trattamenti con molte risposte sono separati verticalmente dagli altri, facilitando la scansione verso il basso e vedere quali trattamenti sono i più popolari.

Un altro aspetto interessante è che questo grafico mette in discussione l'algoritmo utilizzato per ordinare i trattamenti in base a "efficacia media": perché, ad esempio, il "tracciamento del mal di testa" è stato messo così in basso quando, tra tutti i trattamenti più popolari, era l'unico non avere effetti negativi?

Il Rcodice rapido e sporco che ha prodotto questo diagramma è stato aggiunto.

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")

Wow, grazie per la risposta incredibilmente chiara e completa. È un'ottima soluzione per visualizzare tutte le informazioni. Il grafico di esempio che hai prodotto aiuta davvero a cogliere la risposta a colpo d'occhio, il che è stato utile. Grazie!
David Hobs,

2
(+1) Visualizzazione piacevole. Da notare che i pacchetti likert e HH R hanno funzioni per i grafici a barre in pila che si rivolgono in particolare alle scale Likert. In quest'ultimo pacchetto, c'è persino la possibilità di variare l'altezza di ciascuna barra in base alle dimensioni del campione (vedere p. 12 in questo documento JSS ).
chl

3

Potresti certamente trasformare ogni riga in percentuali e tracciare tutte le barre della stessa lunghezza, con la frazione della barra che è verde e quindi fornisce un buon indicatore visivo di efficacia. È possibile conservare il numero tra parentesi accanto per indicare su quale dimensione del campione si basano i risultati.

Se si desidera mantenere un indicatore visivo del numero di campioni e dell'efficacia, è possibile considerare il grafico così com'è, ma centrare le barre in base al centro della sezione grigia. Quindi, la dimensione complessiva della barra indicherà visivamente la dimensione del campione e la proporzione della barra che si trova a destra (o a sinistra) della linea centrale fornirà un'indicazione di efficacia (o altrimenti). In combinazione, si ottiene un'indicazione visiva del trattamento efficace popolare e valutato da quelle barre che arrivano più a destra. Puoi ordinare in uno dei tre modi disponibili nella pagina che hai collegato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.