Baixe o app para aproveitar ainda mais
Prévia do material em texto
INTRODUÇÃO À PROGRAMAÇÃO EMINTRODUÇÃO À PROGRAMAÇÃO EM BIG DATABIG DATA VISUALIZAÇÃO DE GRÁFICOSVISUALIZAÇÃO DE GRÁFICOS EM REM R Autor: Me. Ricardo Alexandre G. C. Martins Revisor : Fe l ipe Oviedo Fros i IN IC IAR introdução Introdução A visualização de dados é uma ferramenta vital para descobrir possíveis insights cruciais dos dados. Se os resultados de uma análise não forem visualizados adequadamente, não serão comunicados efetivamente ao público desejado. Os cientistas de dados, geralmente, ignoram algumas das habilidades mais rotineiras, mas importantes da pro�ssão. A compreensão dos dados por meio da visualização é importante, porque os dados não falam por si mesmos. Uma das melhores maneiras de fazer isso é pela visualização. Nesta unidade, aprenderemos como exibir dados usando a linguagem estatística R. Começaremos com grá�cos básicos e passaremos para os mais avançados, no decorrer da unidade. Uma das principais características necessárias para um cientista de dados é saber transmitir a informação desejada. Essa característica passa pela capacidade de criar grá�cos que sejam capazes de representar, de maneira simples, a informação desejada, para que o público consiga assimilá-la. Para cada tipo de informação a ser transmitida, existe um grá�co adequado para representá-la. Desse modo, o R possui um conjunto básico de grá�cos que suportam as informações mais comumente utilizadas. Para a criação dos exemplos a seguir, foi utilizado o dataset seatbelts , disponível no R, que possui dados sobre acidentes rodoviários na Grã- Bretanha entre 1969 e 1984. Histograma A aparência de histogramas e grá�cos de barras é semelhante, diferenciando apenas a informação que é apresentada (SHARDA; DELEN; TURBAN, 2019). Grá�cos BásicosGrá�cos Básicos Um histograma é um grá�co muito comum. Ele plota as frequências em que os dados aparecem dentro de determinados intervalos. Você pode criar histogramas com a função hist(x) , em que x é um vetor numérico de valores a serem plotados. A opção freq plota densidades de probabilidade ao invés de frequências. A opção breaks controla o número de posições, conforme exemplo: # Carrega o dataset de mortes por acidentes dados <- Seatbelts # Como o dataset é uma matriz, carrega todas as linhas da primeira coluna mortes <- dados[,1] # Exibe o histograma mortes por mês hist(mortes, breaks = 5, freq = TRUE, xlab = "Total de Mortes", ylab = "Frequência", main = "Histograma de mortes") No exemplo anterior, é possível identi�car que a maior frequência de mortes mensais está entre 100 e 120. Boxplot Figura 3.1 - Histograma Fonte: Elaborada pelo autor. Um boxplot é uma maneira padronizada de exibir a distribuição de dados com base em um resumo de cinco números (“mínimo”, primeiro quartil (Q1), mediana, terceiro quartil (Q3) e “máximo”), sendo: mediana (Q2 / 50º percentil): o valor médio do conjunto de dados; primeiro quartil (Q1 / 25º percentil): o número do meio entre o menor número (não o “mínimo”) e a mediana do conjunto de dados; terceiro quartil (Q3 / 75º percentil): o valor médio entre a mediana e o valor mais alto (não o "máximo") do conjunto de dados; intervalo interquartil (IQR): percentil 25 ao 75; máximo: Q3 + 1,5 * IQR; mínimo: Q1 -1,5 * IQR; outliers: valores acima ou abaixo do mínimo e máximo. Também pode indicar se seus dados são simétricos, com que rigidez são agrupados e como são distorcidos. Para gerar um grá�co do tipo boxplot, é necessário chamar o comando boxplot() , passando como parâmetro os dados a serem analisados, conforme o exemplo a seguir: # Carrega o dataset de mortes por acidentes dados <- Seatbelts # Como o dataset é uma matriz, carrega todas as linhas da primeira coluna mortes <- dados[,1] # Exibe o boxplot de mortes por mês boxplot(mortes) Na Figura 3.2, é possível identi�car que em 50% dos meses ocorreram até 120 mortes, sendo que dois meses saíram do padrão, com mais de 190 mortes. Grá�icos de Dispersão (Scatter Plots) Um grá�co de dispersão fornece a visão grá�ca do relacionamento entre dois conjuntos de dados. Quanto maior o relacionamento entre os dois conjuntos de dados, mais linear será a distribuição dos pontos no grá�co e mostrará uma tendência (apontando para a diagonal superior direita ou diagonal inferior direita), conforme o relacionamento entre os conjuntos de dados. A geração do grá�co de dispersão é feita através do comando plot() , porém, diferentemente dos grá�cos anteriores, é necessário informar os dois conjuntos de dados a serem analisados. # Carrega o dataset de mortes por acidentes dados <- Seatbelts # Como o dataset é uma matriz, carrega todas as linhas da primeira coluna mortes <- dados[,1] # Carrega todas as linhas da sexta coluna Figura 3.2 - Boxplot Fonte: Elaborada pelo autor. preco <- dados[,6] # Exibe o scatter plot, combinando mortes e preço do petróleo plot(mortes, preco) No exemplo da �gura anterior, é possível veri�car, visualmente, que existe uma leve tendência de distribuição dos pontos caindo para a direita. Isso representa que existe uma relação inversa fraca entre o preço do combustível e o número de mortes (quanto maior o preço do combustível, menos mortes ocorrem). Grá�icos de Linha De uma maneira resumida, um grá�co de linha é um grá�co de dispersão, onde os pontos são ligados entre si. Entretanto, o objetivo do grá�co de linha é mostrar os dados de forma temporal, ou seja, a variação ao longo do tempo. A diferença entre os comandos é a inclusão do atributo type na chamada da função plot(). # Carrega o dataset de mortes por acidentes dados <- Seatbelts Figura 3.3 - Grá�co de dispersão Fonte: Elaborada pelo autor. # Como o dataset é uma matriz, carrega todas as linhas da primeira coluna mortes <- dados[,1] # Exibe o grá�co de linhas de mortes por ano plot(mortes, type="l") Como visto, a geração de grá�cos no R é um processo bastante simples e que permite a visualização de informações de maneira rápida e e�ciente. Entretanto, esse recurso possui limitações no que diz respeito às características visuais. praticar Vamos Praticar Figura 3.4 - Grá�co de linha Fonte: Elaborada pelo autor. Uma das principais características de um cientista de dados é a habilidade de transmitir a informação em forma de grá�cos. Existem diversos tipos para transmitir as mais diversas informações. O cientista de dados deve optar pelo grá�co que transmita mais facilmente a informação para o público. Sendo assim, o grá�co que melhor mostra o relacionamento entre dois conjuntos de dados é o: a) histograma. b) boxplot. c) grá�co de pizza. d) grá�co de dispersão. e) grá�co de linha. A biblioteca ggplot2 é um pacote grá�co que simpli�ca a criação de grá�cos complexos a partir de um data frame . Ele fornece uma interface mais programática, para especi�car quais variáveis plotar, como são exibidas e propriedades visuais gerais. Portanto, são necessárias apenas de alterações mínimas, se os dados subjacentes forem alterados ou se for decidido mudar de um grá�co de barras para um de dispersão. Isso ajuda a criar grá�cos de qualidade de publicação com quantidades mínimas de ajustes. O ggplot2 funciona como dados no formato "longo", ou seja, uma coluna para todas as dimensões e uma linha para cada observação. Dados bem estruturados economizam muito tempo ao criar números com o ggplot2 Os grá�cos ggplot são construídos passo a passo, adicionando novos elementos. A adição de camadas dessa maneira permite ampla �exibilidade e personalização de plotagens. Para construir um ggplot, utilizaremos o seguinte modelo básico, que pode ser usado para diferentes tipos de plotagem: Ggplot2Ggplot2 ggplot(data = <DADOS>, mapping = aes(<MAPEAMENTOS>)) + <GEOMETRIA>() Estética Construir grá�cos com o ggplot2 é tipicamente um processo iterativo. Começamos de�nindo o conjunto de dados que usaremos, mapeamos a estética dos eixos e escolhemos uma geometria para os pontos: ggplot(data = iris,mapping = aes(x = iris$Petal.Width, y = iris$Petal.Length)) + geom_point() O parâmetro aes de�ne os mapeamentos estéticos das variáveis nos dados para propriedades as visuais (estética) dos geoms. Os mapeamentos estéticos podem ser con�gurados diretamente no grá�co e/ou em camadas individuais. É possível modi�car o grá�co para extrair mais informações dele. Por exemplo, podemos adicionar transparência ( alpha ) para evitar a sobreposição e cores para diferenciar cada categoria de dado: ggplot(data = iris, mapping = aes(x = iris$Petal.Width, y = iris$Petal.Length)) + Figura 3.5 - Exemplo de grá�co usando ggplot Fonte: Elaborada pelo autor. geom_point(alpha=0.4, aes(color=iris$Species)) Figura 3.6 - Exemplo de grá�co com cores e estética usando ggplot Fonte: Elaborada pelo autor. A relação das principais características visuais que podem ser alteradas pela estética é (OLIVEIRA, 2018): posição (x e y); cor ( color ); tamanho ( size ); preenchimento ( �ll ); transparência ( alpha ); texto ( label ). Geometria A geometria dos grá�cos refere-se ao formato no qual o grá�co será exibido. Essa geometria começam com a palavra reservada geom_ , acompanhada pelo tipo de objeto. Conforme Wickman (2019), o geom é o objeto geométrico que um grá�co usa para representar dados. Nos exemplos anteriores, foi utilizado o geom_point() , para que o grá�co fosse plotado com pontos. Nesse mesmo grá�co, caso tivesse sido utilizado o geom_boxplot() , teria como resultado um grá�co do tipo boxplot. Um exemplo de alguns tipos de grá�cos pode ser visto no Quadro 3.1: Tipo Objeto Geométrico Dispersão ( scatter plot ) geom_point() Grá�co de bolhas geom_point() Grá�co de barras geom_bar() e geom_col() Histograma geom_histogram() Boxplot geom_boxplot() Densidade geom_density() Grá�co de linhas geom_line() Quadro 3.1 - Tipos de grá�cos Fonte: Oliveira (2018, p. 77). Dada a variedade de geometrias disponíveis no ggplot, cabe ao analista a criatividade de utilizar o melhor formato para representar a informação desejada. Camadas O ggplot permite que a geração de grá�cos utilize o conceito de camadas. Cada camada, em teoria, representaria um grá�co. Ao sobrepor várias camadas em um grá�co, a visualização torna-se mais rica, apresentando novas informações. Para que uma nova camada seja adicionada ao grá�co, é necessário adicionar uma nova geometria ao grá�co, conforme o exemplo a seguir: ggplot(data = iris, mapping = aes(x = iris$Petal.Width, y = iris$Petal.Length)) + geom_point(alpha=0.4, aes(color=iris$Species))+ geom_smooth() Por sua vez, esse grá�co teria como resultado: Figura 3.7 - Grá�co com camadas Fonte: Elaborada pelo autor. Conforme pode ser visto, a aplicação de mais de uma camada no grá�co enriquece a visualização das informações, permitindo melhor compreensão dos dados. praticar Vamos Praticar O cientista de dados da empresa �ctícia EAD Corp S/A, após analisar diversas informações sobre o comportamento de compra de clientes em viagens, criou um grá�co de dispersão no qual cruzava as informações sobre média de gastos diários e duração da viagem para três categorias diferentes de viajantes: viagem com família, viagem a trabalho e viagem individual. Em razão do número elevado de exemplos, os pontos no grá�co se sobrepuseram, escondendo as informações. Qual propriedade o analista de dados deve alterar para que o grá�co exiba todas as informações ? a) geom_boxplot(). b) data. c) alpha. d) mapping. e) color. O ggplot2 possui uma técnica especial chamada facetagem (facet), que permite ao usuário dividir um grá�co em vários grá�cos, com base em um fator incluído no conjunto de dados. Existem dois tipos de funções facets: facet_wrap () - organiza uma sequência unidimensional de painéis para permitir que se encaixem corretamente em uma página; facet_grid () - permite formar uma matriz de linhas e colunas de painéis. Ambas as geometrias permitem especi�car variáveis facets especi�cadas em vars(). Por exemplo, facet_wrap (facets = vars(variável_facet)) ou facet_grid (rows = vars (variável de linha), cols = vars (variável de coluna)). Com o comando a seguir, é possível criar um grá�co usando facet wrap dividido por espécie: ggplot(data = iris, mapping = aes(x = iris$Petal.Width, y = iris$Petal.Length)) + FacetsFacets geom_jitter()+ facet_wrap(facets = vars(Species)) que, por sua vez, geraria o seguinte grá�co: Figura 3.8 - Facet wrap Fonte: Elaborada pelo autor. Já o grá�co utilizando facet grid seria obtido através do comando: ggplot(data = iris, mapping = aes(x = iris$Petal.Width, y = iris$Petal.Length)) + geom_jitter()+ facet_grid(rows = vars(Species)) que, por sua vez, geraria o seguinte grá�co: Figura 3.9 Facet grid por linha Fonte: Elaborada pelo autor. O agrupamento de diferentes grá�cos em um só por meio de facets permite uma rápida compreensão desses grá�cos, principalmente em situações em que os valores de diferentes categorias se sobrepõem, permitindo uma melhor compreensão das informações. praticar Vamos Praticar O estagiário da empresa �ctícia EAD Corp S/A tem a necessidade de gerar 3 grá�cos de dispersão. O cientista de dados lhe sugeriu que fosse criado um único grá�co, contemplando os 3 grá�cos em um só, usando facets . Ao criar alguns exemplos, viu reflita Re�ita “Tenho dito que a aplicação de métodos de Visualização de Dados é uma cachaça. Porém, se você não souber qual a sua curiosidade/pergunta, passará as noites gerando imagens bonitas, mas que no fundo não levam a nada. Parece de fora, diante de uma execução de uma rotina ou um tutorial, algo simples. Mas, é extremamente dependente da qualidade dos seus dados, das desambiguações criteriosas e bem feitas, dos �ltros escolhidos, dos algoritmos de layout, dos pesos atribuídos, etc… É relativamente fácil dar uma introdução ao assunto para alguém. O verdadeiro entendimento, a percepção dos possíveis erros de caminho, e do potencial que ele representa e oferece, vem com o tempo”. Fonte: Breve re�exão… (2017, on-line ). que os grá�cos eram exatamente iguais, mesmo usando facet_wrap e facet_grid . O que provavelmente aconteceu? a) A biblioteca ggplot2 não havia sido carregada. b) Os pontos nos grá�cos estavam sobrepostos. c) A propriedade color não havia sido de�nida. d) Foram criados os grá�cos com facet_wrap e facet_grid(rows ) e) Foram criados os grá�cos com facet_wrap e facet_grid(cols). Um grá�co pode ser gerado com características prede�nidas, com a adoção de um template , chamado “tema”. O ggplot2 fornece dois temas embutidos: theme_grey () - o tema padrão, com um plano de fundo cinza; theme_bw () - um tema com fundo branco. Para ser mais preciso, o ggplot2 fornece funções que criam um tema. Essas funções podem ser usadas para adicionar um tema especí�co a um grá�co por meio da adição do tema ao grá�co: ggplot () + ... + theme_bw() O tema produzido por essa função é simplesmente uma estrutura que contém uma lista de opções. Essas opções descrevem as propriedades visuais dos eixos, legendas, painéis, faixas e a plotagem geral. É preciso ressaltar que essas opções de�nem tudo, exceto as camadas contidas na plotagem. Se você criar uma camada para desenhar pontos vermelhos e linhas azuis, o tema não alterará essas con�gurações. TemasTemas ggplot(data = iris, mapping = aes(x = iris$Petal.Width, y = iris$Petal.Length)) + geom_jitter()+ theme_bw() + labs(title="Theme bw", subtitle = "Exemplo") Conforme pode ser visto no exemplo acima, a utilização do tema theme_bw() criou um grá�co com fundo branco, onde somente existem as cores preto e branco. Figura 3.10 - Exemplo de grá�co usando tema Fonte: Elaborada pelo autor. Utilização de Temas Customizados É possível alterar a aparência inteira de um grá�co usando um tema personalizado. Je�rey Arnold implementou a biblioteca ggthemes , contendo vários temas personalizados. Para usar esses temas, instale e carregue o pacote ggthemes daseguinte maneira: install.packages("ggthemes") # Instalar a biblioteca library(ggthemes) # Carregar a biblioteca em memória Um exemplo de utilização de temas customizados é o theme_economist(). Esse tema foi desenvolvido para gerar grá�cos na mesma escala de cores, utilizada no jornal The Economist. ggplot(iris, aes(Sepal.Length, Sepal.Width, colour = Species))+ geom_point() + theme_economist() + saiba mais Saiba mais Para conhecer a fundo todos os grá�cos disponíveis por padrão no R e na biblioteca ggplot e as características e possibilidades de customização deles, acesse a documentação o�cial, disponível em: ACESSAR ACESSAR https://www.rdocumentation.org/packages/graphics/versions/3.6.1 https://ggplot2.tidyverse.org/reference/ scale_color_economist()+ ggtitle("Iris data sets") Conforme pode ser visto no exemplo anterior, em nenhum momento foram de�nidas a cor de fundo, as linhas e características visuais do grá�co, sendo tudo isso obra da aplicação do tema. praticar Vamos Praticar A empresa �ctícia EAD Corp S/A deseja padronizar a geração de grá�cos gerados pelo ggplot dentro da empresa. A ideia é que todos os grá�cos tenham a mesma identidade visual, para que a marca da companhia seja reforçada. Para atingir esse objetivo, qual seria a solução a ser adotada? Figura 3.11 - Exemplo de grá�co usando o theme_economist() Fonte: Elaborada pelo autor. a) Criar um tema especí�co, conforme a identidade visual da empresa. b) Realizar um processamento posterior à criação do grá�co para alterar suas cores. c) Utilizar um tema padrão do R para manter as cores uniformes nos grá�cos. d) Manter um script de apoio a ser executado no momento da criação do grá�co. e) Alterar um tema existente no R sempre que necessário. indicações Material Complementar LIVRO Visualize this: the �owing data guide to design, visualization, and statistics Nathan Yau Editora: Wiley ISBN: 978-0470944882 Comentário: Visualize thi s demonstra como explicar dados visualmente, para que seja possível apresentar as informações de uma maneira fácil de entender e atraente. FILME The beauty of data visualization Ano: 1999 Comentário: o jornalista David McCandless apresenta uma compilação de conjuntos de dados complexos, como gastos militares em todo o mundo, novidades da mídia e atualizações de status do Facebook, em belos e simples diagramas que provocam padrões e conexões invisíveis. Segundo ele, um bom design é a melhor maneira de navegar pelo excesso de informações e pode mudar a maneira como vemos o mundo. Para saber mais, acesse: TRA ILER conclusão Conclusão A visualização de dados é diferente da análise racional pura, pois visa contar uma história para criar uma resposta emocional. Você pode ter evidências racionais bem à sua frente, mas se não consegue imaginar algo que nunca existiu, é impossível estimular ações de longo alcance. As ferramentas do futuro permitirão mais maneiras de recortar dados. Isso é importante, porque com um conjunto muito limitado de ferramentas, é fácil cair na armadilha de avaliar o que pode ser medido, em vez de medir o que é valioso. Isso permitirá representações mais precisas do mundo à nossa volta, evitando um futuro falso, baseado em premissas incorretas. referências Referências Bibliográ�cas BREVE re�exão sobre métodos de Visualização de Dados. Webometria, cibermetria, altmetria... , jun. 2017. Disponível em: http://www.webometria.com.br/2017/06/09/breve-re�exao-sobre-metodos- de-visualizacao-de-dados/ . Acesso em: 23 jan. 2020. http://www.webometria.com.br/2017/06/09/breve-reflexao-sobre-metodos-de-visualizacao-de-dados/ OLIVEIRA, P. F. Ciência de dados com R : introdução. Brasília: IBPAD, 2018. SHARDA, R.; DELEN, D.; TURBAN, E. Business Intelligence e análise de dados para gestão do negócio. Porto Alegre: Bookman, 2019. WICKMAN, H. R para data science. Rio de Janeiro: Alta Books, 2019.
Compartilhar