Você está na página 1de 120

Visualizações

Introdução à Ciência dos Dados


https://icd-ufmg.github.io/

1
Visualização de dados
A visualização de dados eficaz é um aspecto importante da ciência
de dados, por pelo menos três razões distintas:

● Análise exploratória de dados


● Detecção de erros
● Comunicação

2
Análise exploratória de dados

3
Detecção de erros

4
Comunicação

Mapa de cólera do
John Snow

5
Quais dados são estes?
Posições de uma bola de squash na parede
E este aqui?
Soldados que morreram na Guerra do Vietnã (ordenados pela data)
Viagens de Simón Bolivar
10
Queremos evitar plots ruins

11
Queremos evitar plots ruins

12
Queremos evitar plots ruins

13
Qual a definição de uma visualização?

14
A palavra chave aqui é percepção

15
Visualização é para pessoas!

“Parece que pessoas novas e


mais velhas gastam o mesmo
valor.”

16
Descrição de dados
Dados podem ser descritos a partir de várias agregações

Médias

Medianas

Somas

Correlações

etc

17
Sempre observe os dados antes de tudo!

Essas quatro base de dados tem a mesma


média e variância, porém são bem diferentes!

Visualization complements statistics.

Anscombe’s Quartet
18
Sobre Dados
● Cuidado: agregar dados é sempre perder informação
● Às vezes, uma análise visual faz muito mais sentido
● Motivados pelo Anscombe's Quartet, em 2017 pesquisadores
criaram uma técnica para gerar dados sintéticos de formas
diversas que compartilham a mesma informação agregada

19
Link
20
21
Sumarizando Distribuições
Terceira linha: o box plot é o mesmo para dados bem diferentes

Boxplots capturam estatísticas agregadas dos dados


○ Mediana e quartis

22
Objetivos
● Entender alguns gráficos simples
● Em particular, vamos focar em dados de 1 ou 2 dimensões
apenas

23
Variáveis Categóricas
Vamos explorar um conjunto de dados pequeno de filmes

24
Variáveis
Categóricas

Quais são os
estúdios que mais
lucram?

25
Variáveis Categóricas
No geral, faz sentido explorar a
distribuição de tais variáveis

Uma boa forma de visualizar


isto é o gráfico de barras

Transposto também fica


interessante (Figura do data8)

Conta o número de filmes

26
Histogramas
Conta o número de observações dentro de uma faixa

Para isto temos que definir alguns bins

Ou seja, agrupar dados no eixo-x

188, 170, 189, 163, 183, 171, 185, 168, 173, ... O bin [185,190)

160 165 170 175 180 185 190

27
Histogramas
A distribuição de lucro médio dos filmes (plt.hist)

28
Histogramas
Quais insights temos a partir deste gráfico?

29
Histogramas
A escolha do número de bins afeta o gráfico

Parece que há uma tendência decrescente

Será que é verdade? Podemos plotar de outras formas

30
Histograma
Problema: escolher o número de bins

Solução: filtrar o outlier e normalizar

31
Histograma
Mudar o número de bins para 50

32
Como escolher o número de bins?
● É uma arte
● Este é um problema de histogramas
● Alternativas
○ 1. Gráficos de distribuições cumulativas (CDF e CCDF)
○ 2. Sumarização de dados em boxplots/violinplots/beanplots

33
Escala
Introdução à Ciência dos Dados
https://icd-ufmg.github.io/

34
Escala

35
Comparando os Atendimentos

Em 2015, a agência Planned


Parenthood foi acusada de vender
células de fetos
Para dar subsídio às acusações, o
gráfico ao lado foi mostrado
Quantas variáveis existem neste
gráfico?
Qual a comparação sendo feita?
36
Cada curva tem uma escala diferente!
● Não use escalas diferentes
● Deixe claro quais são seus eixos
● Faça uma comparação justa!

37
Corrigindo na Mesma Escala
● Podemos comparar em absoluto
● Assim como em termos relativos
● Sim, relativamente existe um
aumento em abortos e um
decréscimo grande em cancer
● Porém, no absoluto, a diferença dos
dois ainda é grande

38
Problemas de Escala
Qual o problema com o gráfico abaixo?

