Atividade 3 - Visualização e manipulação de dados no R

A Unidade 3 é estruturada considerando os seguintes tópicos:

Esta atividade deverá ser realizada até dia 09/11, quando teremos nosso segundo encontro síncrono. São propostas as seguintes atividades:

  1. Faça o download do arquivo disponível no link
  2. Resolva as questões.
  3. Gere um tipo de documento .Rmd de sua preferência.
  4. Envie por email ( ou ) o arquivo .Rmd e o arquivo gerado.

A(s) entrega(s) será(ão):


A poluição por plástico é um problema importante e crescente, afetando negativamente a saúde dos oceanos e da vida selvagem. Our World in Data tem muitos dados em vários níveis, em escala global, por país e ao longo do tempo.

Para este laboratório, nos concentramos nos dados de 2010.

Além disso, a National Geographic realizou um concurso de comunicação de visualização de dados sobre resíduos plásticos, como visto aqui.

Objetivos de aprendizagem

Pacotes

Usaremos o pacote tidyverse* para esta análise. Execute o seguinte código no Console para carregar este pacote.

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.1.2
## Warning: package 'readr' was built under R version 4.1.2

Dados

O conjunto de dados para esta tarefa pode ser encontrado no link a seguir, acessado por meio do comando:

#url_file <- "atalho no seu computador/plastic-waste.csv"

#plastic_waste <- read_csv(url_file)

#library(readr)
plastic_waste <- read_csv("C:/Users/Fernando/Downloads/plastic-waste.csv")

View(plastic_waste)

As descrições das variáveis são as seguintes:

Warm up

Ao clicar no conjunto de dados no Ambiente, você poderá inspecioná-lo com mais cuidado. Alternativamente, você pode digitar View(plastic_waste) no Console para fazer isso.

View(plastic_waste)
select(plastic_waste, contains('NA') )
## # A tibble: 240 x 2
##    mismanaged_plastic_waste_per_cap mismanaged_plastic_waste
##                               <dbl>                    <dbl>
##  1                           NA                           NA
##  2                            0.032                    29705
##  3                            0.086                   520555
##  4                           NA                           NA
##  5                           NA                           NA
##  6                            0.045                    62528
##  7                            0.01                        52
##  8                            0.051                     1253
##  9                            0.026                   157777
## 10                           NA                           NA
## # ... with 230 more rows

Exercícios

Vamos começar dando uma olhada na distribuição de resíduos plásticos per capita em 2010.

ggplot(data = plastic_waste, aes(x = plastic_waste_per_cap)) +
  geom_histogram(binwidth = 0.2)
## Warning: Removed 51 rows containing non-finite values (stat_bin).

Um país se destaca como uma observação incomum no topo da distribuição.

Uma maneira de identificar este país é filtrar os dados para países onde os resíduos plásticos per capita são maiores que 3,5 kg/pessoa.

plastic_waste %>%
  filter(plastic_waste_per_cap > 3.5)
## # A tibble: 1 x 10
##   code  entity              continent  year gdp_per_cap plastic_waste_p~ mismanaged_plas~
##   <chr> <chr>               <chr>     <dbl>       <dbl>            <dbl>            <dbl>
## 1 TTO   Trinidad and Tobago North Am~  2010      31261.              3.6             0.19
## # ... with 3 more variables: mismanaged_plastic_waste <dbl>, coastal_pop <dbl>,
## #   total_pop <dbl>

Você esperava este resultado? Não seria um país esperado pelo senso comum

