Este relatório visa abordar algumas questões relacionadas às temperaturas de Campina Grande - PB e João Pessoa - PB.
Para começar, calculamos e apresentamos em uma tabela as temperaturas de cada cidade ao longo das semanas.
climas = climas %>%
mutate(temp_anterior = lag(tmedia, n = 1))
climas
## # A tibble: 2,748 × 9
## cidade semana tmedia tmax tmin chuva mes ano temp_anterior
## <chr> <dttm> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Campi… 1992-12-27 00:00:00 26.1 30.4 20.7 0 12 1992 NA
## 2 Campi… 1993-01-03 00:00:00 26.1 32.4 19.3 0 1 1993 26.1
## 3 Campi… 1993-01-10 00:00:00 25.8 32.2 19.7 0 1 1993 26.1
## 4 Campi… 1993-01-31 00:00:00 25.7 32 19.9 0.4 1 1993 25.8
## 5 Campi… 1993-02-07 00:00:00 26.3 32.7 19.6 0.3 2 1993 25.7
## 6 Campi… 1993-02-14 00:00:00 26.3 32.7 20 0 2 1993 26.3
## 7 Campi… 1993-02-21 00:00:00 26.5 32.3 20.4 4.9 2 1993 26.3
## 8 Campi… 1993-02-28 00:00:00 26.6 32.3 21.2 0 2 1993 26.5
## 9 Campi… 1993-10-31 00:00:00 25.8 32.1 19 0 10 1993 26.6
## 10 Campi… 1993-11-07 00:00:00 25.2 31.2 19 6.1 11 1993 25.8
## # ℹ 2,738 more rows
Para analisar qual cidade é a mais quente, é crucial examinarmos o comportamento histórico das temperaturas em cada uma delas. Assim, para simplificar, filtramos os dados para considerar apenas as datas disponíveis em ambas as cidades.
data_campina_grande = climas %>%
filter(grepl("Campina Grande", cidade, ignore.case = TRUE))
data_joao_pessoa = climas %>%
filter(grepl("João Pessoa", cidade, ignore.case = TRUE))
semanas_comuns <- intersect(data_campina_grande$semana, data_joao_pessoa$semana)
data_campina_grande <- data_campina_grande[data_campina_grande$semana %in% semanas_comuns, ]
data_joao_pessoa <- data_joao_pessoa[data_joao_pessoa$semana %in% semanas_comuns, ]
Agora podemos analisar cada caso individualmente e, em seguida, calcular a média para uma visão geral da situação.
data_cgrande_jpessoa <- rbind(data_campina_grande, data_joao_pessoa)
plot_med_cgrande_jpessoa <- plot_ly(data_cgrande_jpessoa, x = ~semana, y = ~tmedia,
color = ~cidade, colors = c("blue", "green", "red"),
type = 'scatter', mode = 'lines') %>%
layout(title = "Comparação da Temperatura Média",
xaxis = list(title = "Semana"),
yaxis = list(title = "Temperatura Média (°C)"))
plot_med_cgrande_jpessoa
plotbox_med_cgrande_jpessoa <- plot_ly(data_cgrande_jpessoa, y = ~tmedia,
color = ~cidade, colors = c("blue", "green", "red"), type = 'box') %>%
layout(title = "Boxplot da Temperatura Média por Cidade",
yaxis = list(title = "Temperatura Média (°C)"),
xaxis = list(title = "Cidade"))
plotbox_med_cgrande_jpessoa
Ao observar o gráfico, nota-se que historicamente a cidade de João Pessoa apresenta uma média de temperatura consistentemente mais elevada do que a de Campina Grande. No entanto, é interessante criar um gráfico da temperatura máxima para determinar se, em algum momento do dia, Campina Grande pode superar João Pessoa em termos de temperatura máxima:
data_cgrande_jpessoa <- rbind(data_campina_grande, data_joao_pessoa)
plot_max_cgrande_jpessoa <- plot_ly(data_cgrande_jpessoa, x = ~semana, y = ~tmax,
color = ~cidade, colors = c("blue", "green", "red"),
type = 'scatter', mode = 'lines') %>%
layout(title = "Comparação da Temperatura Máxima",
xaxis = list(title = "Semana"),
yaxis = list(title = "Temperatura Máxima (°C)"))
plot_max_cgrande_jpessoa
plotbox_max_cgrande_jpessoa <- plot_ly(data_cgrande_jpessoa, y = ~tmax,
color = ~cidade, colors = c("blue", "green", "red"), type = 'box') %>%
layout(title = "Boxplot da Temperatura Máxima por Cidade",
yaxis = list(title = "Temperatura Média (°C)"),
xaxis = list(title = "Cidade"))
plotbox_max_cgrande_jpessoa
Quando analisamos as temperaturas máximas, o cenário se inverte, indicando que as variações de temperatura em Campina Grande são significativas. Os picos de temperatura em Campina Grande podem superar os máximos de João Pessoa e consequentemente as temperaturas mínimas em Campina Grande tendem a ser mais baixas. Uma abordagem futura interessante seria comparar esses dados ao longo das horas do dia para entender melhor como essas variações de temperatura impactam a vida cotidiana.
Agora, vamos verificar se essa tendência se mantém durante os períodos de verão:
data_cgrande_jpessoa_verao <- data_cgrande_jpessoa %>%
filter(mes == 12 | mes == 1 | mes == 2) %>%
group_by(ano, cidade) %>%
reframe(media_tmedia = mean(tmedia),
media_tmax = max(tmax))
plot_med_cgrande_jpessoa_verao <- plot_ly(data_cgrande_jpessoa_verao, x = ~ano, y = ~media_tmedia,
color = ~cidade,
colors = c("blue", "green", "red"),
type = 'bar') %>%
layout(title = "Comparação da Temperatura Média (Verão)",
xaxis = list(title = "Ano"),
yaxis = list(title = "Temperatura Média (°C)"))
plot_med_cgrande_jpessoa_verao
plot_max_cgrande_jpessoa_verao <- plot_ly(data_cgrande_jpessoa_verao, x = ~ano, y = ~media_tmax,
color = ~cidade,
colors = c("blue", "green", "red"),
type = 'bar') %>%
layout(title = "Comparação da Temperatura Máxima (Verão)",
xaxis = list(title = "Ano"),
yaxis = list(title = "Temperatura Máxima (°C)"))
plot_max_cgrande_jpessoa_verao
Ao analisar os novos gráficos, observamos que os padrões se mantêm consistentes, independentemente da estação sendo verão. Constatamos que a temperatura média em João Pessoa continua a ser mais elevada, enquanto em Campina Grande, a temperatura máxima é predominantemente superior na maioria dos anos.
Para realizar esta análise, agruparemos a média das temperaturas das cidades por mês e ano, e então visualizaremos os padrões graficamente:
data_cgrande_jpessoa_mes <- data_cgrande_jpessoa %>%
group_by(ano, mes, cidade) %>%
reframe(media_tmedia = mean(tmedia),
media_tmax = max(tmax))
plot_med_cgrande_jpessoa_mes <- plot_ly(data_cgrande_jpessoa_mes, x = ~mes, y = ~media_tmedia,
color = ~cidade,
colors = c("blue", "green", "red"),
type = 'scatter', mode = 'markers') %>%
layout(title = "Comparação da Temperatura Média (Meses)",
xaxis = list(title = "Mês"),
yaxis = list(title = "Temperatura Média (°C)"))
plot_med_cgrande_jpessoa_mes
Ao longo dos anos, observamos uma consistência nos padrões de temperatura, onde os meses do meio do ano tendem a ser mais frios, enquanto os demais são mais quentes. É interessante notar que mesmo durante o mês mais frio de João Pessoa, suas temperaturas podem rivalizar com os meses mais quentes de Campina Grande.
Entretanto, para entendermos o comportamento das temperaturas durante a temporada das festas juninas nos últimos anos, percebemos que o gráfico anterior dificulta a diferenciação entre os anos para cada temperatura. Portanto, exploraremos outra abordagem analítica.
data_cgrande_jpessoa_fjun <- data_cgrande_jpessoa_mes %>%
filter(mes >= 5 & mes <= 7) %>%
group_by(ano, cidade) %>%
reframe(media_tmedia = mean(media_tmedia))
plot_med_cgrande_jpessoa_fjun <- plot_ly(data_cgrande_jpessoa_fjun, x = ~ano, y = ~media_tmedia,
color = ~cidade,
colors = c("blue", "green", "red"),
type = 'bar') %>%
layout(title = "Comparação da Temperatura Média (Festas Juninas)",
xaxis = list(title = "Ano"),
yaxis = list(title = "Temperatura Média (°C)"))
plot_med_cgrande_jpessoa_fjun
Considerando os períodos de festa junina em Campina Grande, que equivalem aos meses de maio a julho, notamos que nos últimos anos as temperaturas das cidades não variam muito em relação aos anos anteriores. No entanto, em Campina Grande, as temperaturas apresentam uma tendência média para baixo, enquanto em João Pessoa, a tendência é de uma média para cima.
Para essa análise, não será necessário tratar os dados, uma vez que as informações sobre o volume de chuva por semana já estão presentes nos dados originais. Portanto, vamos examinar essa questão por meio de representações gráficas.
plot_chuva_cgrande_jpessoa <- plot_ly(data_cgrande_jpessoa, x = ~semana, y = ~chuva,
color = ~cidade, colors = c("blue", "green", "red"),
type = 'scatter', mode = 'lines', fill = 'tozeroy') %>%
layout(title = "Comparação da Volume da Chuva",
xaxis = list(title = "Semana"),
yaxis = list(title = "Volume da Chuva (mm)"))
plot_chuva_cgrande_jpessoa
plot_wchuva_cgrande_jpessoa <- plot_ly(data_cgrande_jpessoa, x = ~semana, y = ~chuva,
color = ~cidade, colors = c("blue", "green", "red"),
type = 'waterfall') %>%
layout(title = "Comparação da Volume da Chuva",
xaxis = list(title = "Semana"),
yaxis = list(title = "Volume da Chuva (mm)"))
plot_wchuva_cgrande_jpessoa
plot_bchuva_cgrande_jpessoa <- plot_ly(data_cgrande_jpessoa, x = ~cidade, y = ~chuva,
color = ~cidade, colors = c("blue", "green", "red"),
type = 'box') %>%
layout(title = "Comparação do Volume da Chuva por Cidade",
xaxis = list(title = "Cidade"),
yaxis = list(title = "Volume da Chuva (mm)"))
plot_bchuva_cgrande_jpessoa
Observamos que João Pessoa apresenta uma concentração de chuva maior do que Campina Grande na maioria das datas, tanto em frequência quanto em volume. Ao examinarmos os gráficos de boxplot, notamos que o volume de chuva que representa o terceiro quadril em Campina Grande é muito próximo do segundo quadril em João Pessoa. Além disso, em nosso gráfico de waterfall, uma observação interessante é que o volume total de chuva em João Pessoa é mais que o dobro do volume em Campina Grande.
Como no tratamento inicial dos dados incluímos uma coluna referente à temperatura anterior das semanas em questão e ao mesmo tempo realizamos a divisão dos dados para cada cidade, podemos começar examinando os valores de correlação e os gráficos de dispersão para cada uma delas.
Campina Grande:
data_campina_grande_ant <- na.omit(data_campina_grande[, c("tmedia", "temp_anterior")])
correlacao_campina <- cor(data_campina_grande_ant$tmedia, data_campina_grande_ant$temp_anterior)
cat("Valor de correlação da Média de Temperatura pela Média de Temperatura da semana anterior: ", correlacao_campina, "\n")
## Valor de correlação da Média de Temperatura pela Média de Temperatura da semana anterior: 0.8803493
plot_correlacao_cgrande <- plot_ly(data_campina_grande_ant, x = ~temp_anterior, y = ~tmedia
, type = "scatter", mode = "markers") %>%
layout(title = "Dispersão entre Média de Temperatura e Temperatura da Semana Anterior",
xaxis = list(title = "Temperatura da Semana Anterior"),
yaxis = list(title = "Média de Temperatura"))%>%
add_lines(x = ~temp_anterior, y = ~fitted(lm(tmedia ~ temp_anterior,
data = data_campina_grande_ant)),
line = list(color = 'red', width = 2), name = 'Linha de Regressão')
plot_correlacao_cgrande
João Pessoa:
data_joao_pessoa_ant <- na.omit(data_joao_pessoa[, c("tmedia", "temp_anterior")])
correlacao_jpessoa <- cor(data_joao_pessoa_ant$tmedia, data_joao_pessoa_ant$temp_anterior)
cat("Valor de correlação da Média de Temperatura pela Média de Temperatura da semana anterior: ", correlacao_jpessoa, "\n")
## Valor de correlação da Média de Temperatura pela Média de Temperatura da semana anterior: 0.8534314
plot_correlacao_jpessoa <- plot_ly(data_joao_pessoa_ant, x = ~temp_anterior, y = ~tmedia
, type = "scatter", mode = "markers") %>%
layout(title = "Dispersão entre Média de Temperatura e Temperatura da Semana Anterior",
xaxis = list(title = "Temperatura da Semana Anterior"),
yaxis = list(title = "Média de Temperatura"))%>%
add_lines(x = ~temp_anterior, y = ~fitted(lm(tmedia ~ temp_anterior,
data = data_joao_pessoa_ant)),
line = list(color = 'red', width = 2), name = 'Linha de Regressão')
plot_correlacao_jpessoa
Analisando as correlações encontradas em ambas as cidades, notamos uma forte correlação positiva, sugerindo que a temperatura da semana anterior está relacionada à temperatura da semana atual. Isso pode ser atribuído ao fato de que as mudanças de temperaturas nas estações é de forma gradual influenciando a temperatura ao longo do tempo. Sendo raro que ocorram mudanças bruscas de temperatura de uma semana para outra.
Para realizar esta análise, é necessário limpar os dados para remover as semanas em que não houve chuva. Em seguida, vamos observar a correlação e o gráfico de dispersão para cada caso.
Campina Grande:
data_chuva_campina_grande <- data_campina_grande %>%
filter(chuva != 0)
correlacao_chuva_campina <- cor(data_chuva_campina_grande$tmedia, data_chuva_campina_grande$chuva)
cat("Valor de correlação da Média de Temperatura pelo Volume da Chuva: ", correlacao_chuva_campina, "\n")
## Valor de correlação da Média de Temperatura pelo Volume da Chuva: -0.3378777
plot_correlacao_chuva_cgrande <- plot_ly(data_chuva_campina_grande, x = ~chuva, y = ~tmedia
, type = "scatter", mode = "markers") %>%
layout(title = "Dispersão entre Média de Temperatura e Volume da Chuva",
xaxis = list(title = "Volume da Chuva"),
yaxis = list(title = "Média de Temperatura"))%>%
add_lines(x = ~temp_anterior, y = ~fitted(lm(tmedia ~ temp_anterior,
data = data_chuva_campina_grande)),
line = list(color = 'red', width = 2), name = 'Linha de Regressão')
plot_correlacao_chuva_cgrande
João Pessoa:
data_chuva_joao_pessoa <- data_joao_pessoa %>%
filter(chuva != 0)
correlacao_chuva_jpessoa <- cor(data_chuva_joao_pessoa$tmedia, data_chuva_joao_pessoa$chuva)
cat("Valor de correlação da Média de Temperatura pelo Volume da Chuva: ", correlacao_chuva_jpessoa, "\n")
## Valor de correlação da Média de Temperatura pelo Volume da Chuva: -0.4406709
plot_correlacao_chuva_jpessoa <- plot_ly(data_chuva_joao_pessoa, x = ~chuva, y = ~tmedia
, type = "scatter", mode = "markers") %>%
layout(title = "Dispersão entre Média de Temperatura e Volume da Chuva",
xaxis = list(title = "Volume da Chuva"),
yaxis = list(title = "Média de Temperatura"))%>%
add_lines(x = ~temp_anterior, y = ~fitted(lm(tmedia ~ temp_anterior,
data = data_chuva_joao_pessoa)),
line = list(color = 'red', width = 2), name = 'Linha de Regressão')
plot_correlacao_chuva_jpessoa
Observando os valores de correlação, fica evidente que tanto para Campina Grande quanto para João Pessoa, a média de temperatura apresenta uma relação negativa moderada em relação ao volume das chuvas. Notavelmente, para a cidade de João Pessoa, essa relação é um pouco mais pronunciada, porém, ainda assim, o valor não representa uma informação particularmente relevante.