39
Corrigindo nosso plot

40
Condicionamento
Introdução à Ciência dos Dados
https://icd-ufmg.github.io/

41
Condicionamento

42
Use bem a Informação
Como comparar os dois gêneros?

Existe alguma ordem no eixo-x?

Qual o propósito dessa cor?

43
Se existe uma ordem, use!
● Gráficos de linhas quando o valor tem ordem
○ Categóricas ordinais ou numéricas!
● Barras para Categorias!

44
Observando a razão (ratio)

45
Justaposição
Colocar vários gráficos sob o mesmo domínio lado a lado

46
Casos de COVID em BH
● Data de teste vs. data que entra no sistema
○ Existe um atraso entre testar e notificar
○ O Brasil indica data de notificação
○ Seria até melhor usar a data de sintomas

47
Percepção
Introdução à Ciência dos Dados
https://icd-ufmg.github.io/

48
Percepção de Forma

Alguns conceitos são mais


concretos, outros dão margem
para diferentes interpretações 49
Representação

Tentem focar no aspecto visual

Se isto é o total

Aqui está o dobro

Não um aumento na área

50
Quão maior é a barra acima?
51
7 vezes maior!
52
Quão maior é o círculo?
53
7x. Algum problema?
54
Humanos sabem comprimentos!
Nós somos muito ruins com ângulos, áreas etc!

55
Áreas são complicadas
Qual a diferença entre South Africa e Algeria?

É ~ 2x. Na esquerda é difícil de ver!

56
Mais Problemas de Área
Qual país tem maior emissão de C02?

57
Percepção de Cores!

As cores tem que trabalhar


juntas!
58
Escala de cores do Matplotlib
Escala de cores do Matplotlib:

59
Escala de cores do Matplotlib
● Mapas de cores sequenciais
○ Sequência contínua de cores (por exemplo, binário ou viridis)

mapa de cores Viridis

escala uniforme de luminância


60
Escala de cores do Matplotlib
● Mapas de cores divergentes
○ Contêm duas cores distintas, que mostram desvios positivos e negativos

mapa de cores RdBu

escala simétrica luminância


61
Escala de cores do Matplotlib
● Mapas de cores qualitativos
○ Misturam cores sem nenhuma sequência particular

mapa de cores Jet

escala de luminância desigual


62
Dinâmica de atividades em cidades

Belo Horizonte
Lyon Pittsburgh

Silva, T. H., Vaz de Melo, P. O., Almeida, J. M., Salles, J., & Loureiro, A. A. (2014). Revealing the city that we cannot see. ACM Transactions on
Internet Technology (TOIT), 14(4), 26.
Dinâmica de atividades em cidades

● Quais transições ocorrem durante o seu dia?

Segunda-feira típica

Nightclub Bar

School Restaurant
Work
Dinâmica de atividades em cidades

● Quais transições ocorrem durante o seu dia?

Tudo pode acontecer com igual probabilidade?


Dinâmica de atividades em cidades

● Quais transições ocorrem durante o seu dia?

Segunda-feira típica

Nightclub Bar

School Restaurant
Work

Há rotinas mais prováveis de acontecer!


Dinâmica de atividades em cidades

Travel NL
transporte vida

Food
noturna A&E
arte e
comida
entret.

Shop Office
compras trabalho

Edu Home
educação Outdoors casa
ar livre
Belo Horizonte

Travel NL
transporte vida

Food
noturna A&E
arte e
comida
entret.

Shop Office
compras trabalho

Edu Home
educação Outdoors casa
ar livre
New York

Travel NL
transporte vida

Food
noturna A&E
arte e
comida
entret.

Shop Office
compras trabalho

Edu Home
educação Outdoors casa
ar livre
Dinâmica de atividades em cidades

● Há transições comuns e prováveis, mas também há aquelas


que são evitadas
Dinâmica de atividades em cidades

● Q: Como identificar transições prováveis e evitadas?

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● R: Modelo Nulo!

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● R: Modelo Nulo!

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● R: Modelo Nulo!

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● R: Modelo Nulo!

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● R: Modelo Nulo!

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● R: Modelo Nulo!

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● Como identificar transições favoráveis e desfavoráveis?

