VisualizaĆ§Ć£o de Dados com ggplot2

Marcus Nunes

JoĆ£o Pessoa, 17 e 18 de Maio de 2018

ApresentaĆ§Ć£o

ApresentaĆ§Ć£o

PreparaĆ§Ć£o

PreparaĆ§Ć£o

  • Curso em duas partes

  • Hoje: introduĆ§Ć£o ao ggplot2 e ao dplyr

  • Ideias bĆ”sicas, mudanƧa de paradigma e exemplos

  • AmanhĆ£: aula prĆ”tica

  • AnĆ”lise de dados de gastos de deputados federais

PreparaĆ§Ć£o

  • O material deste curso estĆ” disponĆ­vel em um pacote no R

  • Este pacote poder ser instalado com os comandos

  • Para ter acesso ao material em seu computador, carregue o pacote normalmente atravĆ©s do comando

PreparaĆ§Ć£o

  • AlĆ©m dos conjuntos de dados, este pacote vem com um tutorial idĆŖntico a este conjunto de slides. Basta rodar

para acessĆ”-lo dentro da sua instalaĆ§Ć£o do R ou do RStudio

IntroduĆ§Ć£o

IntroduĆ§Ć£o

  • ggplot2 Ć© um pacote de visualizaĆ§Ć£o de dados

  • Foi criado por Hadley Wickham em 2007, baseado no livro Grammar of Graphics, de Leland Wilkinson

  • A ideia principal Ć© criar grĆ”ficos como se eles fossem frases de uma lĆ­ngua, onde cada elemento do grĆ”fico Ć© uma palavra

IntroduĆ§Ć£o

  • Isto nos permite construir grĆ”ficos tĆ£o complexos quanto quisermos

  • Os grĆ”ficos criados com esta ferramenta sĆ£o, em geral, mais bonitos do que os grĆ”ficos tradicionais do R

IntroduĆ§Ć£o

  • Entretanto, esta versatilidade tem dois custos associados:

    • A curva de aprendizagem do ggplot2 Ć© um pouco maior do que das funƧƵes grĆ”ficas tradicionais do R (por exemplo, plot, boxplot e hist)

    • Ɖ uma ferramenta um pouco mais lenta para exibir os resultados dos grĆ”ficos criados

IntroduĆ§Ć£o

  • Por exemplo, veja o grĆ”fico do prĆ³ximo slide

  • Este grĆ”fico foi criado com ggplot2, utilizando poucas linhas de cĆ³digo

  • Como seria possĆ­vel criĆ”-lo utilizando as ferramentas tradicionais do R?

IntroduĆ§Ć£o

Sintaxe BƔsica

Sintaxe BƔsica

  • O ggplot2 exige que os dados a serem plotados estejam em um data frame

  • NĆ£o Ć© possĆ­vel plotar diretamente os dados presentes em uma matriz ou um vetor

  • Sempre teremos que transformar os dados para data frame ou construir um data frame com os dados que possuĆ­mos

Sintaxe BƔsica

  • Cada grĆ”fico Ć© formado por sete camadas: dados, estĆ©tica, geometria, facets, estatĆ­stica, coordenadas e tema

  • As trĆŖs primeiras sĆ£o fundamentais: todo grĆ”fico vai possuĆ­-las

    • dados: consistem na camada base; a partir dos dados que pensaremos quais variĆ”veis serĆ£o trabalhadas

    • estĆ©tica: consiste nas variĆ”veis selecionadas para plotagem, agrupamento, coloraĆ§Ć£o etc.

    • geometria: camada onde definimos as formas dos elementos grĆ”ficos, tais como pontos, linhas e e intervalos

Sintaxe BƔsica

  • As quatro seguintes sĆ£o opcionais: elas permitem que personalizemos nossas visualizaƧƵes

    • facets: Ćŗtil quando desejamos dividir informaƧƵes do grĆ”fico para uma melhor visualizaĆ§Ć£o, podendo ser utilizada para comparaƧƵes de grupos

    • estatĆ­stica: Ć© a camada que representa a anĆ”lise dos dados, caso eles sejam transformados

    • coordenadas: informa onde o grĆ”fico serĆ” construĆ­do, se em coordenadas cartesianas ou polares, por exemplo

    • tema: Ć© a Ćŗltima camada, referente Ć  visualizaĆ§Ć£o geral do grĆ”fico

