De início, podemos checar a distribuição da temperatura máxima das duas cidades, para entender qual tem a temperatura mais quente.
# Gráfico 1.1
climas %>%
ggplot(aes(x=cidade, y=tmax, color=cidade)) +
geom_point() +
ggtitle("1.1 - Gráfico de dispersão da temperatura máxima por cidade") +
ylab("Temperatura Máxima (ºC)") + xlab("Cidade")
# Gráfico 1.2
climas %>%
ggplot(aes(x=tmax, fill=cidade)) +
geom_density(alpha=0.7) +
ggtitle("1.2 - Histograma com a distribuição da temperatura máxima por cidade") +
xlab("Temperatura Máxima (ºC)") + ylab("Densidade")
# Gráfico 1.3
climas %>%
ggplot(aes(y=tmax)) +
geom_boxplot(fill="slateblue", alpha=0.4) +
facet_wrap(~ cidade) +
ggtitle("1.3 - Boxplot com a distribuição da temperatura máxima por cidade") +
ylab("Temperatura Máxima (ºC)") + xlab("Cidade")
# Cálculo do Q3 e da maior temperatura máxima por cidade
climas %>%
group_by(cidade) %>%
summarise(
quartil3 = quantile(tmax, 0.75),
temperatura_max = max(tmax),
.groups = "drop"
)
## # A tibble: 2 × 3
## cidade quartil3 temperatura_max
## <chr> <dbl> <dbl>
## 1 Campina Grande 32 34.6
## 2 João Pessoa 31.4 33.7
Podemos percerber nos gráficos 1.1 e 1.3 que Campina Grande (CG) possui uma maior variação na temperatura máxima que João Pessoa (JP), tanto possuindo as menores temperaturas máximas como as maiores. Tanto o terceiro quartil como a maior temperatura máxima são de Campina Grande.
Agrupando a temperatura máxima por mês e destacando os meses de janeiro e fevereiro, temos:
# Gráfico 1.4
climas %>%
group_by(mes) %>%
ggplot(aes(x=mes, y=tmax, group=mes)) +
geom_boxplot(fill="slateblue", alpha=0.4) +
scale_x_continuous(
breaks=seq(1, 12),
labels=meses
) +
facet_wrap(~ cidade) +
gghighlight(mes == 1 | mes == 2, use_group_by = FALSE, unhighlighted_params = list(linewidth = 1, fill = alpha("#9f95df", 0.4)), calculate_per_facet = TRUE) +
ggtitle("1.4 - Boxplot com a distribuição da temperatura máxima para cada mês") +
ylab("Temperatura Máxima (ºC)") + xlab("Mês")
# Cálculo da média e mediana da temperatura máxima por cidade para os meses de jan. e fev.
climas %>%
filter(mes == 1 | mes == 2) %>%
group_by(cidade, mes) %>%
summarise(tmax_median = median(tmax), tmax_mean = mean(tmax), .groups = "drop")
## # A tibble: 4 × 4
## cidade mes tmax_median tmax_mean
## <chr> <dbl> <dbl> <dbl>
## 1 Campina Grande 1 32.1 31.9
## 2 Campina Grande 2 32.0 31.8
## 3 João Pessoa 1 31.4 31.4
## 4 João Pessoa 2 31.6 31.6
O gráfico 1.4 mostra que Campina Grande atinge maiores temperaturas máximas nesses meses, embora a diferença não seja grande. A mediana da temperatura máxima de CG é por volta de 32 ºC nos dois meses, enquanto que João Pessoa é por volta de 31,5 ºC.
Como para esse tipo de comparativo também é interessante considerar a temperatura média, podemos construir as mesmas análises mas para a temperatura média das duas cidades.
# Gráfico 1.5
climas %>%
ggplot(aes(x=cidade, y=tmedia, color=cidade)) +
geom_point() +
ggtitle("1.5 - Gráfico de dispersão da temperatura média por cidade") +
ylab("Temperatura Média (ºC)") + xlab("Cidade")
# Gráfico 1.6
climas %>%
ggplot(aes(x=tmedia, fill=cidade)) +
geom_density(alpha=0.7) +
ggtitle("1.6 - Histograma com a distribuição da temperatura média por cidade") +
xlab("Temperatura Média (ºC)") + ylab("Densidade")
# Gráfico 1.7
climas %>%
ggplot(aes(y=tmedia)) +
geom_boxplot(fill="slateblue", alpha=0.4) +
facet_wrap(~ cidade) +
ggtitle("1.7 - Boxplot com a distribuição da temperatura média por cidade") +
ylab("Temperatura Média (ºC)") + xlab("Cidade")
# Cálculo do Q3 e da máxima temperatura média por cidade
climas %>%
group_by(cidade) %>%
summarise(
quartil3 = quantile(tmedia, 0.75),
temperatura_media_max = max(tmedia),
.groups = "drop"
)
## # A tibble: 2 × 3
## cidade quartil3 temperatura_media_max
## <chr> <dbl> <dbl>
## 1 Campina Grande 25.9 28.6
## 2 João Pessoa 28.6 30.1
O gráfico 1.5 mostra que as maiores temperaturas médias são de João Pessoa, com uma temperatura média máxima de 30 ºC, aproximadamente 1,5 ºC maior que a de Campina Grande. Além disso, os boxplots do gráfico 1.7 mostram como até o Q1 da temperatura média de João pessoa é maior que o Q3 de Campina Grande. Isto é, aprox. 75% das temperaturas médias de JP são maiores que as 75% menores temperaturas médias de CG.
# Gráfico 1.8
climas %>%
group_by(mes) %>%
ggplot(aes(x=mes, y=tmedia, group=mes)) +
geom_boxplot(fill="slateblue", alpha=0.4) +
scale_x_continuous(
breaks=seq(1, 12),
labels=meses
) +
facet_wrap(~ cidade) +
gghighlight(mes == 1 | mes == 2, use_group_by = FALSE, unhighlighted_params = list(linewidth = 1, fill = alpha("#9f95df", 0.4)), calculate_per_facet = TRUE) +
ggtitle("1.8 - Boxplot com a distribuição da temperatura média para cada mês") +
ylab("Temperatura Média (ºC)") + xlab("Mês")
# Cálculo da média e mediana da temperatura média por cidade para os meses de jan. e fev.
climas %>%
filter(mes == 1 | mes == 2) %>%
group_by(cidade, mes) %>%
summarise(tmedia_median = median(tmedia), tmedia_mean = mean(tmedia), .groups = "drop")
## # A tibble: 4 × 4
## cidade mes tmedia_median tmedia_mean
## <chr> <dbl> <dbl> <dbl>
## 1 Campina Grande 1 25.9 25.8
## 2 Campina Grande 2 25.9 25.9
## 3 João Pessoa 1 28.6 28.5
## 4 João Pessoa 2 28.8 28.8
Considerando o gráfico 1.8, temos que nos meses de Janeiro e Fevereiro, João Pessoa possui temperaturas médias mais altas que Campina Grande. Em ambos os meses, a média e mediana da temperatura média de JP é de cerca de 28,5 ºC, enquanto que CG fica por volta dos 26 ºC.
Campina Grande possui as maiores temperaturas máximas, enquanto que João Pessoa possui as maiores temperaturas médias.
Revisitando o gráfico 1.4, temos que, considerando a temperatura máxima, em CG o período mais quente se situa entre novembro e março e em JP é entre janeiro e abril. Já olhando para a temperatura média (gráfico 1.8), os resultados são similares, com a única exceção sendo o mês de dezembro também estando entre os mais quentes de JP.
Em ambas as cidades e tanto para a temperatura média como para a máxima, os meses mais frios do ano são: junho, julho e agosto.
Para o período de festas juninas, vamos considerar o mês de junho por ser de fato o mês do São João e por nem todas as cidades terem festividades em maio ou julho. E, vamos considerar os últimos 5 anos de observações.
# Gráfico 2.1
climas %>%
filter(mes == 6 & between(ano, max(ano) - 5, max(ano))) %>%
group_by(ano) %>%
ggplot(aes(x=ano, y=tmax, group=ano, color=cidade)) +
geom_point() +
ggtitle("2.1 - Dispersão da temperatura máxima em junho por ano") +
ylab("Temperatura Máxima (ºC)") + xlab("Ano")
# Gráfico 2.2
climas %>%
filter(mes == 6 & between(ano, max(ano) - 5, max(ano))) %>%
group_by(ano) %>%
ggplot(aes(x=ano, y=tmedia, group=ano, color=cidade)) +
geom_point() +
ggtitle("2.2 - Dispersão da temperatura média em junho por ano") +
ylab("Temperatura Média (ºC)") + xlab("Ano")
# Cálculo da média e mediana para as temperaturas média e máxima por ano e cidade
climas %>%
filter(mes == 6 & between(ano, max(ano) - 5, max(ano))) %>%
group_by(cidade,ano) %>%
summarise(
tmax_mean=mean(tmax),
tmax_median=median(tmax),
tmedia_mean=mean(tmedia),
tmedia_median=median(tmedia),
.groups = "drop"
)
## # A tibble: 10 × 6
## cidade ano tmax_mean tmax_median tmedia_mean tmedia_median
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Campina Grande 2014 28.2 28.6 23.0 23.1
## 2 Campina Grande 2015 28.2 28.3 22.6 22.6
## 3 Campina Grande 2016 28.8 29.0 23.8 23.8
## 4 Campina Grande 2017 27.8 27.8 22.9 23.0
## 5 Campina Grande 2018 27.4 27.4 22.8 22.9
## 6 João Pessoa 2014 30.3 30.2 26.7 27.1
## 7 João Pessoa 2015 30.4 30.4 26.8 26.8
## 8 João Pessoa 2016 30.4 30.4 27.1 26.8
## 9 João Pessoa 2017 31.2 31 26.9 27.2
## 10 João Pessoa 2018 30.8 30.8 26.9 26.9
Os gráficos 2.1 e 2.2 indicam que, tanto no caso da temperatura máxima como no caso da temperatura média, o mês de junho é mais quente em João Pessoa e mais frio em Campina Grande. A temperatura máxima de CG gira em torno de 28 ºC a 29ºC, enquanto que em JP gira em torno de 30 a 31 ºC, uma diferença de aprox. 2 ºC. Já considerando a temperatura média, CG tem cerca de 22,6 a 23,8 ºC e JP tem temp. média variando entre 26,6 a 27 ºC, uma diferença de quase 4 ºC.
No geral, Campina Grande tende a estar mais fria que João Pessoa na época das festividades juninas.
# Gráfico 3.1
climas %>%
ggplot(aes(x=semana, y=chuva)) +
geom_point() +
facet_wrap(~ cidade) +
ggtitle("3.1 - Gráfico de dispersão das chuvas por semana") +
ylab("Chuva (mm)") + xlab("Semana")
# Gráfico 3.2
climas %>%
ggplot(aes(x=chuva, fill=cidade)) +
geom_density(alpha=0.7) +
facet_wrap(~ cidade) +
ggtitle("3.2 - Histograma com a distribuição das chuvas") +
ylab("Densidade") + xlab("Chuva (mm)")
# Gráfico 3.3
climas %>%
ggplot(aes(y=chuva)) +
geom_boxplot(fill="slateblue", alpha=0.4) +
facet_wrap(~ cidade) +
ggtitle("3.3 - Boxplot com a distribuição das chuvas") +
ylab("Chuva (mm)")
# Cálculo da chuva média, mediana e do terceiro quartil para as duas cidades
climas %>%
group_by(cidade) %>%
summarise(
chuva_media = mean(chuva),
chuva_mediana = median(chuva),
quartil3 = quantile(chuva, 0.75),
.groups = "drop"
)
## # A tibble: 2 × 4
## cidade chuva_media chuva_mediana quartil3
## <chr> <dbl> <dbl> <dbl>
## 1 Campina Grande 14.0 4.9 18.7
## 2 João Pessoa 32.6 14.1 46.4
A partir dos gráfico 3.1 e 3.2, podemos observar que em JP ocorrem as chuvas mais volumosas. Essas observações são reforçadas pelos boxplots do gráfico 3.3, que também destacam como a mediana e o Q3 das chuvas de JP são maiores em comparações com CG. Pelos números calculados, temos que a mediana de chuva em JP, de 14,1 mm, chega a ser quase 2.9x maior que a mediana de CG (4,9mm).
# Gráfico 4.1
climas %>%
drop_na() %>%
ggpairs(
columns = c("tmedia", "temp_anterior"),
aes(colour=(cidade)),
title = "4.1 - Correlação entre temperatura média atual e anterior"
)
A correlação (Pearson) entre a temperatura de uma semana e a temperatura da semana anterior é 0,942, valor que indica uma relação forte entre as duas variáveis quando considerado as observações das duas cidades juntas. Considerando apenas as observações de Campina Grande, há uma correlação de 0,88 o que ainda é forte. Já para João Pessoa, a correlação é de aprox. 0,86 também forte. Em todos os três casos a relação é positiva, isto é, a tendência é que quando uma variável cresça a outra cresça junto.
# Gráfico 5.1
climas %>%
filter(chuva > 0) %>%
drop_na() %>%
ggpairs(
columns = c("tmedia", "chuva"),
aes(colour=(cidade)),
title = "5.1 - Correlação entre temperatura média e chuva"
)
# Gráfico 5.2 - transformação de chuva em log(chuva)
climas %>%
filter(chuva > 0) %>%
drop_na() %>%
mutate(
log_chuva = log(chuva)
) %>%
ggpairs(
columns = c("tmedia", "log_chuva"),
aes(colour=(cidade)),
title = "5.2 - Correlação entre temperatura média e log(chuva)"
)
# Cálculo dos índices de correlação por cidade
climas %>%
filter(chuva > 0) %>%
drop_na() %>%
group_by(cidade) %>%
summarise(
pearson = cor(tmedia, chuva, method = "pearson"),
spearman = cor(tmedia, chuva, method = "spearman"),
kendall = cor(tmedia, chuva, method = "kendall"),
)
## # A tibble: 2 × 4
## cidade pearson spearman kendall
## <chr> <dbl> <dbl> <dbl>
## 1 Campina Grande -0.335 -0.448 -0.305
## 2 João Pessoa -0.424 -0.459 -0.310
A correlação entre a temperatura média e chuva é praticamente nula com coeficiente de 0,057. Considerando o coficiente por cidade, para Campina Grande é de -0,335 e para João Pessoa é de -0,424, ou seja, há uma relação de fraca entre as duas variáveis e esta relação é negativa.
Observando o plot inferior direito do gráfico 5.1, vemos que a distribuição de chuva é exponencial, assim podemos aplicar uma transformação para verificar se obtemos melhores resultados do coeficiente de correlação. O gráfico 5.2 representa a relação entre temperatura média e o log de chuva. Após a transformação, os coficientes melhoraram um pouco (-0,132 ambas, -0,436 CG e -0,456 JP), mas a relação por cidade ainda continua abaixo de 0,5, que é considerado de fraco a moderado dependendo do coeficiente usado.
Por fim, temos uma tabela com os três coeficientes calculados entre chuva e temperatura média para as duas cidades. O melhor nesse caso foi o coeficiente de Spearman.