Indiferença

Desfavorável Favorável
Dinâmica de atividades em cidades

● Transições originais:

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

● Probabilidade das transições de acordo com o modelo nulo

Food Travel
comida transporte

Edu Home
educação casa
Dinâmica de atividades em cidades

Belo Horizonte
Dinâmica de atividades em cidades

Localização atual
=
Belo Horizonte
Próxima localização
Dinâmica de atividades em cidades

Desfavoráveis Indiferença Favoráveis

Localização atual
=
Belo Horizonte
Próxima localização
Dinâmica de atividades em cidades
Belo Horizonte New York

Localização atual
Localização atual

Próxima localização Próxima localização


Dinâmica de atividades em cidades
Belo Horizonte New York

Localização atual
Localização atual

Próxima localização Próxima localização


Dígitos manuscritos
Escala de cores do Matplotlib:

86
Dígitos manuscritos
É possível agrupar as imagens abaixo?

87
Dígitos manuscritos
● Cada dígito é definido pelo matiz de seus 64 pixels
○ a imagem é 8 x 8

● Cada dígito é um ponto situado no espaço de 64 dimensões


○ cada dimensão representa o brilho de um pixel

● Visualizar relacionamentos em tais espaços de dimensões


elevadas pode ser extremamente difícil!
● Solução: redução de dimensionalidade
○ É um exemplo de aprendizado de máquina não supervisionado, e vamos
discuti-lo com mais detalhes depois 88
Dígitos manuscritos
● O mais importante para nós agora é: qual esquema de cor
usar?
● Como os agrupamentos são discretos, então é melhor usar
uma escala de cor discreta!

89
Dígitos manuscritos

90
Contexto

91
Qual a mensagem deste gráfico?

92
Princípios de contexto
● É importante adicionar o máximo de contexto relevante
possível a qualquer gráfico que você planeja compartilhar de
forma mais ampla
● Por exemplo, o gráfico anterior mostrar os dados com clareza,
mas fornece pouco contexto para ajudar a entender o que está
sendo plotado

93
Princípios de contexto
● Em geral, fornecemos contexto para um gráfico por meio de:
○ Título do gráfico
○ Rótulos dos eixos
○ Linhas de referência e marcadores para valores importantes
○ Rótulos para pontos interessantes e observações incomuns
○ Legendas que descrevem os dados e seus recursos importantes

94
Depois de adicionar contexto:

95
Transformações
Introdução à Ciência dos Dados
https://icd-ufmg.github.io/

96
Transformações

97
Transformação de dados
Ao comparar duas quantidades, às vezes será necessário
transformar os dados

Gráficos de dispersão são ótimos para mostrar relações

98
Log do eixo y

99
Log dos dois eixos
Aqui é ainda mais complicado, pois a relação linear depende do log
dos dois termos!

100
Log dos dois eixos

101
Exemplos
(bons e ruins)

102
Ruído vs. clareza

103
Ruído vs. clareza

104
Ruído vs. clareza

105
Ruído vs. clareza

106
Ruído vs. clareza

107
Ruído vs. clareza

108
Ruído vs. clareza

109
Razão de aspecto

a b

Qual é o melhor
gráfico?

110
Diferentes representações

111
Diferentes representações

112
Diferentes representações

113
Diferentes representações

114
Diferentes representações

115
Dados de muitas dimensões

116
Muitos dados!

117
Muitos dados!

118
Referências e Leitura
● Principles and Techniques of Data Science
Chapter 6: Data Visualization
http://www.textbook.ds100.org

● Data Science Design. Skiena, Steven S.


Chapter 6: Visualizing Data
https://www.data-manual.com/

119
Alternativas ao matplotlib
● Matplotlib é uma biblioteca muito questionada, então existem alternativas
● Uma delas é o Altair:
https://uwdata.github.io/visualization-curriculum/altair_introduction.html
● Outra alternativa, especialmente para criar apps Web rapidamente, é o
Streamlit:
https://streamlit.io/
Ex: https://share.streamlit.io/jkanner/streamlit-dataview/master/app.py/+/

120

Você também pode gostar