João Pessoa, Campina Grande e Patos são 3 cidades brasileiras, localizadas no estado da Paraíba. Nessa análise, as utilizaremos como referências para nos ajudar a compreender o clima paraibano. A primeira cidade, a capital do estado, localiza-se no litoral; a segunda está localizada nas proximidades do topo da Serra da Borborema, e a terceira na região do Sertão. O resultado desta análise será disponibilizada em um relatório em RMarkdown e publicado online.

Como ponto de partida, queremos obter as seguintes informações:

1 - Compare o quanto essas 3 cidades têm meses claramente mais quentes/frios. Em qual delas há épocas mais diferentes?

2 - Considerando os meses de férias normais da UFCG e escolhendo uma das cidades (a mais próxima de onde você passa férias), quais as semelhanças e diferenças entre a temperatura e as chuvas nos meses de férias e nos meses de aula? Quando o clima é melhor?

3 - Qual cidade tem maior/menor variação mensal da umidade?

library(tidyverse)
library(here)
theme_set(theme_bw())

Antes de tudo, apresentaremos uma visão geral dos dados que compõem a base utilizada:

# SEMPRE read_csv NUNCA read.csv
clima_tudo = read_csv(
    here("data/tempo-jp-cg-pt.csv"),
    col_types = cols(
        .default = col_double(),
        cidade = col_character(),
        semana = col_date(format = ""),
        ano = col_integer(),
        mes = col_integer()
    )
)

clima = clima_tudo %>% 
    filter(ano == 2019)

clima %>% 
    slice(1:8)
## # A tibble: 8 x 11
##   cidade   semana     temp_max temp_media temp_min vento_medio vento_max umidade
##   <chr>    <date>        <dbl>      <dbl>    <dbl>       <dbl>     <dbl>   <dbl>
## 1 Campina… 2019-01-06     32.1       25.6     19.6        3.57       4.6    74.9
## 2 Campina… 2019-01-13     33.5       27.1     20          3.29       4.5    69  
## 3 Campina… 2019-01-20     33.3       26.7     19.6        4.01       6.5    72.5
## 4 Campina… 2019-01-27     32.4       26.4     19.6        3.53       5      75.0
## 5 Campina… 2019-02-03     32.2       25.3     19.5        2.95       4.8    83  
## 6 Campina… 2019-02-10     31.1       25.6     20.1        3.17       5      84.1
## 7 Campina… 2019-02-17     31.6       25.9     20.5        2.89       4.1    79.2
## 8 Campina… 2019-02-24     31.1       25.9     20.5        3.63       4.8    76.8
## # … with 3 more variables: chuva <dbl>, ano <int>, mes <int>

Determinando qual das cidades apresenta maior váriação de temperatura

Com trecho abaixo estamos eliminando valores faltantes, que impediriam o cálculo da média mensal da variável alvo.

clima <- clima_tudo[!is.na(clima_tudo$temp_media),]
clima <- clima[!is.na(clima$chuva),]
clima
## # A tibble: 1,733 x 11
##    cidade  semana     temp_max temp_media temp_min vento_medio vento_max umidade
##    <chr>   <date>        <dbl>      <dbl>    <dbl>       <dbl>     <dbl>   <dbl>
##  1 Campin… 2009-12-27     29.9       25.9     21.9        3.96       5      76  
##  2 Campin… 2010-01-03     31.4       25.5     21.2        4.08       5.3    76.2
##  3 Campin… 2010-01-10     32.1       25.6     21.3        3.95       6.6    76.0
##  4 Campin… 2010-01-17     31         24.2     20.5        2.86       5      85.3
##  5 Campin… 2010-01-24     31.2       26.1     21.2        3.69       5.5    77.8
##  6 Campin… 2010-01-31     32.1       26.0     21.4        3.97       6.5    76.0
##  7 Campin… 2010-02-07     32.2       26.0     20.4        3.40       6.3    77.8
##  8 Campin… 2010-02-14     31.3       25.8     21.5        3.40       5.5    80.4
##  9 Campin… 2010-02-21     32.9       27.0     22.1        3.54       5.5    76.0
## 10 Campin… 2010-02-28     34.1       28.0     22          3.06       4      71  
## # … with 1,723 more rows, and 3 more variables: chuva <dbl>, ano <int>,
## #   mes <int>

Abaixo estamos visualizando a distribuição da temperaturas médias mensais, por cidade. Os anos analisados são 2010 até 2020.

Patos apresenta a distribuição mais heterogênea entre as cidades. Por outro lado, João Pessoa apresenta uma distribuição mais homogênea, com pouca variação entre as temperaturas médias.

clima %>%
  ggplot(aes(x = mes, y = temp_media)) +
  facet_wrap( ~ cidade, ncol = 1) +
  geom_jitter(height = .1, alpha = .6, color = "red") +
  labs(
    x = "mes",
    y = "temp_media" 
  )

Agrupamos por meses de cada ano, as temperaturas médias.

sumarios = clima %>%
  group_by(cidade, mes) %>%
  summarise(temp_media_mensal = mean(temp_media), chuva_media_mensal = mean(chuva), .groups = 'drop')

