Q1: Qual a cidade é mais quente? Isso muda se considerarmos apenas o período de janeiro e fevereiro (pico do verão)?

Distribuição da temperatura máxima

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.

Distribuição da temperatura máxima nos meses de janeiro e fevereiro

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.

Distribuição da temperatura média

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.

Distribuição da temperatura média nos meses de janeiro e fevereiro

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

Em resumo

Campina Grande possui as maiores temperaturas máximas, enquanto que João Pessoa possui as maiores temperaturas médias.

Q2: Quais os meses mais quentes e mais frios? Como você descreveria a temperatura das festas juninas das cidades nos últimos anos?

Meses mais quentes

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.

Meses mais frios

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.

Temperatura das festas juninas das cidades nos últimos anos

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.

Resumo

No geral, Campina Grande tende a estar mais fria que João Pessoa na época das festividades juninas.

Q3: Quanto chove por semana em JP e CG? Descreva a distribuição do volume de chuvas para as cidades?

Distribuição das chuvas por semana em JP e CG

# 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).

Q4: Qual a relação entre a temperatura de uma semana e a temperatura da semana anterior (descreva para as duas cidades)?

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

Q5: Qual a relação entre temperatura e chuvas nas semanas em que choveu (descreva para as duas cidades)?

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