Sintaxe BƔsica

  • Trabalharemos com o conjunto de dados sleepstudy

  • Originalmente, este conjunto de dados faz parte do pacote lme4

  • Carregue este arquivo na memĆ³ria do R atravĆ©s do comando

Sintaxe BƔsica

  • Verifique se estĆ” tudo correto atravĆ©s dos comandos

Sintaxe BƔsica

  • Este conjunto de dados reporta o tempo mĆ©dio de reaĆ§Ć£o (Reaction) de 18 voluntĆ”rios apĆ³s um certo nĆŗmero de dias (Days) em que eles dormiram 3 horas por noite

  • Queremos fazer a anĆ”lise exploratĆ³ria deste conjunto de dados

  • O objetivo ao final Ć© que consigamos entender como construir o grĆ”fico que vimos alguns slides atrĆ”s

Sintaxe BƔsica

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

  • O comando principal a ser utilizado se chama ggplot

  • AtravĆ©s dele vamos definir qual Ć© a variĆ”vel preditora e qual Ć© a variĆ”vel resposta em nosso conjunto de dados

  • O comando bĆ”sico a partir do qual vamos gerar todos os grĆ”ficos Ć©

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BĆ”sica - GrĆ”fico de DispersĆ£o

Sintaxe BƔsica - Boxplot

Sintaxe BƔsica - Boxplot

Sintaxe BƔsica - Boxplot

Sintaxe BƔsica - Boxplot

Sintaxe BƔsica - Boxplot

Sintaxe BƔsica - Boxplot

Sintaxe BƔsica - Histograma

Sintaxe BƔsica - Histograma

Sintaxe BƔsica - Histograma

Sintaxe BƔsica - Histograma

Sintaxe BƔsica - Histograma

Sintaxe BƔsica - Histograma

Sintaxe BƔsica - Histograma

Sintaxe BƔsica - Histograma

dplyr

dplyr

  • O pacote dplyr Ć© utilizado para manipular dados

  • Foi lanƧado por Hadley Wickham, Romain FranƧois, Lionel Henry e Kirill MĆ¼ller em 2014

  • Segue as ideias principais do ggplot2: criar uma gramĆ”tica de anĆ”lise de dados, como se comandos fossem verbos e frases pudessem ser construĆ­das a partir deles

dplyr

  • Isto nos permite manipular dados para extrairmos informaƧƵes tĆ£o complexas quanto quisermos

  • O cĆ³digo utilizado para fazer estas manipulaƧƵes Ć©, em geral, mais limpo e enxuto do que os cĆ³digos tradicionais do R

  • CĆ³digo mais limpo Ć© mais fĆ”cil de ser auditado por outras pessoas e por nĆ³s mesmos no futuro, quando tivermos que procurar bugs

dplyr

  • O dplyr possui algumas funƧƵes bastante simples

  • Entretanto, quando combinadas, elas produzem uma infinidade de resultados diferentes

