Comment visualiser les pourcentages par rapport au nombre d'entrées.

10

J'essaie de trouver la meilleure façon de visualiser le tableau ci-dessous et de souligner l'efficacité du traitement par rapport au nombre de patients qui ont essayé le traitement. Voici le lien vers la page actuelle: http://curetogether.com/cluster-headaches/treatments/

Légende du traitement des céphalées en grappe Traitements des céphalées en grappe

Quelle est la meilleure façon de souligner l'efficacité tout en facilitant la comparaison des traitements et le nombre de patients évalués chacun? Ma pensée était de montrer l'efficacité en pourcentage, mais je ne sais pas comment les rendre facilement comparables et montrer le nombre de patients qui ont essayé chacun.

Merci!

David Hobs
la source
(S'il vous plaît ne pas utiliser camemberts.) Par « mettent l' accent sur l'efficacité tout en faisant pour comparer facilement les traitements », vous parlez du fait que, par exemple, il est difficile de voir si caffeineou ibuprofenconduire à une probabilité plus élevée de moderate improvementparce que les lignes de base différer? Ou autre chose?
gung - Réintégrer Monica

Réponses:

12

Vous souhaitez comparer "l'efficacité" et évaluer le nombre de patients rapportant chaque traitement. L'efficacité est enregistrée dans cinq catégories distinctes et ordonnées, mais (d'une manière ou d'une autre) est également résumée dans un "Avg". (moyenne), ce qui suggère qu'elle est considérée comme une variable quantitative.

En conséquence, nous devons choisir un graphique dont les éléments sont bien adaptés pour véhiculer ce type d'informations. Parmi les nombreuses excellentes solutions qui se suggèrent, on utilise ce schéma:

  • Représentez l'efficacité totale ou moyenne comme une position le long d'une échelle linéaire. De telles positions sont plus facilement saisies visuellement et lues avec précision quantitativement. Rendez l'échelle commune aux 34 traitements.

  • Représentez le nombre de patients par un symbole graphique qui est facilement considéré comme directement proportionnel à ces nombres. Les rectangles sont bien adaptés: ils peuvent être positionnés pour satisfaire l'exigence précédente et dimensionnés dans la direction orthogonale de sorte que leurs hauteurs et leurs zones véhiculent les informations du numéro de patient.

  • Distinguez les cinq catégories d'efficacité par une valeur de couleur et / ou d'ombrage. Maintenir l'ordre de ces catégories.

Une énorme erreur commise par le graphique de la question est que les valeurs visuelles les plus importantes - les longueurs des barres - représentent les informations sur le nombre de patients plutôt que les informations sur l'efficacité totale. Nous pouvons résoudre ce problème facilement en recentrant chaque barre sur une valeur moyenne naturelle.

Sans apporter d'autres modifications (telles que l'amélioration de la palette de couleurs, qui est exceptionnellement mauvaise pour toute personne daltonienne), voici la refonte.

Figure

J'ai ajouté des lignes pointillées horizontales pour aider l'œil à connecter les étiquettes aux tracés, et j'ai effacé une fine ligne verticale pour montrer l'emplacement central commun.

Les schémas et le nombre de réponses sont beaucoup plus évidents. En particulier, nous obtenons essentiellement deux graphiques pour le prix d'un: sur le côté gauche, nous pouvons lire une mesure des effets négatifs tandis que sur le côté droit, nous pouvons voir la force des effets positifs . Pouvoir équilibrer le risque, d'une part, contre le bénéfice, d'autre part, est important dans cette application.

Un effet fortuit de cette refonte est que les noms des traitements avec de nombreuses réponses sont séparés verticalement des autres, ce qui facilite le balayage et la détection des traitements les plus populaires.

Un autre aspect intéressant est que ce graphique remet en cause l'algorithme utilisé pour classer les traitements par "efficacité moyenne": pourquoi, par exemple, le "suivi des céphalées" est-il si bas alors que, parmi tous les traitements les plus populaires, il était le seul n'avoir aucun effet indésirable?

Le Rcode rapide et sale qui a produit ce tracé est ajouté.

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
la source
Wow, merci pour la réponse incroyablement claire et complète. C'est une excellente solution pour visualiser toutes les informations. L'exemple de graphique que vous avez produit aide vraiment à saisir la réponse d'un coup d'œil, ce qui a également été utile. Merci!
David Hobs
2
(+1) Belle visualisation. Il convient de noter que les packages likert et HH R ont des fonctions pour les graphiques à barres empilées ciblant spécifiquement les échelles de Likert. Dans ce dernier paquet, il est même possible de laisser la hauteur de chaque barre varier en fonction de la taille de l'échantillon (voir p. 12 dans ce document JSS ).
chl
3

Vous pouvez certainement transformer chaque ligne en pourcentages et tracer toutes les barres de la même longueur, la fraction de la barre verte donnant alors un bon indicateur visuel de l'efficacité. Vous pouvez conserver le nombre entre parenthèses pour indiquer sur quelle taille d'échantillon les résultats sont basés.

Si vous souhaitez conserver un indicateur visuel du nombre d'échantillons ainsi que de l'efficacité, vous pouvez considérer le graphique tel quel, mais centrez les barres en fonction du centre de la section grise. Ensuite, la taille globale de la barre indiquera visuellement la taille de l'échantillon et la proportion de la barre qui est à droite (ou à gauche) de la ligne centrale donnera une indication d'efficacité (ou autre). En combinaison, vous obtenez une indication visuelle du traitement efficace populaire et évalué des barres qui atteignent le plus à droite. Vous pouvez trier l'une des trois méthodes disponibles sur la page que vous avez liée.

J Richard Snape
la source