climas = read_csv(here::here("data/clima_cg_jp-semanal.csv"),
col_types = "cTdddddd")
glimpse(climas)
## Rows: 2,748
## Columns: 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, 19…
## $ 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.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, 199…
Calcular a temperatura da semana anterior em cada linha
climas = climas %>%
mutate(temp_anterior = lag(tmedia, n = 1))
comp_cidades <- climas %>%
group_by(cidade) %>%
summarise(tmedia = mean(tmedia, na.rm = TRUE))
comp_cidades
## # A tibble: 2 × 2
## cidade tmedia
## <chr> <dbl>
## 1 Campina Grande 24.7
## 2 João Pessoa 27.7
Tirando a média das médias a Cidade mais quente, no geral, é João Pessoa com 27.65 Cº em comparação com Campina Grande que aponta 24.69 Cº como média da média da temperatura.
verao <- climas %>%
filter(mes %in% c(1,2)) %>%
group_by(cidade) %>%
summarise(tmedia = mean(tmedia, na.rm = TRUE))
verao
## # A tibble: 2 × 2
## cidade tmedia
## <chr> <dbl>
## 1 Campina Grande 25.9
## 2 João Pessoa 28.7
No período do verão, Janeiro e Fevereiro, João Pessoa e Campina Grande se demonstram mais quentes (esperado pelo período de verão), com 28.65 Cº e 25.86 Cº respectivamente.
hi <- climas %>%
select(cidade, tmedia, mes) %>%
group_by(cidade, mes) %>%
summarise(tmedia = mean(tmedia, na.rm = TRUE))
## `summarise()` has grouped output by 'cidade'. You can override using the
## `.groups` argument.
ggplot(hi, aes(x = mes, y = tmedia, color=cidade)) +
geom_line() +
geom_point() +
geom_text(aes(label = round(tmedia, 1)), vjust = 1.8, size = 3, position = position_dodge(0.9)) +
scale_x_continuous(breaks = 1:12) +
labs(title = "Temperatura Média Mensal", x = "Mês", y = "Temperatura (°C)")
Em média, João Pessoa se demonstra mais quente que Campina Grande, inclusive no verão. A medida de média pode ser apropriada pela baixa probabilidade de grandes outliers, tendo em vista que seria improvável que Campina Grande salte para 50 Cº ou que João Pessoa desça para -5 Cº. O gráfico também mostra que a menor temperatura é 22.3 Cº para Campina Grande, que não é distante do máximo de 25.9 Cº, o mesmo é visto para João Pessoa, com 25.9 Cº e 28.8 Cº como mínimo e máximo respectivamente.
Ao longo dos anos, para ambas as cidades, o período de médias mais quente vai do mês 11 (Novembro) até o mês 3 (Março). Os mais frios estão entre os meses 6 e 8 (Junho a Agosto) para ambas as cidades.
juninas <- climas %>%
filter(mes==6) %>%
select(cidade, tmedia, ano) %>%
#filter(ano >= 2008) %>%
group_by(cidade, ano) %>%
summarise(tmedia = mean(tmedia, na.rm = TRUE))
## `summarise()` has grouped output by 'cidade'. You can override using the
## `.groups` argument.
ggplot(juninas, aes(x = ano, y = tmedia, color=cidade)) +
geom_line() +
geom_point() +
scale_x_continuous(breaks = seq(min(juninas$ano), max(juninas$ano), by = 2)) +
geom_text(aes(label = round(tmedia, 1)), vjust = 1.8, size = 3, position = position_dodge(0.9)) +
labs(title = "Temperatura Média Mensal", x = "Ano", y = "Temperatura (°C)")
Nos últimos anos, Campina Grande tem sido consistentemente mais fria do
que João Pessoa, tendo sua menor temperatura em 2004, com 22.1 Cº.
Ademais, o maior pico de temperatura em Campina Grande ainda é inferior
a menor temperatura de Junho em João Pessoa. Campina Grande possui mais
oscilações, enquanto João Pessoa manteve uma tendência crescente entre
2011 a 2016.
chuva_semanal = climas %>%
group_by(cidade, semana) %>%
summarise(chuva_total = sum(chuva, na.rm = TRUE))
## `summarise()` has grouped output by 'cidade'. You can override using the
## `.groups` argument.
chuva_semanal
## # A tibble: 2,748 × 3
## # Groups: cidade [2]
## cidade semana chuva_total
## <chr> <dttm> <dbl>
## 1 Campina Grande 1992-12-27 00:00:00 0
## 2 Campina Grande 1993-01-03 00:00:00 0
## 3 Campina Grande 1993-01-10 00:00:00 0
## 4 Campina Grande 1993-01-31 00:00:00 0.4
## 5 Campina Grande 1993-02-07 00:00:00 0.3
## 6 Campina Grande 1993-02-14 00:00:00 0
## 7 Campina Grande 1993-02-21 00:00:00 4.9
## 8 Campina Grande 1993-02-28 00:00:00 0
## 9 Campina Grande 1993-10-31 00:00:00 0
## 10 Campina Grande 1993-11-07 00:00:00 6.1
## # ℹ 2,738 more rows
chuva_semanal_stats <- chuva_semanal %>%
group_by(cidade) %>%
summarise(
media = mean(chuva_total, na.rm = TRUE),
mediana = median(chuva_total, na.rm = TRUE),
desvio_padrao = sd(chuva_total, na.rm = TRUE),
variancia = var(chuva_total, na.rm = TRUE)
)
chuva_semanal_stats
## # A tibble: 2 × 5
## cidade media mediana desvio_padrao variancia
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Campina Grande 14.0 4.9 21.7 469.
## 2 João Pessoa 32.6 14.1 44.5 1978.
Em média, chove 14mm por semana em Campina Grande, enquanto chove 32.65mm em João Pessoa.
outlier_max <- chuva_semanal %>% filter(chuva_total == max(chuva_total))
ggplot(chuva_semanal, aes(x = semana, y = chuva_total, color=cidade)) +
geom_boxplot() +
scale_y_continuous(breaks = seq(min(chuva_semanal$chuva_total), max(chuva_semanal$chuva_total), by = 50)) +
labs(title = "Distribuição da chuva semanal", x = "Semana", y = "Quantidade (mm)")
outlier_max <- chuva_semanal %>% filter(chuva_total == max(chuva_total))
ggplot(chuva_semanal, aes(x = semana, y = chuva_total, color=cidade)) +
geom_point() +
scale_y_continuous(breaks = seq(min(chuva_semanal$chuva_total), max(chuva_semanal$chuva_total), by = 50)) +
labs(title = "Distribuição da chuva semanal", x = "Semana", y = "Quantidade (mm)")
João Pessoa possui dados de chuva mais dispersos, dando a ideia de que
as chuvas ocorrem em intensidades extremamente variadas (maior variância
e desvio padrão). O boxplot sugere que João Pessoa possui mais dados no
segundo quartil, pois a caixa abaixo dos \(50%\) dos dados é expressivamente menor do
que a caixa do terceiro quartil, dando a entender que acima da mediana,
os valores são mais dispersos, tal comportamento é visto para ambas as
cidades. Campina possui menos registros de chuva e seu máximo não supera
a faixa de 200mm, valor superado em várias ocasiões em João Pessoa.
climas %>%
group_by(cidade) %>%
summarise(corr = cor(tmedia, temp_anterior, method="pearson", use = "pairwise.complete.obs"))
## # A tibble: 2 × 2
## cidade corr
## <chr> <dbl>
## 1 Campina Grande 0.880
## 2 João Pessoa 0.859
Há indícios de uma correlação positiva e forte para a argumentação de que quando a temperatura da semana x é semelhante à temperatura da semana x-1.
temp_relacao <- climas %>%
ggplot(aes(x = temp_anterior, y = tmedia)) +
geom_point() +
geom_smooth(method = "lm") +
facet_wrap(~cidade) +
labs(title = "Relação entre a temperatura de uma semana e a semana anterior",
x = "Temperatura da semana anterior (°C)",
y = "Temperatura média da semana atual (°C)")
temp_relacao
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 1 row containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 1 row containing missing values or values outside the scale range
## (`geom_point()`).
João Pessoa apresenta dados mais dispersos, apesar do cálculo de correlação apontar fortes indícios da temperatura de semanas seguidas serem dependentes. Para Campina Grande os dados são estão mais concentrados na linha de correlação, o que corrobora com o cálculo do método de pearson visto anteriormente.
yep <- climas %>%
filter(chuva > 0) %>%
select(cidade, chuva, tmedia)
temp_relacao <- yep %>%
ggplot(aes(x = tmedia, y = chuva)) +
geom_point() +
geom_smooth(method = "lm") +
facet_wrap(~cidade) +
labs(title = "Relação entre a temperatura e chuva",
x = "Temperatura média da semana atual (°C)",
y = "Chuva na semana (mm)")
temp_relacao
## `geom_smooth()` using formula = 'y ~ x'
yep %>%
group_by(cidade) %>%
summarise(corr_p = cor(tmedia, chuva, method="pearson", use = "pairwise.complete.obs"),
corr_s = cor(tmedia, chuva, method="spearman", use = "pairwise.complete.obs"),
corr_k = cor(tmedia, chuva, method="kendall", use = "pairwise.complete.obs"))
## # A tibble: 2 × 4
## cidade corr_p corr_s corr_k
## <chr> <dbl> <dbl> <dbl>
## 1 Campina Grande -0.335 -0.448 -0.305
## 2 João Pessoa -0.424 -0.459 -0.310
Tanto João Pessoa como Campina Grande apresentam correlação fraca e negativa para a comparação entre chuva e temperatura média, podendo extrair a ideia de que a temperatura média do dia não diminui ou aumenta somente por conta da presença ou falta de chuva. Os gráficos demonstram esse comportamento ao revelar que a maior parte dos pontos não transladam em torno da linha de correlção. Apesar de no gráfico João Pessoa possuir a dispersão mais aparente, Campina Grande consistentemente carrega coeficientes menores de correlação.