La meilleure façon de visualiser l'attrition en utilisant R?


15

À travers ce site, j'ai récemment découvert Sankey Diagrams, un excellent moyen de visualiser ce qui se passe dans un organigramme traditionnel .

Voici un bon exemple d'un diagramme de Sankey par George M. Whitesides et George W. Crabtree , N'oubliez pas la recherche fondamentale à long terme dans le domaine de l'énergie Source; N'oubliez pas la recherche fondamentale à long terme dans le domaine de l'énergie , Science 9 février 2007: Vol. 315. non. 5813, p. 796 - 798.

Après avoir réalisé qu'il n'y avait pas de package Sankey R, j'ai trouvé un script R en ligne , malheureusement ce script est assez brut et quelque peu limité. Avec de grands espoirs, j'ai demandé un package Sankey R ou une fonction plus mature à stackoverflow , mais à ma grande surprise, il semble que nous n'avons pas de fonction mature pour construire des diagrammes Sankey dans R.

Après avoir posté une prime, Geek On Acid a eu la gentillesse de suggérer un petit hack sur le script existant qui l'a fait fonctionner plus ou moins pour mon objectif spécifique.

Le R-script amélioré a produit ce diagramme, Diagramme R-Sankey de Geek On Acid Source; stackoverflow.com .

Mais, l'absence d'un package R indique que Sankey Diagrams n'est pas un moyen si étonnant de visualiser l'attrition en utilisant R dans un flux de données à celui présenté dans le diagramme ci-dessus (voir la question initiale de stackoverflow pour les données et le code R. Peut-être il y a une meilleure façon de visualiser l'attrition.

Selon vous, quelle est la meilleure façon de visualiser l'attrition dans un flux de données à l'aide de R?


7
Il est très difficile de faire en sorte que le diagramme soit joli de manière automatisée (le premier exemple a probablement été fait par l'artiste en plaçant manuellement les nœuds). Difficile à programmer n'a rien à voir avec son utilité comme outil graphique. Vous pouvez trouver plus de motivation sur ce poste sur le site SIG pour visualiser les flux. Je donne également quelques exemples de parsets et de points sur une réponse à ce site.
Andy W

@AndyW, merci pour un commentaire très utile. J'explorerai les différentes méthodes et expérimenterai mes données. Merci.
Eric Fail

Ce diagramme du haut est une excellente idée, mais il me semble que la somme des sources n'est pas égale à la somme des puits (en supposant que la hauteur décrit l'ampleur)
naught101

Ah .. tant pis, je l'ai mal lu ... les bits plus légers sur les sources ne sont que des étiquettes, ne font pas partie des données. Un peu déroutant ..
naught101

Réponses:


4

Je suis d'accord avec @gung. Le diagramme de Sankey que vous avez publié est, je pense, un assez bon exemple de la manière dont la technique peut aider. Bien que cela soit compliqué, le contexte (entrée et sortie d'énergie) est également complexe et il est difficile de penser à une meilleure façon de visualiser les chemins des entrées aux sorties agissant en tant que nouvelles entrées dans plusieurs catégories d'utilisation.

Maintenant, pour l'exemple d'attrition que vous avez publié, comme d'autres l'ont noté, il n'est pas utile d'utiliser un diagramme de Sankey. Je pense que vous devez publier votre ensemble complet de variables si vous voulez une bonne recommandation sur les visualisations alternatives. Si vous souhaitez simplement montrer les différences de sources d'attrition entre les sites et les cliniciens, une série de petits points multiples peut être la plus facile à comprendre et à mettre en œuvre pour votre public ( voir cet exemple , où, dans votre cas, les groupes pourraient être les sites, les éléments au sein des groupes seraient les causes d'attrition et l'axe horizontal serait de 0 à 100%).

Si le diagramme Sankey est quelque chose que vous souhaitez utiliser et que vous êtes prêt à essayer un autre langage de haut niveau, il existe un bel exemple (avec du code) dans la galerie pour le package de traçage Python, matplotlib.


3

