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>
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()
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")
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()