¿La mejor manera de visualizar el desgaste usando R?

15

A través de este sitio , recientemente descubrí Sankey Diagrams, una excelente manera de visualizar lo que sucede en un diagrama de flujo tradicional .

Aquí hay un buen ejemplo de un Diagrama de Sankey de George M. Whitesides y George W. Crabtree , No olvide la investigación fundamental a largo plazo en energía Fuente; No olvide la investigación fundamental a largo plazo en energía , ciencia 9 de febrero de 2007: vol. 315. no. 5813, págs. 796 - 798.

Después de darme cuenta de que no había un paquete R de Sankey, encontré un script R en línea , desafortunadamente este script es bastante crudo y algo limitado. Con muchas esperanzas, pedí un paquete R de Sankey o una función más madura en stackoverflow , pero para mi sorpresa, parece que no tenemos una función madura para construir Diagramas de Sankey en R.

Después de que publiqué una recompensa Geek On Acid tuvo la amabilidad de sugerir un pequeño truco en el script existente que lo hizo funcionar más o menos para mi propósito específico.

El script R mejorado produjo este diagrama, Diagrama R-Sankey de Geek On Acid Fuente; stackoverflow.com .

Pero, la falta de un paquete R indica que los Diagramas de Sankey no son una forma tan sorprendente de visualizar la deserción usando R en un flujo de datos como el presentado en el diagrama anterior (ver inicial pregunta de flujo de pila para datos y código R) . Hay una mejor manera de visualizar el desgaste.

¿Cuál crees que es la mejor manera de visualizar el desgaste en un flujo de datos usando R?

Eric Fail
fuente
77
Es muy difícil hacer que el diagrama se vea bien de una manera automatizada (el primer ejemplo probablemente fue hecho por el artista colocando manualmente los nodos). Difícil de programar no tiene nada que ver con su utilidad como herramienta gráfica. Puede encontrar más motivación en esta publicación mía en el sitio SIG sobre la visualización de flujos. También doy algunos ejemplos de parsets y diagramas de puntos en una respuesta a este sitio.
Andy W
@AndyW, gracias por un comentario muy útil. Investigaré los diferentes métodos y experimentaré con mis datos. Gracias.
Eric Fail
Ese diagrama superior es una gran idea, pero me parece que la suma de las fuentes no es igual a la suma de los sumideros (suponiendo que la altura describe la magnitud)
naught101
Ah ... no importa, lo leí mal ... los bits más claros en las fuentes son solo etiquetas, no parte de los datos. Un poco confuso ..
naught101

Respuestas:

4

Estoy de acuerdo con @gung. El diagrama de Sankey que publicaste es, creo, un buen ejemplo de dónde puede ayudar la técnica. Si bien es complicado, el contexto (entrada y salida de energía) también es complejo y es difícil pensar en una mejor manera de visualizar los caminos de las entradas-a-salidas-actuando como nuevas entradas en múltiples categorías de uso.

Ahora bien, para el ejemplo de desgaste que publicaste, como otros han notado, no es útil usar un diagrama de Sankey. Sin embargo, creo que debe publicar su conjunto completo de variables si desea una buena recomendación sobre visualizaciones alternativas. Si simplemente desea mostrar las diferencias en las fuentes de deserción entre los sitios y los médicos, una serie de diagramas de puntos pequeños y múltiples puede ser la más fácil de entender para su audiencia y para que la implemente ( vea este ejemplo , dónde en su caso podrían ser los grupos los sitios, los elementos dentro de los grupos serían las causas de la deserción, y el eje horizontal sería 0-100%).

Si el diagrama de Sankey es algo que desea usar, y está dispuesto a incursionar en otro lenguaje de alto nivel, hay un buen ejemplo (con código) en la galería para el paquete de trazado Python, matplotlib.

Josh Hemann
fuente
3

No asumiría necesariamente que la falta de un método implica que ese método no es importante o no es útil. Después de todo, para todos los métodos que existen actualmente en R, hubo un momento (muy posiblemente reciente - R tiene solo ~ 10 años) cuando no había un paquete para él.