sumarios
## # A tibble: 36 x 4
##    cidade           mes temp_media_mensal chuva_media_mensal
##    <chr>          <int>             <dbl>              <dbl>
##  1 Campina Grande     1              25.7               9.70
##  2 Campina Grande     2              25.8              15.4 
##  3 Campina Grande     3              25.9              11.1 
##  4 Campina Grande     4              25.4              22.0 
##  5 Campina Grande     5              24.5              21.4 
##  6 Campina Grande     6              23.2              27.2 
##  7 Campina Grande     7              22.2              28.1 
##  8 Campina Grande     8              22.9               9.65
##  9 Campina Grande     9              23.7               6.21
## 10 Campina Grande    10              25.0               3.79
## # … with 26 more rows

Como resultado, apresentado pelo gráfico abaixo, a cidade de Patos varia muito a sua temperatura durante as épocas de tempo frio e quente, em comparação as outras cidades que mantém suas temperaturas mais constantes.

sumarios %>%
  ggplot(aes(x = mes, y = temp_media_mensal, color = cidade)) +
  geom_point() +
  geom_line()

Determinado se os meses de férias da UFCG são mais agradaveis ou não, com relação a temperatura e a chuva. E quais são suas semelhanças durante os meses.

Primeiramente, João Pessoa possui um volume de chuvas maior que as outras cidade. E Patos, como era de se esperar, possui o menor volume de chuvas.

clima %>%
  ggplot(aes(x = semana, y = chuva)) +
  facet_wrap( ~ cidade, ncol = 1) +
  geom_jitter(height = .1, alpha = .6, color = "red") +
  labs(
    x = "semana",
    y = "chuva" 
  )

Novamente, agrupamos a temperatura e o volume de chuva por cidade, para cada mês.

sumarios = clima %>%
  group_by(cidade = 'Patos', mes) %>%
  summarise(temp_media_mensal = mean(temp_media), chuva_media_mensal = mean(chuva), .groups = 'drop')

sumarios
## # A tibble: 12 x 4
##    cidade   mes temp_media_mensal chuva_media_mensal
##    <chr>  <int>             <dbl>              <dbl>
##  1 Patos      1              28.0              16.8 
##  2 Patos      2              27.9              26.7 
##  3 Patos      3              28.1              28.2 
##  4 Patos      4              27.5              33.4 
##  5 Patos      5              26.9              34.6 
##  6 Patos      6              25.4              38.1 
##  7 Patos      7              25.2              31.2 
##  8 Patos      8              25.9              12.1 
##  9 Patos      9              26.4               8.83
## 10 Patos     10              27.7               4.20
## 11 Patos     11              28.3               2.67
## 12 Patos     12              28.4               7.99

Determinando que os meses de férias da UFCG são Dezembro, Janeiro e Julho. Assim, concluimos que os meses de férias tem uma leve tendência de serem mais agradavéis, com chuvas e temperaturas em uma boa proporção, como mostra o gráfico abaixo. Devido a distribuição dos valores, é difícil determinar semelhanças/diferenças entre os dois grupos.

ggplot(sumarios, aes(mes), title = 'Chuva x Temperatura') +                   
  geom_point(aes(y=chuva_media_mensal), colour="blue") + 
  geom_point(aes(y=temp_media_mensal), colour="green") 

Determinando qual cidade varia mais na umidade mensal.

Campina Grande e João Pessoa possuem distribuições semelhantes, mas João Pessoa apresenta uma umidade mais homogênea, ou seja com menor variação. Já Patos, apresenta tanto os menores valores de umidade, quanto a distribuição mais dispersa.

clima %>%
  ggplot(aes(x = mes, y = umidade)) +
  facet_wrap( ~ cidade, ncol = 1) +
  geom_jitter(height = .1, alpha = .6, color = "red") +
  labs(
    x = "mes",
    y = "umidade" 
  )

Novamente, estamos agrupando a umidade de forma mensal.

sumarios = clima %>%
  group_by(cidade, mes) %>%
  summarise(umidade_media_mensal = mean(umidade), .groups = 'drop')

sumarios
## # A tibble: 36 x 3
##    cidade           mes umidade_media_mensal
##    <chr>          <int>                <dbl>
##  1 Campina Grande     1                 72.9
##  2 Campina Grande     2                 74.0
##  3 Campina Grande     3                 75.2
##  4 Campina Grande     4                 77.5
##  5 Campina Grande     5                 80.4
##  6 Campina Grande     6                 82.6
##  7 Campina Grande     7                 83.4
##  8 Campina Grande     8                 77.8
##  9 Campina Grande     9                 74.1
## 10 Campina Grande    10                 71.4
## # … with 26 more rows

Conclusão, Patos novamente apresenta maior váriação em relação as outras cidades, tendo picos e baixas tanto nos meses mais frios, quanto nos meses mais quentes.

sumarios %>%
  ggplot(aes(x = mes, y = umidade_media_mensal, color = cidade)) +
  geom_point() +
  geom_line()