Boxplots do nível de água (em metros) do Rio Negro (Amazonas)
Importando o pacote
library(amazonasdatahub)
Boxplots do nível de água (em metros) do Rio Negro (Amazonas)
Com os dados do nível de água e ano do rionegro_amazonas, uma das
análises que podem ser feitas é a dos boxplots no decorrer dos anos.
Utilizaremos o ggplot2 para fazer esse gráfico.
require(ggplot2)
require(dplyr)
rionegro_amazonas %>%
ggplot(aes(x = year, y = level_m, group = year)) +
stat_boxplot(geom = "errorbar") +
geom_boxplot() +
theme_minimal() +
labs(
x = "Ano",
y = "Nível do rio (m)"
)

Code
require(dplyr)
require(ggplot2)
# Filtrando datas para o segundo semestre de 2010
rionegro_amazonas_2010_02 <- rionegro_amazonas %>%
filter(date >= "2010-06-01" & date <= "2010-12-31")
# Visualização Gráfica
rionegro_amazonas_2010_02 %>%
ggplot(., aes(x = date, y = level_m)) +
geom_line(size = 1L, colour = "#006994") +
geom_hline(
aes(
yintercept = mean(rionegro_amazonas_2010_02$level_m),
color = "Média"
),
linetype = "dashed",
size = 1
) +
geom_hline(
aes(
yintercept = min(rionegro_amazonas_2010_02$level_m),
color = "Mínimo"
),
linetype = "dotted",
size = 1
) +
geom_hline(
aes(
yintercept = max(rionegro_amazonas_2010_02$level_m),
color = "Máximo"
),
linetype = "dotted",
size = 1
) +
scale_color_manual(
name = "Estatísticas",
values = c(
"Média" = "orange",
"Mínimo" = "red",
"Máximo" = "green"
)) +
scale_x_date(
date_breaks = "1 month"
) +
theme_light() +
theme(
plot.title = element_text(face = "bold", size = 16)
) +
labs(
x = "Ano",
y = "Nível do rio em metros",
title = "Nível do Rio Negro do 2º semestre de 2010"
)

Dados faltantes e outliers
Parte do trabalho do Estatístico é identificar e encontrar certos erros e incoerências nos dados. Vejamos que o gráfico acima mostra que o nível do Rio Negro em metros esteve em 0. Isso é estranho e incomum, pois indicaria que o rio secou totalmente.
Podemos concluir que esses valores “0”, vistos no gráfico dos Boxplots, correspondem a dados ausentes (NA), os quais foram preenchidos com o valor zero. Iremos substituir esses valores zero por NAs.
require(tidyr)
rionegro_amazonas_2010_02 <- rionegro_amazonas_2010_02 %>%
mutate(
level_m = case_when(
date == "2010-08-07" ~ NA_real_,
date == "2010-12-22" ~ NA_real_,
TRUE ~ as.numeric(level_m)
),
increase_decrease_cm = case_when(
date == "2010-08-07" ~ NA_real_,
date == "2010-12-22" ~ NA_real_,
TRUE ~ as.numeric(increase_decrease_cm)
)
)
Tratamento de Valores Faltantes (NA)
Agora que definimos os valores faltantes, podemos escolher um método para tratá-los. Nesse exemplo, usaremos o Foward-Fill, mas encorajamos você a pesquisar e tentar utilizar outros métodos para aprender diferentes formas de tratamentos de valores faltantes.
require(tidyr)
rionegro_amazonas_2010_02 <- rionegro_amazonas_2010_02 %>%
fill(level_m, increase_decrease_cm)
Com os dados tratados, podemos refazer o gráfico e visualizar o nível do Rio Negro.
Visualização Gráfica do nível Rio Negro (2010/2)
Code
require(dplyr)
require(ggplot2)
# Visualização Gráfica
rionegro_amazonas_2010_02 %>%
ggplot(., aes(x = date, y = level_m)) +
geom_line(size = 1L, colour = "#006994") +
geom_hline(
aes(
yintercept = mean(rionegro_amazonas_2010_02$level_m),
color = "Média"
),
linetype = "dashed",
size = 1
) +
geom_hline(
aes(
yintercept = min(rionegro_amazonas_2010_02$level_m),
color = "Mínimo"
),
linetype = "dotted",
size = 1
) +
geom_hline(
aes(
yintercept = max(rionegro_amazonas_2010_02$level_m),
color = "Máximo"
),
linetype = "dotted",
size = 1
) +
scale_color_manual(
name = "Estatísticas",
values = c(
"Média" = "orange",
"Mínimo" = "red",
"Máximo" = "green"
)) +
scale_x_date(
date_breaks = "1 month"
) +
theme_light() +
theme(
plot.title = element_text(face = "bold", size = 16)
) +
labs(
x = "Ano",
y = "Nível do rio em metros",
title = "Nível do Rio Negro (ajustado) do 2º semestre de 2010"
)

Portanto, é notável que o tratamento desses valores outliers, que foram considerados faltantes fez toda diferença na conclusão sobre os dados do nível do Rio Negro.