Sin embargo, debería pensar que hay muchas formas de visualizar datos, como el desgaste. Mi primer pensamiento al mirar su gráfico es que podría representarse con un diagrama de puntos . Existen otras posibilidades también. La funcionalidad adicional del Diagrama de Sankey entrará en juego cuando tenga cierto desgaste debido a una causa particular en un punto, y luego más debido a la misma causa más adelante con otras entradas y salidas en el medio. Sería más complicado representarlo mediante diagramas estándar (también es más difícil de seguir incluso con un diagrama de Sankey; por ejemplo, el que se encuentra en la parte superior de la página requiere bastante trabajo para leer). Como no parece tener eso, el diagrama de Sankey parece ser bonito, pero exagerado.

gung - Restablece a Monica
fuente
1
El primer gráfico dado es IMO impresionante. Tiene muchos detalles que serían difíciles de capturar tan intuitivamente en una serie de diagramas de puntos. Además, el Diagrama de Sankey es bueno para visualizar flujos desde y hacia diferentes nodos (la combinación en energía usada y energía perdida).
Andy W
@AndyW, no me refiero a golpear esa cifra. Es mucho trabajo leer en gran parte b / c, contiene mucha información. Que lo atraiga y lo retenga allí por un tiempo puede ser una verdadera ventaja: no quise que mi descripción fuera negativa. OTOH, los datos del OP son lo suficientemente directos como para que los trazados más simples puedan transmitirlos.
gung - Restablecer Monica
Buen punto, si los datos del OP no son más complicados que los dados, ¡probablemente sean más problemas de lo que valen! Sin embargo, ni siquiera quisiera pensar en convertir el diagrama de energía original en una serie de diagramas de puntos.
Andy W
@gung, gracias por responder a mi publicación. Estoy de acuerdo, la falta de método no debe tomarse como una señal definitiva de que el método no es bueno o útil, y definitivamente no he dado una operación en los diagramas de Sankey (SD). Con respecto a mis datos, lo que ve en el diagrama es solo la dimensión superior de mis datos, tengo datos recopilados en 4 sitios diferentes y por 7 médicos diferentes y me gustaría incluir esta información en mi gráfico, como algún tipo de subdividir dentro del flujo general. Puede parecer excesivo con los datos actuales, pero creo que una SD sería útil si incluyo todas mis variables.
Eric Fail
Con mayor complejidad, el diagrama de Sankey probablemente sea su mejor apuesta. También vale la pena mirar algunas de las publicaciones de @ AndyW, como las vinculadas anteriormente. Ha dado muchas buenas respuestas que podrían ser relevantes. Por ejemplo, si hace clic en su nombre para navegar a su página, luego hace clic en la etiqueta de visualización de datos allí, puede ver sus publicaciones.
gung - Restablece a Monica
1

¿Qué tal usar el código R para escribir un archivo SVG con los anchos de flecha establecidos de acuerdo con sus datos y un diseño simple? Luego, cargue en Inkscape y doble las flechas, agregue etiquetas, etc., al contenido de su corazón para hacer algo bonito.

Problema obvio: debe rehacer toda su prettificación en Inkscape si sus datos cambian (aunque es posible que pueda usar su bonito SVG de Inkscape como plantilla y simplemente sustituir nuevos anchos de flecha).

Pero, sinceramente, si ese lío multicolor de garabatos rezagados en la parte superior es un buen diagrama de Sankey, odiaría ver uno malo con el estómago lleno [aunque mirarlo durante unos minutos más me ha dado una pista sobre de qué se trata, un buen gráfico no debería necesitar eso].

Hombre espacial
fuente
2
Me interesaría ver una mejor manera de visualizar esos datos. Hay MUCHA información en ese gráfico (y múltiples variables diferentes), así que, por supuesto, será complicado ...
nada101
2
Los micro mapas de Dan Carr tardan en digerir el gráfico completo, al igual que cualquier hoja de ruta detallada. Ninguno de los dos es necesariamente algo malo. Vea la publicación del blog de James Chesire, Visualización de pensamiento rápido y pensamiento lento .
Andy W