Parte 1 - Análise exploratória

Questão 1. Faça uma análise exploratória dos dados investivando a relação entre variáveis seguindo as ideias apresentadas em https://r4ds.had.co.nz/exploratory-data-analysis.html para:

  1. Uma variável categórica e um contínua (ou discreta com muitas opções);
  2. Duas variáveis categoricas;
  3. Duas variáveis contínuas.

Basta usar um tipo de gráfico em cada caso e fazer para apenas duas variáveis, mas escolha o gráfico que se adapte melhor aos dados escolhidos.


Resolução

ASMA = read.csv("asthma_disease_data.csv")
library('dplyr')
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library('ggplot2')
library('plotly')
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library('gapminder')
library('ggiraph')
library(gganimate)
library(gapminder)
library(gifski)
ggplot(data = ASMA, mapping = aes(x = LungFunctionFVC, y = after_stat(density))) +   geom_freqpoly(mapping = aes(color = factor(Diagnosis)))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

O gráfico leva em consideração o máximo de volume em litros que pode ser exalado de forma forçada em 3 testes de exalação forçada em pacientes com o diagnóstico de asma (1) e em pacientes não asmáticos (0) em função da densidade. Pode-se perceber que não há correlação direta entre as variáveis, nota-se até que grande parte dos pacientes asmáticos conseguiram exalar quase 6 litros de ar, umm sinal de que os pulmões estão em bom funcionamento.

ggplot(data = ASMA, mapping = aes(x = factor(Diagnosis), fill = factor(FamilyHistoryAsthma))) + geom_bar(position = "fill")

É possível notar que o histórico familiar do indivíduo não influência nas suas chances de ter asma, ou seja, não há correlação.

Continua <- ggplot(data = ASMA) + geom_bin2d(mapping = aes(x = LungFunctionFEV1, y = LungFunctionFVC)) + theme_light()
Continua

Já quando feita a comparação entre o máximo volume de ar em litros que pode ser exalado de forma forçada pelos pulmões dos pacientes em apenas 1 segundo (FEV1) e em 3 testes de exalação forçada (FVC) também notamos a ausência de correlação entre as variáveis.


Parte 2 - Gráficos interativos e extensões

Questão 1. Faça um gráfico interativo (um para cada) usando cada um dos pacotes a seguir: ggiraph, plotly e gganimate. Escolha as variáveis e o gráfico que achar mais interessante.

Resolução

grafico <- ggplot(ASMA, aes(x = PhysicalActivity, y = SleepQuality, colour = as.factor(Smoking))) +
  geom_point(show.legend = TRUE, alpha = 0.7)

anima <- grafico + transition_time(Age)

animate(anima, nframes = 312, renderer = gifski_renderer("gif1.gif"), duration = 2)

d <- ASMA[sample(nrow(ASMA), 1000), ]
p <- ggplot(data = d, aes(x = PhysicalActivity, y = BMI)) +
geom_point() + geom_smooth(aes(colour = Diagnosis, fill = Diagnosis)) + facet_wrap(~ Diagnosis)
ggplotly(p)
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Grafico_pontos <- ggplot(ASMA) + geom_point_interactive(aes(x = BMI, y = PhysicalActivity, color = Diagnosis, tooltip = SleepQuality )) + theme_minimal()
girafe(ggobj = Grafico_pontos)
grafico_pontos_foco <- ggplot(ASMA, aes(x = BMI, y = PhysicalActivity, color = Diagnosis))
plot_foco <- grafico_pontos_foco + geom_point_interactive(aes(tooltip = SleepQuality), size = 2)

Nessa parte fizemos 3 gráficos iterativos diferentes para que pudessemos analisar a possível relaçao entre as variáveis disponíveis no banco de dados, porém em nenhum dos 3 gráficos nota-se a correlação entre as variáveis.

Questão 2. Faça três gráficos (ao total) utilizando funções dos pacotes ggcharts, ggside, ggforce, ggpubr e/ou ggpp. Podem escolher algum dos gráficos apresentados nos slides ou algum outro que esteja disponibilizado nos pacotes, mas o gráfico deve trazer alguma novidade se comparado aos gráficos disponíveis no ggplot2.


Resolução

library(ggpubr)
head(ASMA, 4)
ggviolin(ASMA, x = "EducationLevel", y = "Smoking", fill = "EducationLevel",
         palette = c("#F8766d", "#00Bfc4", "#c77cff", "#619cff"),
         add = "boxplot", add.params = list(fill = "white"))

Gráfico de fumantes (1) e não fumantes (0) em função da escolaridade, onde 0 = Nenhum, 1=Ensino médio, 2= Bacharel, 3= Maiores títulos.

library(ggplot2)
library(ggside)
## Registered S3 method overwritten by 'ggside':
##   method from   
##   +.gg   ggplot2
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.1
## ✔ readr     2.1.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ plotly::filter() masks dplyr::filter(), stats::filter()
## ✖ dplyr::lag()     masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
ggplot(ASMA, aes(Age, factor(Smoking), colour = factor(Diagnosis))) + 
  geom_point(size = 2) +
  geom_xsidedensity(aes(y = after_stat(density)), position = "stack") +
  geom_ysidedensity(aes(x = after_stat(density)), position = "stack") +
  theme(axis.text.x = element_text(angle = 90, vjust = .5))

Gráfico do hábito de fumar em função da idade, onde os pontos vermelhos indicam pacientes sem asma e pontos azuis indicam pacientes asmáticos. Percebemos por este gráfico que entre os pacientes com asma o hábito de fumar é menos frequente do que em pacientes que não possuem a doença.

library(ggpp)
## Registered S3 methods overwritten by 'ggpp':
##   method                  from   
##   heightDetails.titleGrob ggplot2
##   widthDetails.titleGrob  ggplot2
## 
## Attaching package: 'ggpp'
## The following objects are masked from 'package:ggpubr':
## 
##     as_npc, as_npcx, as_npcy
## The following object is masked from 'package:ggplot2':
## 
##     annotate
library(ggrepel)


p <- ggplot(ASMA, aes(factor(HayFever), Age, colour = factor(HayFever))) +
  stat_boxplot() +
  labs(y = NULL, x = "Rinite Alergica") +
  theme_bw(9) + theme(legend.position = "none")

ggplot(ASMA, aes(factor(Diagnosis), Age, colour = factor(HayFever))) +
  geom_point(show.legend = FALSE) +
  annotate("plot_npc", npcx = "left", npcy = "bottom", label = p) +
  expand_limits(y = 0, x = 0)

Gráficos onde podemos ver como o diagnóstico de rinite alérgica se dá nos pacientes com e sem asma ao longo dos anos. Percebemos que não existe correlação entre as variáveis.