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:
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.
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.