Je ne supposerais pas nécessairement que l'absence d'une méthode implique que la méthode est sans importance ou inutile. Après tout, pour toutes les méthodes qui existent actuellement dans R, il fut un temps (très probablement récent - R n'a que ~ 10 ans) où il n'y avait pas de package pour cela.

Cependant, je devrais penser qu'il existe un certain nombre de façons de visualiser des données telles que l'attrition. Ma première pensée en regardant votre graphique, c'est qu'il pourrait être représenté par un tracé de points . D'autres possibilités existent également. La fonctionnalité supplémentaire du diagramme de Sankey va entrer en jeu lorsque vous aurez une certaine attrition due à une cause particulière à un moment donné, puis plus à cause de la même cause plus tard avec d'autres entrées et sorties entre les deux. Ce serait plus compliqué à représenter par des tracés standard (il est également plus difficile à suivre même avec un diagramme de Sankey - par exemple, celui en haut de la page prend beaucoup de travail à lire). Puisque vous ne semblez pas avoir cela, le diagramme de Sankey semble être joli, mais exagéré.


1
Le premier graphique donné est génial IMO. Il a beaucoup de détails qui seraient difficiles à capturer de manière si intuitive dans une série de tracés de points. Le diagramme de Sankey est également bon pour visualiser les flux en provenance et à destination de différents nœuds (la re-combinaison en énergie utilisée et en énergie perdue).
Andy W

@AndyW, je ne veux pas frapper ce chiffre. C'est beaucoup de travail à lire en grande partie car il contient beaucoup d'informations. Que cela vous attire et vous y retienne pendant un certain temps peut être un réel avantage - je ne voulais pas que ma description soit négative. OTOH, les données du PO sont suffisamment simples pour que des tracés plus simples puissent les transmettre.
gung - Rétablir Monica

Bon point, si les données de l'OP ne sont pas plus compliquées qu'indiquées, elles sont probablement plus problématiques qu'elles n'en valent la peine! Je ne voudrais même pas penser à convertir le diagramme d'énergie original en une série de tracés de points.
Andy W

@gung, Merci d'avoir répondu à mon message. Je suis d'accord, le manque de méthode ne doit pas être considéré comme un signe définitif que la méthode n'est pas bonne ou utile, et je n'ai certainement pas donné d'op sur les diagrammes de Sankey (SD). En ce qui concerne mes données, ce que vous voyez dans le diagramme n'est que la dimension supérieure de mes données, j'ai des données collectées sur 4 sites différents et par 7 cliniciens différents et je voudrais inclure ces informations dans mon graphique, comme une sorte de subdiviser dans le flux global. Cela peut sembler exagéré avec les données actuelles, mais je pense qu'une SD serait utile si j'inclus toutes mes variables.
Eric Fail

Avec une complexité accrue, le diagramme de Sankey est probablement votre meilleur choix. Cela vaut également la peine de parcourir certains des messages de @ AndyW, comme ceux liés ci-dessus. Il a donné beaucoup de bonnes réponses qui pourraient être pertinentes. Par exemple, si vous cliquez sur son nom pour accéder à sa page, puis cliquez sur la balise de visualisation des données à cet endroit, vous pouvez parcourir ses publications.
gung - Rétablir Monica

1

Que diriez-vous d'utiliser le code R pour écrire un fichier SVG avec les largeurs de flèche définies en fonction de vos données et une mise en page simple. Ensuite, chargez dans Inkscape et pliez les flèches, ajoutez des étiquettes, etc., au contenu de votre cœur pour faire quelque chose de joli.

Problème évident: vous devez refaire toute votre mise au point dans Inkscape si vos données changent (bien que vous puissiez utiliser votre joli SVG d'Inkscape comme modèle et simplement y substituer de nouvelles largeurs de flèche).

Mais honnêtement, si ce désordre multicolore de gribouillis au sommet est un bon diagramme de Sankey, je détesterais en voir un mauvais à jeun [bien que le regarder pendant quelques minutes de plus m'a donné un indice sur de quoi il s'agit, un bon graphique ne devrait pas en avoir besoin].


2
Je serais intéressé de voir une meilleure façon de visualiser ces données. Il y a BEAUCOUP d'informations dans cette intrigue (et plusieurs variables différentes), alors bien sûr, ça va être compliqué ...
naught101

2
Les micro-cartes de Dan Carr prennent du temps pour digérer le graphique complet, de même que toute carte routière détaillée. Ni l'un ni l'autre n'est nécessairement une mauvaise chose. Voir le billet de blog de James Chesire, Fast Thinking and Slow Thinking Visualization .
Andy W
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.