Visualizando las intersecciones de muchos conjuntos

30

¿Existe un modelo de visualización que sea bueno para mostrar la superposición de intersección de muchos conjuntos?

Estoy pensando en algo así como los diagramas de Venn, pero que de alguna manera podrían prestarse mejor a un mayor número de conjuntos, como 10 o más. Wikipedia muestra algunos diagramas de Venn de conjuntos más altos, pero incluso los 4 diagramas de conjuntos son mucho para asimilar.

Supongo que el resultado final de los datos sería que muchos de los conjuntos no se superpondrán, por lo que es posible que los diagramas de Venn estén bien, pero me gustaría encontrar una herramienta informática que pueda generar eso. Me parece que los gráficos de Google no permiten tantos conjuntos.

Kyle Brandt
fuente
1
Relacionado, pero para un pequeño número de conjuntos (para referencia): stats.stackexchange.com/questions/4211/…

Respuestas:

18

Cuando tienes una gran cantidad de conjuntos, intentaría algo que sea más lineal y muestre los enlaces directamente (como un gráfico de red). Flare y Protovis tienen utilidades para manejar estas visualizaciones.

Vea esta pregunta para algunos ejemplos como este:

texto alternativo

Shane
fuente
(+1) ¡Buena respuesta! - Me gustan especialmente los gráficos. Me preguntaba si hay una manera de hacer esto en R?
suncoolsu
1
No conozco ninguna forma de hacerlo; mi paquete webvis proporciona un contenedor para Protovis, pero sería mucho trabajo lograr que haga este gráfico. Por cierto, este documento presenta el "diagrama de arco" que está relacionado: ieg.ifs.tuwien.ac.at/~aigner/teaching/ws06/infovis_ue/papers/…
Shane
1
@suncoolsu, el diagrama del paquete R puede hacer el mismo "diagrama de arco" que señaló Shane. Sin embargo, parece que sería un trabajo duro lograr que la "trama web" se parezca a la imagen anterior. cran.r-project.org/web/packages/diagram/vignettes/diagram.pdf .
Andy W
y Andy Gracias por sus respuestas. @ Shane, he visto tu paquete webvis. Pero todavía necesito explorarlo más a fondo. Me gustan mucho los gráficos de protovis. Tienen un gran sitio web.
suncoolsu
1
Bonito gráfico, pero no responde la pregunta inicial, ya que no puede representar la intersección de 3 o más conjuntos. ¿Hay alguna variante que lo haga?
nassimhddd
11

Esto no competirá con la respuesta de @ Shane porque las pantallas circulares son muy adecuadas para mostrar relaciones complejas con conjuntos de datos de alta dimensión.

venn()K=4 4

K=4 4

Para mayor referencia, puede estar interesado en

Kestler et al., Diagramas de Venn generalizados: un nuevo método para visualizar relaciones complejas de conjuntos genéticos , Bioinformática, 21 (8), 1592-1595 (2004).

Sin embargo, los diagramas de Venn tienen sus limitaciones. A este respecto, me gusta el enfoque adoptado por Robert Kosara en Sightings: A Vennerable Challenge , o con Parallel Sets (pero vea también esta discusión en el weblog de Andrew Gelman).

chl
fuente
Se ve bien. Me hubiera encantado si aceptara no numéricos. Parece que primero hay que transformar sus datos en una lista numérica.
eastafri
Para fines prácticos, sería increíble incluir algunas capturas de pantalla
user5783745
7

Desarrollamos un enfoque basado en matrices para establecer intersecciones llamado UpSet, puede consultarlo en http://vcg.github.io/upset/ . Aquí hay un ejemplo:

Captura de pantalla de UpSet

La matriz a la izquierda identifica la intersección que representa una fila, la última fila aquí, por ejemplo, es la intersección de los géneros de películas "Acción, aventura y niños". Las barras a la derecha le muestran el tamaño de la intersección, 4 en este ejemplo.

También puede trazar los atributos de las intersecciones u otras selecciones, etc. Consulte el sitio web para obtener más información.

Ahora también hay una versión estática para R que puede encontrar en el sitio web mencionado anteriormente, o visitando aquí: https://github.com/hms-dbmi/UpSetR/

Se puede acceder a un informe de última generación sobre visualización de conjuntos en http://www.cvast.tuwien.ac.at/SetViz , aunque la mayoría son académicos y no incluyen un código disponible.

alexsb
fuente
1
En cuanto a mí, la imagen que publicaste es más bien un ejemplo de sobreparcelación, con demasiada información en un solo diagrama ...
Tim
1
@Tim. Si bien entiendo lo que estás diciendo, en realidad no se trata de una superposición, ya que todos los elementos visuales son claramente visibles y separados. Podría argumentar que la trama es demasiado compleja para discernirla fácilmente, pero esto podría estar relacionado con que no esté capacitado para usar la trama: no todas las visualizaciones pueden o deben estar dirigidas a usuarios no capacitados, ya que las simplificaciones a menudo conducen a un alcance limitado (por ejemplo, Escalabilidad deficiente de los diagramas de
Venn
@ ThomasP85 hubo mucha investigación que muestra que las personas son realmente malas en la interpretación visual de las tramas (incluso "los" expertos) incluso en cosas tan básicas como gráficos circulares. En la mayoría de los casos, la visualización complicada conduce a malas interpretaciones y malentendidos.
Tim
@Tim Estoy de acuerdo en que lo simple siempre es mejor, pero las preguntas complejas a veces tienen respuestas complejas. La razón por la que se planteó esta pregunta en primer lugar es que, hasta la fecha, no es una técnica de visualización simple y convincente para manejar grandes cantidades de intersecciones establecidas. La respuesta aceptada solo se refiere a las intersecciones de 2 grados que, a medida que aumenta el número de conjuntos, son una parte cada vez más pequeña del número total de intersecciones.
ThomasP85
... y su ejemplo con gráficos circulares está relacionado con el hecho de que los humanos (expertos o no) son horribles en la comparación de ángulos, razón por la cual los gráficos circulares nunca deberían usarse :-)
ThomasP85