dplyr

  • Algumas destas funƧƵes sĆ£o as seguintes:
    • `select: seleciona variĆ”veis baseada em seus nomes (colunas)
    • filter: selecionas casos baseados em seus valores (linhas)
    • summarise: resume mĆŗltiplos valores a apenas um
    • arrange: muda a ordem das linhas
    • mutate: cria novas variĆ”veis em funĆ§Ć£o de outras jĆ” existentes

dplyr

  • Vamos ver como utilizar as funƧƵes select e filter

  • O funcionamento bĆ”sico delas nos ajudarĆ” a entender como utilizar as demais funƧƵes do pacote

  • Vamos utilizar o conjunto de dados gapminder para aprender a utilizar o dplyr

dplyr

dplyr

dplyr

dplyr

dplyr

dplyr

  • Embora os comandos isolados jĆ” sejam bastante Ćŗteis, o verdadeiro poder deles surge quando os combinamos

  • Utilizamos o comando %>%, chamado de pipe, para isto

  • Este comando serve para concatenar duas ou mais operaƧƵes no dplyr

dplyr

  • Por exemplo, se quisermos filtrar o paĆ­s Brazil e obter apenas as colunas ano e pibPerCapita, fazemos o seguinte:

dplyr

dplyr

dplyr

dplyr

  • A funĆ§Ć£o group_by permite agrupar observaƧƵes similares

  • Utilizada em conjunto com summarise_all, podemos calcular estatĆ­sticas sobre grupos

  • Por exemplo, se desejarmos calcular a mĆ©dia de cada variĆ”vel por continente:

dplyr

dplyr

  • A funĆ§Ć£o summarise permite que trabalhemos com apenas uma das colunas

  • AlĆ©m disso, nĆ£o Ć© necessĆ”rio ficar restrito a apenas uma estatĆ­stica

dplyr

dplyr

dplyr

dplyr

dplyr

  • Podemos usar a funĆ§Ć£o mutate para adicionar colunas ao conjunto de dados, realizando operaƧƵes sobre elas

  • Por exemplo, suponha que desejamos converter a coluna pibPerCapita para reais e padronizar as observaƧƵes de pibPerCapita apenas para o ano de 2007:

dplyr

Sintaxe AvanƧada

Sintaxe AvanƧada

  • JĆ” vimos como preparar alguns dos grĆ”ficos mais utilizados na estatĆ­stica

  • JĆ” aprendemos como utilizar o dplyr

  • A partir de agora veremos como sofisticar nossas anĆ”lises descritivas

  • Veremos diversos grĆ”ficos que combinam e remixam ideias jĆ” conhecidas

Sintaxe AvanƧada - Bubble Chart

Sintaxe AvanƧada - Bubble Chart

Sintaxe AvanƧada - Histograma Marginal

Sintaxe AvanƧada - Histograma Marginal

Sintaxe AvanƧada - GrƔfico de Ɓrea

Sintaxe AvanƧada - GrƔfico de Ɓrea

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Linha

Sintaxe AvanƧada - GrƔfico de Barra

Sintaxe AvanƧada - GrƔfico de Barra

Sintaxe AvanƧada - GrƔfico de Barra

Sintaxe AvanƧada - GrƔfico de Barra

Sintaxe AvanƧada - Dotplot + Boxplot

Sintaxe AvanƧada - Dotplot + Boxplot

Sintaxe AvanƧada - Violin Plot

Sintaxe AvanƧada - Violin Plot

Sintaxe AvanƧada - Violin Plot

Sintaxe AvanƧada - Violin Plot

ExercĆ­cios

ExercĆ­cios

  1. Eu preparei um conjunto de dados com todos os mais de 3 milhƵes de pedidos de reembolsos feitos por deputados federais brasileiros, originĆ”rios do nordeste, entre 2009 e 2018. Carregue este conjunto na memĆ³ria do R atravĆ©s do comando

Para ver a descriĆ§Ć£o do siginificado de cada coluna deste conjunto de dados, rode

ExercĆ­cios

  • Vamos utilizar os conhecimentos aprendidos neste curso para avaliar os gastos de nossos representantes no legislativo. Como os gastos de 2018 ainda nĆ£o foram finalizados, crie um objeto chamado reembolsos com os gastos entre 2009 e 2017.

ExercĆ­cios

  1. Encontre o nĆŗmero total de gastos dos deputados da ParaĆ­ba neste conjunto de dados utilizando a coluna state.

  2. Repita o exercĆ­cio anterior, mas agrupe os resultados por year.

  3. A coluna congressperson_name contĆ©m o nome dos deputados brasileiros. Descubra quais os 10 deputados da ParaĆ­ba que fizeram mais pedidos Ćŗnicos de reembolso no Ćŗltimo mandato (2015 a 2017), sem considerar o valor destes reembolsos.

ExercĆ­cios

  1. Utilize a coluna total_net_value e descubra os deputados da ParaĆ­ba que tiveram os maiores valores totais ressarcidos durante o atual mandato (2015 a 2017).

  2. Agrupe os gastos dos deputados do Brasil inteiro por partido (party). A partir disso, crie um grĆ”fico de linhas mostrando a evoluĆ§Ć£o dos gastos totais por partido entre 2009 e 2017.

  3. Crie um grƔfico de barras que exiba as categorias de gasto (subquota_description) que de acordo o total de reembolsos pedidos em 2017

ExercĆ­cios

  1. Dentro da coluna subquota_description, os gastos dos deputados com refeiƧƵes sĆ£o identificados como Congressperson meal. Encontre os restaurantes (supplier) com maiores pedidos mĆ©dios de reembolso feitos pelos deputados da ParaĆ­ba durante todo o perĆ­odo disponĆ­vel.

  2. Repita a anĆ”lise do item anterior, contando o nĆŗmero de gastos em cada local

  3. Repita a anƔlise anterior, mantendo no resultado final apenas os locais com 10 ou mais reembolsos