Visualizando as Interseções de Muitos Conjuntos

30

Existe um modelo de visualização bom para mostrar a sobreposição de interseção de muitos conjuntos?

Estou pensando em algo como os diagramas de Venn, mas que de alguma forma podem se prestar melhor a um número maior de conjuntos, como 10 ou mais. A Wikipedia mostra alguns diagramas de Venn de conjuntos mais altos, mas mesmo os quatro diagramas de conjunto são muito úteis.

Meu palpite quanto ao resultado final dos dados seria que muitos dos conjuntos não se sobrepõem, portanto é possível que os diagramas de Venn estejam bem - mas eu gostaria de encontrar uma ferramenta de computador capaz de gerar isso. Parece-me que os gráficos do Google não permitem tantos conjuntos.

Kyle Brandt
fonte
11
Relacionado, mas para um pequeno número de conjuntos (para referência): stats.stackexchange.com/questions/4211/…

Respostas:

18

Quando você tem um grande número de conjuntos, eu tentaria algo mais linear e mostre os links diretamente (como um gráfico de rede). Flare e Protovis têm utilitários para lidar com essas visualizações.

Veja esta pergunta para alguns exemplos como este:

texto alternativo

Shane
fonte
(+1) Boa resposta! - Gosto especialmente dos gráficos. Eu queria saber se existe uma maneira de fazer isso no R?
suncoolsu
11
Não conheço nenhuma maneira de fazê-lo; meu pacote webvis fornece um invólucro para o Protovis, mas seria muito trabalhoso fazê-lo para criar esse gráfico. Aliás, este artigo introduz o "arco de diagrama", que está relacionada: ieg.ifs.tuwien.ac.at/~aigner/teaching/ws06/infovis_ue/papers/...
Shane
11
@suncoolsu, o diagrama de pacotes R pode fazer o mesmo "diagrama de arco" apontado por Shane. Parece que seria um trabalho árduo conseguir que a "trama da web" se parecesse com o visual acima. cran.r-project.org/web/packages/diagram/vignettes/diagram.pdf .
21711 Andy
e Andy. Obrigado por suas respostas. @ Shane, eu vi o seu pacote webvis. Mas ainda preciso explorar mais. Eu gosto muito de gráficos de protovis. Eles têm um ótimo site.
suncoolsu
11
Gráfico bonito, mas não responde à pergunta inicial, pois você não pode representar a interseção de três ou mais conjuntos. Existe uma variante disso?
Nassimhddd 17/07/2012
11

Isso não competirá com a resposta de @ Shane, porque as exibições circulares são muito adequadas para exibir relacionamentos complexos com conjuntos de dados de alta dimensão.

venn()K=4

K=4

Para referência adicional, você pode estar interessado em

Kestler et al., Diagramas de Venn generalizados: um novo método de visualização de relações complexas de conjuntos genéticos , Bioinformatics, 21 (8), 1592-1595 (2004).

Os diagramas de Venn têm suas limitações, no entanto. A esse respeito, gosto da abordagem adotada por Robert Kosara em Sightings: A Vennerable Challenge , ou com Parallel Sets (mas veja também esta discussão no blog de Andrew Gelman).

chl
fonte
Isso parece bom. eu teria adorado se aceitasse números não numéricos. Parece que é preciso transformar seus dados em uma lista numérica primeiro.
eastafri
Para fins práticos, seria incrível incluir alguns screengrabs
user5783745
7

Desenvolvemos uma abordagem baseada em matriz para interseções de conjunto chamada UpSet, você pode conferir em http://vcg.github.io/upset/ . Aqui está um exemplo:

Captura de tela do UpSet

A Matrix à esquerda identifica a interseção que uma linha representa; a última linha aqui, por exemplo, é a interseção dos gêneros de filmes "Ação, Aventura e Crianças". As barras à direita mostram o tamanho da interseção, 4 neste exemplo.

Você também pode plotar atributos dos cruzamentos ou outras seleções, etc. Confira o site para obter detalhes.

Agora também existe uma versão estática para o R, que você pode encontrar no site mencionado acima, ou acessando aqui: https://github.com/hms-dbmi/UpSetR/

Um relatório de última geração sobre visualização de cenários está disponível em http://www.cvast.tuwien.ac.at/SetViz - a maioria deles é acadêmica e não vem com código prontamente disponível.

alexsb
fonte
11
Quanto a mim, a imagem que você postou é um exemplo de overplotting, com muitas informações reunidas em um único enredo ...
Tim
11
@Tim. Enquanto eu entendo o que você está dizendo, não é realmente exagero, pois todos os elementos visuais são claramente visíveis e separados. Você pode argumentar que a trama é muito complexa para discernir prontamente, mas isso também pode estar relacionado ao fato de você não ser treinado no uso da trama - nem todas as visualizações podem ou devem ser direcionadas a usuários não treinados, pois as simplificações geralmente levam a escopo limitado (por exemplo, baixa escalabilidade de diagramas de venn)
ThomasP85 25/11/2015
@ ThomasP85 houve muita pesquisa que mostra que as pessoas são realmente ruins na interpretação visual de parcelas (até mesmo dos "especialistas"), incluindo até coisas básicas, como gráficos de pizza. Na maioria dos casos, visualização complicada leva a más interpretações e mal-entendidos.
Tim
@ Tim Concordo que simples é sempre melhor, mas perguntas complexas às vezes têm respostas complexas. A razão pela qual essa pergunta foi colocada é que, até hoje, não existe uma técnica simples e atraente de visualização para lidar com um grande número de interseções de conjuntos. A resposta aceita refere-se apenas a interseções de 2 graus que, conforme o número de conjuntos aumenta, são uma parte cada vez menor do número total de interseções.
ThomasP85
... e seu exemplo, com gráficos de pizza estão relacionadas ao fato de que os seres humanos (especialistas ou não) são horríveis em ângulos comparando, razão pela qual os gráficos de pizza nunca deve ser usado :-)
ThomasP85