library(tidyverse)
library(here)
library(knitr)
theme_set(theme_bw())
# 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()
)
)
Para essa análise, descartei cerca de 70 observações que não possuiam a temperatura média, a maioria dos dados filtrados foram de Patos nos anos de 2020 e 2021.
Utilizando os dados de uma semana e da semana passada podemos ver que, nas três cidades, as temperaturas tem uma forte correlação positiva e linear, com o coeficiente de correlação de Pearson acima de 0,8.
temp_semanas <- clima_tudo %>%
filter(!is.na(temp_media), ano > 2009) %>%
mutate(temp_anterior = lag(temp_media, n = 1)) %>%
mutate(temp_8 = lag(temp_media, n = 8)) %>%
mutate(temp_52 = lag(temp_media, n = 52))
# glimpse(temp_semanas)
temp_semanas %>%
filter(!is.na(temp_anterior)) %>%
ggplot(aes(x = temp_media, y = temp_anterior, color = cidade)) +
geom_point(alpha = .6) +
facet_wrap( ~ cidade) +
labs(
x = "Temperatura da semana (ºC)",
y = "Temperatura da semana anterior (ºC)",
title = "Distribuição das temperaturas médias com relação à semana anterior",
subtitle = "Dados de 2010 a 2021"
)
O resultado obtido está de acordo com a expectativa que eu tinha inicialmente, pensei: como as semanas são próximas, não deve haver mudanças bruscas de temperatura. Mas o que acontece se aumentarmos a distância entre as semanas?
Abaixo temos os gráficos de dispersão para uma distância de 8 semanas (~2 meses) e de 52 semanas (1 ano). É possível notar uma correlação mais forte na distância de um ano.
temp_semanas %>%
filter(!is.na(temp_8)) %>%
ggplot() +
geom_point(aes(x = temp_media, y = temp_8, color = cidade), alpha = .6) +
facet_wrap( ~ cidade) +
labs(
x = "Temperatura da semana (ºC)",
y = "Temperatura da 8ª semana anterior (ºC)",
title = "Distribuição das temperaturas médias com relação à 8ª semana anterior",
subtitle = "Dados de 2010 a 2021"
)
temp_semanas %>%
filter(!is.na(temp_52)) %>%
ggplot(aes(x = temp_media, y = temp_52, color = cidade)) +
geom_point(alpha = .6) +
facet_wrap( ~ cidade) +
labs(
x = "Temperatura da semana (ºC)",
y = "Temperatura da 52ª semana anterior (ºC)",
title = "Distribuição das temperaturas médias com relação à 52ª semana anterior",
subtitle = "Dados de 2011 a 2021"
)
temp_semanas %>%
group_by(cidade) %>%
summarise(
`1ª semana` = format(round(cor(temp_media, temp_anterior, method ="pearson", use="complete.obs"), 2), nsmall = 2),
`8ª semana` = format(round(cor(temp_media, temp_8, method ="pearson", use="complete.obs"), 2), nsmall = 2),
`52ª semana` = format(round(cor(temp_media, temp_52, method ="pearson", use="complete.obs"), 2), nsmall = 2),
.groups = "drop") %>%
rename(Cidade = cidade) %>%
kable
| Cidade | 1ª semana | 8ª semana | 52ª semana |
|---|---|---|---|
| Campina Grande | 0.86 | 0.38 | 0.70 |
| João Pessoa | 0.82 | 0.33 | 0.49 |
| Patos | 0.82 | 0.33 | 0.55 |
# temp_semanas %>%
# filter(is.na(temp_media))
Olhando apenas para as semanas com chuva, e aplicando a escala logaritmica em ambos o eixos, podemos ver que há indícios de correlação positiva.
chuva_semanas <- clima_tudo %>%
filter(!is.na(chuva), ano > 2009) %>%
mutate(chuva_anterior = lag(chuva, n = 1))
# glimpse(temp_semanas)
chuva_semanas %>%
filter(!is.na(chuva_anterior), chuva > 0, chuva_anterior > 0) %>%
ggplot(aes(x = chuva, y = chuva_anterior, color = cidade)) +
geom_point(alpha = .6) +
facet_wrap( ~ cidade) +
scale_x_log10() +
scale_y_log10() +
labs(
x = "Chuva na semana (mm)",
y = "Chuva na semana anterior (mm)",
title = "Distribuição das chuvas com relação à semana anterior",
subtitle = "Dados de 2010 a 2021"
)
chuva_semanas %>%
group_by(cidade) %>%
summarise(
`Coeficiente de Spearman` = cor(chuva, chuva_anterior, method = "spearman", use="complete.obs"),
) %>%
rename(Cidade = cidade) %>%
kable()
| Cidade | Coeficiente de Spearman |
|---|---|
| Campina Grande | 0.3941505 |
| João Pessoa | 0.4938268 |
| Patos | 0.5467986 |
Durante as semanas em que há chuva, há uma correlação moderada e não linear nas cidades de Campina Grande e João Pessoa. Aplicando a escala logaritmica no eixo da chuva, é possível perceber indícios de correlação negativa.
Em Patos, podemos observar que os pontos estão mais espalhados, com ocorrências da mesma quantidade de chuva em temperaturas variadas. Isso explica o coeficiente de Spearman em torno de -0.1.
chuva_temp <-
clima_tudo %>%
filter(chuva > 1, !is.na(temp_media), !is.na(chuva), ano > 2009)
chuva_temp %>%
ggplot(aes(y = temp_media, x = chuva, color = cidade)) +
geom_point(alpha = .6) +
facet_wrap(~cidade) +
scale_x_log10() +
labs(
x = "Chuva (mm)",
y = "Temperatura (ºC)",
title = "Distribuição das temperaturas médias com relação à chuva",
subtitle = "Dados de 2010 a 2021"
)
chuva_temp %>%
group_by(cidade) %>%
summarise(
`Coeficiente de Spearman` = cor(temp_media, chuva, method = "spearman", use="complete.obs"),
) %>%
rename(Cidade = cidade) %>%
kable()
| Cidade | Coeficiente de Spearman |
|---|---|
| Campina Grande | -0.3504497 |
| João Pessoa | -0.4011225 |
| Patos | -0.0906652 |