Você poderia considerar fazer alguma pesquisa sobre Trinidad e Tobago para ver por que os resíduos plásticos per capita são tão altos lá, ou se isto é um erro de dados. Entre os 30 maiores poluídores por habitante do mundo, dez são países do Caribe:Trinidad e Tobago, Antígua e Barbuda, São Cristóvão e Nevis, Guiana, Barbados, Santa Lúcia, Bahamas, Granada, Anguila e Aruba. Todos os anos, esses países geram mais detritos plásticos do que o peso de 20 mil ônibus espaciais.(Revista Época - 23 SET 2019

  1. Faça um histograma para a distribuição de resíduos plásticos per capita desagregados (facet) por continente. O que você pode dizer sobre como os continentes se comparam uns aos outros em termos de seus resíduos plásticos per capita?

Os continentes mais responsáveis por resíduos plásticos são a Ásia, a África, e os menos responsáveis são a América do Sul e Oceania. (Que bom que estamos na América do Sul! Ponto pra gente")

ggplot(data = plastic_waste, aes(x = plastic_waste_per_cap)) +
  geom_histogram() +
  facet_wrap(~ continent)

Outra forma de visualizar os dados numéricos é utilizando gráficos de densidade.

ggplot(data = plastic_waste, aes(x = plastic_waste_per_cap)) +
  geom_density()

E comparar as distribuições entre continentes por curvas de densidade de coloração por continente.

ggplot(data = plastic_waste, 
       mapping = aes(x = plastic_waste_per_cap, 
                     color = continent)) +
  geom_density()

O gráfico resultante pode ser um pouco difícil de ler, então vamos também preencher as curvas com cores.

ggplot(data = plastic_waste, 
       mapping = aes(x = plastic_waste_per_cap, 
                     color = continent, 
                     fill = continent)) +
  geom_density()

A sobreposição de cores torna difícil dizer o que está acontecendo com as distribuições nos continentes plotados devido a continentes plotados sobre eles.

Podemos mudar o nível de transparência da cor de preenchimento para ajudar nisso.

O argumento alpha recebe valores entre 0 e 1: 0 é completamente transparente e 1 é completamente opaco. Não há como dizer qual valor funcionará melhor, então você só precisa tentar alguns valores.

ggplot(data = plastic_waste, 
       mapping = aes(x = plastic_waste_per_cap, 
                     color = continent, 
                     fill = continent)) +
  geom_density(alpha = 0.5)

Isto ainda não parece ótimo…

  1. Recriar as parcelas de densidade acima usando um nível alpha diferente (inferior) que funcione melhor para exibir as curvas de densidade para todos os continentes.
ggplot(data = plastic_waste, 
       mapping = aes(x = plastic_waste_per_cap, 
                     color = continent, 
                     fill = continent)) +
  geom_density(alpha = 0.08)
  1. Descreva porque definimos a “cor” e “preenchimento” das curvas através do mapeamento estético do gráfico, mas definimos o nível “alpha” como uma característica da geometria de plotagem. Trata-se de uma opção estética para cada camada, onde o alpha definirá o nível de transparência na plotagem.

E ainda outra maneira de visualizar esta relação é utilizando gráficos boxplot.

ggplot(data = plastic_waste, 
       mapping = aes(x = continent, 
                     y = plastic_waste_per_cap)) +
  geom_boxplot()
  1. Converta os boxplot da tarefa anterior para plot de violino. O que os gráficos de violino revelam que os boxplot não revelam? Quais características são aparentes nas parcelas de box mas não nas parcelas de violino?

O gráfico de violino é a combinação do boxplot e a linha de densidade no mesmo dia- grama, permitindo visualizar detalhes que as duas técnicas sozinhas não seriam capaz de detectar [Hintze and Nelson 1998].

ggplot(data = plastic_waste, 
       mapping = aes(x = continent, 
                     y = plastic_waste_per_cap)) +
  geom_violin()
  1. Visualizar a relação entre os resíduos plásticos per capita e os resíduos plásticos mal administrados per capita usando um gráfico de dispersão. Descrever a relação.

Relação linear de distribuição entre resíduos plásticos per capita e os resíduos plásticos mal administrados per capita.

  1. Colorir os pontos no gráfico de dispersão por continente. Parece haver alguma distinção clara entre continentes com relação a como os resíduos plásticos per capita e os resíduos plásticos mal administrados per capita estão associados?

    América do norte e Europa parecem possuir relação mais dispersa e menos linear que outros continentes. Aplicando a regressão parece que apenas a Oceania possui uma tendência de queda.

  2. Visualize a relação entre os resíduos plásticos per capita e a população total, assim como os resíduos plásticos per capita e a população costeira. Você precisará fazer duas parcelas separadas. Algum destes pares de variáveis parece estar associado de forma mais linear?

    Pra mim não parecem ser muito diferentes.

plastic_waste %>% 
  ggplot(aes(x = mismanaged_plastic_waste_per_cap, y = plastic_waste_per_cap, color = continent)) + 
    geom_point() +
    scale_color_viridis_d() +
    labs(x = "Resíduos plásticos mal administrados per capita", 
         y = "Resíduos plásticos per capita", 
         color = "Continente",
         title = "Resíduos plásticos per capita e os resíduos plásticos mal administrados per capita",
         subtitle = "por continente") +  geom_smooth(method="lm")
    theme_minimal()
plastic_waste %>% 
  ggplot(aes(x = coastal_pop, y = plastic_waste_per_cap, color = continent)) + 
    geom_point() +
    scale_color_viridis_d() +
    labs(x = "Resíduos plásticos mal administrados per capita", 
         y = "Resíduos plásticos per capita", 
         color = "Continente",
         title = "Resíduos plásticos per capita e os resíduos plásticos mal administrados per capita",
         subtitle = "por continente") 
    theme_minimal()
plastic_waste %>% 
  ggplot(aes(x = total_pop, y = plastic_waste_per_cap, color = continent)) + 
    geom_point() +
    scale_color_viridis_d() +
    labs(x = "Resíduos plásticos mal administrados per capita", 
         y = "Resíduos plásticos per capita", 
         color = "Continente",
         title = "Resíduos plásticos per capita e os resíduos plásticos mal administrados per capita",
         subtitle = "por continente") +
    theme_minimal()
  1. Recrie o seguinte gráfico e interprete o que você vê no contexto dos dados.

O resíduo plástico per capita aumenta conforme inicialmente aumenta a população. Contudo, conforme indicado para alguns continentes, quando algum nível populacional é antingido, ocorrem oscilações na quantidade de resíduo plástico per capita.