read_csv(here::here("data/clima_cg_jp-semanal.csv"),
col_types = "cTdddddd") -> climas
climas %>%
glimpse()
## Observations: 2,748
## Variables: 8
## $ cidade <chr> "Campina Grande", "Campina Grande", "Campina Grande", "Campina…
## $ semana <dttm> 1992-12-27, 1993-01-03, 1993-01-10, 1993-01-31, 1993-02-07, 1…
## $ tmedia <dbl> 26.13333, 26.11905, 25.76667, 25.74000, 26.31429, 26.28571, 26…
## $ tmax <dbl> 30.4, 32.4, 32.2, 32.0, 32.7, 32.7, 32.3, 32.3, 32.1, 31.2, 32…
## $ tmin <dbl> 20.7, 19.3, 19.7, 19.9, 19.6, 20.0, 20.4, 21.2, 19.0, 19.0, 19…
## $ chuva <dbl> 0.0, 0.0, 0.0, 0.4, 0.3, 0.0, 4.9, 0.0, 0.0, 6.1, 0.4, 1.2, 0.…
## $ mes <dbl> 12, 1, 1, 1, 2, 2, 2, 2, 10, 11, 11, 11, 11, 12, 12, 12, 12, 1…
## $ ano <dbl> 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 19…
colors <- c("Mediana" = "darkblue", "Média" = "darkred")
climas %>%
ggplot(aes(cidade, tmax)) +
geom_jitter(alpha = 0.15) +
stat_summary(aes(color="Mediana"),
fun.y = median, fun.ymin = median, fun.ymax = median,
geom = "crossbar", width = 0.5) +
stat_summary(aes(color="Média"),
fun.y = mean, fun.ymin = mean, fun.ymax = mean,
geom = "crossbar", width = 0.5) +
scale_color_manual(values = colors) +
scale_y_continuous(limits = c(0, 40)) +
labs(y="Temperaturas Máximas (°C)", x="Cidade")
climas %>%
group_by(cidade) %>%
summarise(mean = mean(tmax),
sd = sd(tmax),
median = median(tmax),
mad = mad(tmax)) %>%
ungroup()
Como já indicado no gráfico de dispersão existe pouca diferença em termos de mediana e média, a média e mediana de João Pessoa está acima porém em menos de 1 grau Celsius.
As temperaturas máximas de Campina Grande possuem mais variação
climas %>%
ggplot(aes(cidade, tmax)) +
geom_boxplot() +
scale_y_continuous(limits = c(0, 40)) +
labs(y="Temperaturas Máximas (°C)", x="Cidade")
climas %>%
ggplot(aes(tmax, ..density..,
group=cidade,
fill=cidade)) +
geom_histogram(binwidth = 0.25,
color="black",
alpha=.4,
position="identity") +
scale_x_continuous(breaks = seq(0, max(climas$tmax) + 5, 1)) +
labs(x="Temperatura Máxima (°C)", y="Densidade de Frequência")
Em termos de temperatura máxima não é claro qual cidade é mais quente
colors <- c("Mediana" = "darkblue", "Média" = "darkred")
climas %>%
ggplot(aes(cidade, tmin)) +
geom_jitter(alpha = 0.15) +
stat_summary(aes(color="Mediana"),
fun.y = median, fun.ymin = median, fun.ymax = median,
geom = "crossbar", width = 0.5) +
stat_summary(aes(color="Média"),
fun.y = mean, fun.ymin = mean, fun.ymax = mean,
geom = "crossbar", width = 0.5) +
scale_color_manual(values = colors) +
scale_y_continuous(limits = c(0, 40)) +
labs(y="Temperaturas Mínimas (°C)", x="Cidade")
climas %>%
group_by(cidade) %>%
summarise(mean = mean(tmin),
sd = sd(tmin),
median = median(tmin),
mad = mad(tmin)) %>%
ungroup()
Em termos de mediana e média as temperaturas mínimas de João Pessoa estão 3°C acima das de Campina Grande.
Existe mais dispersão nas temperaturas mínimas de João Pessoa.
climas %>%
ggplot(aes(cidade, tmin)) +
geom_boxplot() +
scale_y_continuous(limits = c(0, 40)) +
labs(y="Temperaturas Mínimas (°C)", x="Cidade")
climas %>%
ggplot(aes(tmin, ..density..,
group=cidade,
fill=cidade)) +
geom_histogram(binwidth = 0.5,
color="black",
alpha=.4,
position="identity") +
scale_x_continuous(breaks = seq(0, max(climas$tmin) + 5, 1)) +
labs(x="Temperatura Minima (°C)", y="Densidade de Frequência")
No período considerado, as temperaturas mínimas de João Pessoa são mais altas que as de Campina Grande.
colors <- c("Mediana" = "darkblue", "Média" = "darkred")
climas %>%
ggplot(aes(cidade, tmedia)) +
geom_jitter(alpha = 0.15) +
stat_summary(aes(color="Mediana"),
fun.y = median, fun.ymin = median, fun.ymax = median,
geom = "crossbar", width = 0.5) +
stat_summary(aes(color="Média"),
fun.y = mean, fun.ymin = mean, fun.ymax = mean,
geom = "crossbar", width = 0.5) +
scale_color_manual(values = colors) +
scale_y_continuous(limits = c(0, 40)) +
labs(y="Temperaturas Médias (°C)", x="Cidade")
climas %>%
group_by(cidade) %>%
summarise(mean = mean(tmedia),
sd = sd(tmedia),
median = median(tmedia),
mad = mad(tmedia)) %>%
ungroup()
Em termos de mediana e média as temperaturas médias de João Pessoa estão 3°C acima das de Campina Grande.
Existe mais dispersão nas temperaturas médias de Campina Grande.
climas %>%
ggplot(aes(cidade, tmedia)) +
geom_boxplot() +
scale_y_continuous(limits = c(0, 40)) +
labs(y="Temperaturas Médias (°C)", x="Cidade")
climas %>%
ggplot(aes(tmedia, ..density..,
group=cidade,
fill=cidade)) +
geom_histogram(binwidth = 0.5,
color="black",
alpha=.4,
position="identity") +
scale_x_continuous(breaks = seq(0, max(climas$tmedia) + 5, 1)) +
labs(x="Temperatura Média (°C)", y="Densidade de Frequência")
No período considerado, as temperaturas médias de João Pessoa são mais altas que as de Campina Grande.
No período considerado, não existe diferença clara entre as temperaturas máximas de João Pessoa e Campina Grande.
No período considerado as temperaturas mínimas de João Pessoa são mais altas que as de Campina Grande.
No período considerado as temperaturas médias de João Pessoa são mais altas que as de Campina Grande.
No período considerado, João Pessoa é a cidade mais quente
Um quinquênio inclui 5 anos:
climas %>%
filter(cidade == "Campina Grande") %>%
mutate(month = month(semana),
day = day(semana),
quinquennium = ano - ano %% 5) %>%
filter((day >= 20 & month == 7) |
(month == 8) |
(day <= 20 & month == 9)) -> climas_inverno
climas_inverno %$%
ano %>%
unique() %>%
sort()
## [1] 1995 1996 1997 1998 1999 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
## [16] 2011 2012 2013 2014 2015 2016 2017 2018
climas_inverno %$%
ano %>%
unique() %>%
sort() %>%
setdiff(seq(1995, 2019, 1), .)
## [1] 2000 2019
climas_inverno %$%
quinquennium %>%
unique() %>%
sort()
## [1] 1995 2000 2005 2010 2015
climas_inverno %>%
mutate(month = as.factor(month),
day = as.factor(day),
ano = as.factor(ano),
quinquennium = as.factor(quinquennium)) -> climas_inverno
climas_inverno %>%
ggplot(aes(quinquennium, tmax)) +
stat_summary(aes(color="Mediana"),
fun.y = median, fun.ymin = median, fun.ymax = median,
geom = "crossbar", width = 0.5) +
stat_summary(aes(color="Média"),
fun.y = mean, fun.ymin = mean, fun.ymax = mean,
geom = "crossbar", width = 0.5) +
geom_jitter(alpha = 0.35) +
scale_color_manual(values = colors) +
scale_y_continuous(limits = c(25, 35)) +
labs(y="Temperaturas Máximas (°C)", x="Quinquênio")
## Warning: Removed 1 rows containing missing values (geom_point).
No quinquênio de 2005 a média e mediana das temperaturas máximas decresceu em relação ao quinquênio de 2000.
No quinquênio de 2015 a média e mediana das temperaturas máximas cresceu em relação ao quinquênio de 2010.
climas_inverno %>%
mutate(quinquennium = as.numeric(levels(quinquennium))[quinquennium]) %>%
ggplot(aes(quinquennium, tmax)) +
geom_jitter(alpha = 0.35) +
geom_smooth(method = 'loess', formula = 'y ~ x') +
labs(y="Temperaturas Máximas (°C)", x="Quinquênio") +
scale_y_continuous(limits = c(25, 35)) +
scale_x_continuous(breaks=seq(1995, 2015, 5))
## Warning: Removed 1 rows containing missing values (geom_point).
climas_inverno %>%
group_by(quinquennium) %>%
summarise(mean = mean(tmax),
sd = sd(tmax),
median = median(tmax),
mad = mad(tmax)) %>%
ungroup()
climas_inverno %>%
mutate(ano = as.factor(ano)) %>%
ggplot(aes(quinquennium, tmax)) +
geom_boxplot() +
scale_y_continuous(limits = c(25, 35)) +
labs(y="Temperaturas Máximas (°C)", x="Quinquênio")
No quinquênio de 2005 os quartis das temperaturas máximas decresceu em relação ao quinquênio de 2000.
No quinquênio de 2015 os quartis das temperaturas máximas cresceu em relação ao quinquênio de 2010.
climas_inverno %>%
mutate(ano = as.factor(ano)) %>%
ggplot(aes(tmax)) +
geom_density(alpha = .3) +
facet_wrap(~ quinquennium) +
labs(x="Temperaturas Máximas (°C)", y="Densidade de Frequência")
Distribuição de temperaturas máximas no quinquênio de 2005 e 2010 assimétrica à direita (valores mais baixos foram mais frequentes).
Distribuição de temperaturas máximas no quinquênio de 2015 assimétrica à esquerda (valores mais altos foram mais frequentes).
A simetria das distribuição está de acordo com os resultados em termos de boxplot e scatterplot:
No quinquênio de 2005 e 2010 as temperaturas máximas decresceram e no quinquênnio de 2015 as temperaturas máximas cresceram novamente.
climas_inverno %>%
ggplot(aes(quinquennium, tmin)) +
stat_summary(aes(color="Mediana"),
fun.y = median, fun.ymin = median, fun.ymax = median,
geom = "crossbar", width = 0.5) +
stat_summary(aes(color="Média"),
fun.y = mean, fun.ymin = mean, fun.ymax = mean,
geom = "crossbar", width = 0.5) +
geom_jitter(alpha = 0.35) +
scale_color_manual(values = colors) +
scale_y_continuous(limits = c(10, 25)) +
labs(y="Temperaturas Mínimas (°C)", x="Quinquênio")
climas_inverno %>%
mutate(quinquennium = as.numeric(levels(quinquennium))[quinquennium]) %>%
ggplot(aes(quinquennium, tmin)) +
geom_jitter(alpha = 0.35) +
geom_smooth(method = 'loess', formula = 'y ~ x') +
labs(y="Temperaturas Mínimas (°C)", x="Quinquênio") +
scale_y_continuous(limits = c(10, 25)) +
scale_x_continuous(breaks=seq(1995, 2015, 5))
climas_inverno %>%
group_by(quinquennium) %>%
summarise(mean = mean(tmin),
sd = sd(tmin),
median = median(tmin),
mad = mad(tmin)) %>%
ungroup()
Os valores das médias e das medianas são muito similares
climas_inverno %>%
mutate(ano = as.factor(ano)) %>%
ggplot(aes(quinquennium, tmin)) +
geom_boxplot() +
scale_y_continuous(limits = c(10, 25)) +
labs(y="Temperaturas Mínimas (°C)", x="Quinquênio")
climas_inverno %>%
mutate(ano = as.factor(ano)) %>%
ggplot(aes(tmin)) +
geom_density(alpha = .3) +
facet_wrap(~ quinquennium) +
labs(x="Temperaturas Mínimas (°C)", y="Densidade de Frequência")
Não existe uma diferença clara ao longo dos quinquênios em termos de temperaturas mínimas.
climas_inverno %>%
ggplot(aes(quinquennium, tmedia)) +
stat_summary(aes(color="Mediana"),
fun.y = median, fun.ymin = median, fun.ymax = median,
geom = "crossbar", width = 0.5) +
stat_summary(aes(color="Média"),
fun.y = mean, fun.ymin = mean, fun.ymax = mean,
geom = "crossbar", width = 0.5) +
geom_jitter(alpha = 0.35) +
scale_color_manual(values = colors) +
scale_y_continuous(limits = c(15, 30)) +
labs(y="Temperaturas Médias (°C)", x="Quinquênio")
climas_inverno %>%
mutate(quinquennium = as.numeric(levels(quinquennium))[quinquennium]) %>%
ggplot(aes(quinquennium, tmedia)) +
geom_jitter(alpha = 0.35) +
geom_smooth(method = 'loess', formula = 'y ~ x') +
labs(y="Temperaturas Médias (°C)", x="Quinquênio") +
scale_y_continuous(limits = c(15, 30)) +
scale_x_continuous(breaks=seq(1995, 2015, 5))
climas_inverno %>%
group_by(quinquennium) %>%
summarise(mean = mean(tmedia),
sd = sd(tmedia),
median = median(tmedia),
mad = mad(tmedia)) %>%
ungroup()
climas_inverno %>%
mutate(ano = as.factor(ano)) %>%
ggplot(aes(quinquennium, tmedia)) +
geom_boxplot() +
scale_y_continuous(limits = c(0, 30)) +
labs(y="Temperaturas Médias (°C)", x="Quinquênio")
climas_inverno %>%
ggplot(aes(tmedia)) +
geom_density(alpha = .3) +
facet_wrap(~ quinquennium) +
labs(x="Temperaturas Médias (°C) por Quinquênios", y="Densidade de Frequência")
É possível perceber uma baixa nas temperaturas médias nos quinquênios de 2005 e 2010.
Considerando temperaturas máximas e temperaturas médias nos quinquênios de 2005 e 2010, os invernos foram mais quentes
climas %>%
filter(cidade == 'Campina Grande') %>%
ggplot(aes(x = ano, y = chuva, group = ano)) +
geom_boxplot(alpha = .4, fill = "salmon") +
scale_x_continuous(breaks=seq(min(climas$ano), max(climas$ano), 1)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
O IQR dos anos da década de 2010 está visivelmente menor do que o IQR dos anos da década de 2000. Como o 25-percentil está sempre bem próximo de zero devido à natureza da métrica sendo observada. Isso nos leva ao entendimento que essa última década teve um volume de chuvas reduzido em relação a anterior.
Alguns dos anos, como 2011 e 2004 possuem muitos outliers particularmente altos (exemplos pontuais de chuva semanal particularmente altos).
climas %>%
filter(cidade == 'Campina Grande') %>%
group_by(ano) %>%
summarise(mean = mean(chuva),
sd = sd(chuva),
median = median(chuva),
mad = mad(chuva)) %>%
ungroup() %>%
arrange(-sd)
Agora que temos uma direção, desejamos uma visualização que nos indique o volume de chuvas durante a semana mais claramente.
climas %>%
filter(cidade == "Campina Grande") %>%
ggplot(aes(ano, chuva)) +
geom_count() +
geom_smooth(method = 'loess', formula = 'y ~ x') + # Utilizamos essa regressão polinomial para estudar o comportamento dos dados
scale_x_continuous(breaks=seq(min(climas$ano), max(climas$ano), 1)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
labs(y = "Volume de Chuvas Semanais", x = "Ano")
climas %>%
filter(cidade == "Campina Grande") %>%
group_by(ano) %>%
summarise(chuva = sum(chuva)) %>%
ungroup() %>%
ggplot(aes(ano, chuva)) +
geom_jitter() +
geom_smooth(method = 'loess', formula = 'y ~ x') + # Utilizamos essa regressão polinomial para estudar o comportamento dos dados
scale_x_continuous(breaks=seq(min(climas$ano), max(climas$ano), 1)) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
labs(y = "Volume de Chuva", x = "Ano")
Não. De acordo com os dados disponíveis, observamos que há um aumento do volume de chuvas até o período compreendido pelos anos 2008 e 2009. Somente depois desse período observamos uma diminuição no volume de chuvas.