Temperatura

Onde é mais quente?

Pode-se analisar inicialmente as médias de temperatura, temperatura máxima e temperatura mínima das cidades na Tabela 1 para tentar identificar a resposta.

mean_temp_cg <- mean(subset(clima, cidade=="Campina Grande")$tmedia)
mean_temp_max_cg <- mean(subset(clima, cidade=="Campina Grande")$tmax)
mean_temp_min_cg <- mean(subset(clima, cidade=="Campina Grande")$tmin)

mean_temp_jp <- mean(subset(clima, cidade=="João Pessoa")$tmedia)
mean_temp_max_jp <- mean(subset(clima, cidade=="João Pessoa")$tmax)
mean_temp_min_jp <- mean(subset(clima, cidade=="João Pessoa")$tmin)

c.cidades <- unique(clima$cidade)
c.means <- c(mean_temp_cg, mean_temp_jp)
c.means_max <- c(mean_temp_max_cg, mean_temp_max_jp)
c.means_min <- c(mean_temp_min_cg, mean_temp_min_jp)

df.means_temp <- data.frame("Cidades"=c.cidades, "Temp Média"=c.means, 
                            "Temp Máx."=c.means_max, "Temp Mín."=c.means_min)

kable(df.means_temp, caption = "Tabela 1 - Comparação das Temperaturas Médias das Cidades de Campina Grande e João Pessoa.")%>%kable_styling()
Tabela 1 - Comparação das Temperaturas Médias das Cidades de Campina Grande e João Pessoa.
Cidades Temp.Média Temp.Máx. Temp.Mín.
Campina Grande 24.69077 30.31691 19.32794
João Pessoa 27.65318 30.67349 22.50144

Ao analisar inicialmente a Tabela 1 já se pode levantar a hipótese de que a cidade de João Pessoa é em média mais quente do que a cidade de Campina Grande, tendo em vista que todas as médias de temperatura dessa cidade, tanto a média em si, quanto a média das máximas, quanto a média das mínimas se mostraram maiores que as respectivas médias da Cidade de Campina Grande. Porém, para se obter uma maior confiabilidade na análise, pode-se observar a distribuição das temperaturas dessas duas cidades no Gráfico 1.

ggplot(clima) +
    aes(tmedia) +
    ggtitle("Gráfico 1 - Temperaturas Médias de Campina Grande e João Pessoa") +
    theme(plot.title = element_text(hjust = 0.5)) +
    geom_histogram(aes(fill=cidade), col="black", bins=20) +
    labs(x="Temperatura Média (Cº)", y="Quantidade de observações", fill="Cidades") +
    facet_grid(~cidade)

A partir da Gráfico 1 pode-se afirmar com mais clareza que de fato a cidade de João Pessoa apresenta, em média, temperaturas mais altas que a cidade de Campina Grande, tendo em vista que a distribuição de temperaturas médias da respectiva cidade tende para temperaturas mais altas de uma forma bem mais acentuada do que acontece com a cidade de Campina Grande.

As temperaturas máximas semanais (o pico do calor) são tão diferentes quanto as médias? Mais?

Para verificar se as temperaturas máximas semanais são tão diferentes quanto as médias, primeiro pode-se analisar o quanto essas variáveis variam, como pode-se observar na Tabela 2.

temp_med_max_cg <- max(subset(clima, cidade=="Campina Grande")$tmedia)
temp_med_min_cg <- min(subset(clima, cidade=="Campina Grande")$tmedia)
dif_temp_med_cg <- temp_med_max_cg - temp_med_min_cg

temp_med_max_jp <- max(subset(clima, cidade=="João Pessoa")$tmedia)
temp_med_min_jp <- min(subset(clima, cidade=="João Pessoa")$tmedia)
dif_temp_med_jp <- temp_med_max_jp - temp_med_min_jp

temp_med_max <- max(clima$tmedia)
temp_med_min <- min(clima$tmedia)
dif_temp_med <- temp_med_max - temp_med_min

sd_temp_med_cg <- sd(subset(clima, cidade=="Campina Grande")$tmedia)
sd_temp_med_jp <- sd(subset(clima, cidade=="João Pessoa")$tmedia)
sd_temp_med <- sd(clima$tmedia)


temp_max_max_cg <- max(subset(clima, cidade=="Campina Grande")$tmax)
temp_max_min_cg <- min(subset(clima, cidade=="Campina Grande")$tmax)
dif_temp_max_cg <- temp_max_max_cg - temp_max_min_cg

temp_max_max_jp <- max(subset(clima, cidade=="João Pessoa")$tmax)
temp_max_min_jp <- min(subset(clima, cidade=="João Pessoa")$tmax)
dif_temp_max_jp <- temp_max_max_jp - temp_max_min_jp

temp_max_max <- max(clima$tmax)
temp_max_min <- min(clima$tmax)
dif_temp_max <- temp_max_max - temp_max_min

sd_temp_max_cg <- sd(subset(clima, cidade=="Campina Grande")$tmax)
sd_temp_max_jp <- sd(subset(clima, cidade=="João Pessoa")$tmax)
sd_temp_max <- sd(clima$tmax)

c.cidades <- c(unique(clima$cidade), "Total")

c.dif_temp_med <- c(dif_temp_med_cg, dif_temp_med_jp, dif_temp_med)
c.sd_temp_med <- c(sd_temp_med_cg, sd_temp_med_jp, sd_temp_med)

c.dif_temp_max <- c(dif_temp_max_cg, dif_temp_max_jp, dif_temp_max)
c.sd_temp_max <- c(sd_temp_max_cg, sd_temp_max_jp, sd_temp_max)

df.dif_temp_med_max <- data.frame("Cidades"=c.cidades, 
                                  "Dif Temp Média"=c.dif_temp_med,
                                  "Dif Temp Máx."=c.dif_temp_max,
                                  "Desvio P Temp Méd."=c.sd_temp_med,
                                  "Desvio P Temp Máx."=c.sd_temp_max)

kable(df.dif_temp_med_max, caption = "Tabela 2 - Comparação da variação das 
      temperaturas médias e máximas das cidades de Campina Grande e João Pessoa.
      ")%>%kable_styling()
Tabela 2 - Comparação da variação das temperaturas médias e máximas das cidades de Campina Grande e João Pessoa.
Cidades Dif.Temp.Média Dif.Temp.Máx. Desvio.P.Temp.Méd. Desvio.P.Temp.Máx.
Campina Grande 7.793333 9.6 1.525646 2.015313
João Pessoa 6.121429 6.5 1.180293 1.067440
Total 9.340952 9.6 1.994301 1.572060

Ao observar as métricas, percebe-se que não há grande diferença de variação entre a temperatura média e a temperatura máxima. Entretanto, analisando individualmente entre as cidades de Campina Grande e João Pessoa percebe-se que há uma maior diferença entre as variações na cidade de Campina Grande, do que na cidade de João Pessoa, porém mesmo assim nada muito significativo. Para se chegar a melhores conclusões faz-se necessária uma comparação gráfica que pode ser analisada no Gráfico 2.

melt_tmedia_tmax <- melt(clima, id.vars = "cidade", 
                         measure.vars = c("tmedia","tmax"))

ggplot(melt_tmedia_tmax) + 
    geom_boxplot(aes(x=variable, y=value, fill=variable)) + ylim(min=20, max=35) +
    ggtitle("Gráfico 2 - Boxplots das Temperaturas Média e Máxima \ndas cidades de Campina Grande e João Pessoa") +
    theme(plot.title = element_text(hjust = 0.5)) +
    labs(x=NULL, y="Temperatura (ºC)") +
    scale_x_discrete(labels=c("tmedia" = "Temp. Média", "tmax" = "Temp. Máx")) +
    theme(legend.position="none") +
    facet_grid(~cidade)

Ao observar o Gráfico 2 se constata que de fato não existem relevantes diferenças entre as variações, entretanto existem diferenças consideráveis entre os valores. Portanto, essas grandezas apresentam consideráveis diferenças em termos de valor, mas não em termos de variação e consequentemente são aproximadamente diferentes, quando comparadas entre si, de seus próprios valores.

Quais os meses mais quentes e mais frios?

Para se analisar quais são os meses mais quentes e mais frios pode-se tirar a média histórica de cada mês e observar junto de sua variação, para identificar quais meses apresentaram maiores e menores temperaturas. Para isso uma visualização de boxplots pode ser útil e se faz presente no Gráfico 3.

medias <- clima %>% 
    group_by(cidade, mes) %>% 
    summarise(tmedia = mean(tmedia), .groups = 'drop')

mes_nome <- c("Jan", "Fev", "Mar", "Abr", "Mai","Jun", "Jul", "Ago", "Set", 
              "Out","Nov", "Dez")
names(mes_nome) <- c("1", "2", "3", "4", "5", "6", "7","8", "9", "10", "11", "12")

clima %>% 
    ggplot() +
        ggtitle("Gráfico 3 - Variação da Temperatura por Mês \nnas cidades de Campina Grande e João Pessoa") +
        theme(plot.title = element_text(hjust = 0.5)) +
        aes(x=cidade, y=tmedia, fill=cidade) +
        geom_boxplot() +
        stat_summary(fun=mean, geom="point", size=3) +
        geom_text(data=medias, aes(label=sprintf("%0.1f", tmedia)), size=2.5, vjust=-1) +
        facet_grid(~mes, labeller = labeller(mes = mes_nome)) +
        labs(x=NULL, y="Temperatura Média (ºC)", fill="Cidades") +
        theme(axis.text.x=element_blank())

A partir da observação do Gráfico 3 pode-se verificar que as maiores médias de temperatura mensal para Campina Grande se encontram nos meses de novembro, dezembro, janeiro, fevereiro e março. Em João Pessoa também pode-se observar as maiores temperaturas sendo verificadas nesses mesmos meses. Em Campina Grande os meses de menores temperaturas são junho, julho e agosto. O mesmo padrão é observado na cidade de João Pessoa. Analisando ainda que a variação de temperatura nesses meses não varia de forma tão significativa, então pode-se afirmar que os meses mais quentes para as cidades de Campina Grande e João pessoa são: janeiro, fevereiro, março, novembro e dezembro, assim como os meses mais frios para essas mesmas cidades são: junho, julho e agosto.

Qual foi o São João mais frio de CG que está nos nossos dados?

Para analisar variação de temperatura dentro de um determinado período os boxplots se mostram muito úteis, desta forma mais uma vez pode-se verificar qual o mês mais frio através do Gráfico 4.

medias <- subset(clima, cidade=="Campina Grande" & mes=="6") %>% 
    group_by(ano) %>% 
    summarise(tmedia = mean(tmedia), .groups = 'drop')

subset(clima, cidade=="Campina Grande" & mes=="6") %>%
    ggplot() +
        aes(x=0, y=tmedia) +
        ggtitle("Gráfico 4 - Variação e Média das temperaturas do São João de Campina Grande durante os anos") +
        geom_boxplot(fill="lightblue") +
        stat_summary(fun=mean, geom="point", size=3) +
        geom_text(data=medias, aes(label=sprintf("%0.1f", tmedia)), size=2.5,
              vjust=-0.5) +
        facet_grid(~ano) +
        labs(x=NULL, y="Temperatura Média (ºC)") +
        theme(axis.text.x=element_blank())

A partir do Gráfico 4 facilmente se chega à conclusão de que o São João mais frio dentro dos registros foi o de 2004, tanto pela menor média apresentada, quanto por uma variação muito concentrada em temperaturas próximas à média.

Chuva

Quanto chove por semana em JP e CG?

Como é a distribuição do volume de chuvas por semana em JP e CG? A chuva varia mais ou menos que a temperatura? O formato da distribuição é igual?

Para verificar quanto chove por semana em João Pessoa e Campina Grande primeiro é preciso entender que o volume de chuvas é muito irregular e até mesmo existem semanas em que ele não existe. Portanto, para responder a essa pergunta, os volumes de chuva semanais foram categorizados em: “sem chuva”, “fraca”, “moderada”, “forte” e “muito forte”, de acordo com a própria classificação da Agência Executiva de Gestão das Águas da Paraíba, a AESA-PB. Na Tabela 3 pode-se verificar a frequência com que cada classificação de chuva ocorreu.

subset_cg <- subset(clima, cidade=="Campina Grande")
subset_cg_nrow <- nrow(subset_cg)

chuva_sem_cg <- nrow(filter(subset_cg, chuva < 0.025)) / subset_cg_nrow
chuva_fraca_cg <- nrow(filter(subset_cg, 0.025 < chuva & chuva < 12.5)) / subset_cg_nrow
chuva_moderada_cg <- nrow(filter(subset_cg, 12.5 < chuva & chuva < 25)) / subset_cg_nrow
chuva_forte_cg <- nrow(filter(subset_cg, 25 < chuva & chuva < 50)) / subset_cg_nrow
chuva_muito_forte_cg <- nrow(filter(subset_cg, chuva > 50)) / subset_cg_nrow

subset_jp <- subset(clima, cidade=="João Pessoa")
subset_jp_nrow <- nrow(subset_jp)

chuva_sem_jp <- nrow(filter(subset_jp, chuva < 0.025)) / subset_jp_nrow
chuva_fraca_jp <- nrow(filter(subset_jp, 0.025 < chuva & chuva < 12.5)) / subset_jp_nrow
chuva_moderada_jp <- nrow(filter(subset_jp, 12.5 < chuva & chuva < 25)) / subset_jp_nrow
chuva_forte_jp <- nrow(filter(subset_jp, 25 < chuva & chuva < 50)) / subset_jp_nrow
chuva_muito_forte_jp <- nrow(filter(subset_jp, chuva > 50)) / subset_jp_nrow

c.cidades <- c(unique(clima$cidade))

c.chuva_sem <- c(percent(chuva_sem_cg), percent(chuva_sem_jp))
c.chuva_fraca <- c(percent(chuva_fraca_cg), percent(chuva_fraca_jp))
c.chuva_moderada <- c(percent(chuva_moderada_cg), percent(chuva_moderada_jp))
c.chuva_forte <- c(percent(chuva_forte_cg), percent(chuva_forte_jp))
c.chuva_muito_forte <- c(percent(chuva_muito_forte_cg), percent(chuva_muito_forte_jp))

df.chuva_cg_jp <- data.frame("Cidades"=c.cidades,
                                  "Sem Chuva"=c.chuva_sem,
                                  "Fraca"=c.chuva_fraca,
                                  "Moderada"=c.chuva_moderada,
                                  "Forte"=c.chuva_forte,
                                  "Muito Forte"=c.chuva_muito_forte)

kable(df.chuva_cg_jp, caption = "Tabela 3 - Comparação da intensidade de chuvas das cidades de Campina Grande e João Pessoa.
      ")%>%kable_styling()
Tabela 3 - Comparação da intensidade de chuvas das cidades de Campina Grande e João Pessoa.
Cidades Sem.Chuva Fraca Moderada Forte Muito.Forte
Campina Grande 19% 49% 14% 11% 7%
João Pessoa 6% 40% 15% 15% 23%

Observando a Tabela 3 logo se percebe, como era de se esperar, que a maior frequência precipitação está nas categorias “Sem chuva” e “Fraca”, somando 58% dos acontecimentos na cidade de Campina Grande e 46% dos acontecimentos da cidade de João Pessoa nessas categorias. Agora que já se sabe a frequência relativa da precipitação, pode-se fazer uma análise das médias de precipitação em cada uma dessas classificação mais a média geral na Tabela 4.

mean_chuva_cg <- mean(subset_cg$chuva)
mean_chuva_sem_cg <- mean(filter(subset_cg, chuva < 0.025)$chuva)
mean_chuva_fraca_cg <- mean(filter(subset_cg, 0.025 < chuva & chuva < 12.5)$chuva)
mean_chuva_moderada_cg <- mean(filter(subset_cg, 12.5 < chuva & chuva < 25)$chuva)
mean_chuva_forte_cg <- mean(filter(subset_cg, 25 < chuva & chuva < 50)$chuva)
mean_chuva_muito_forte_cg <- mean(filter(subset_cg, chuva > 50)$chuva)

mean_chuva_jp <- mean(subset_jp$chuva)
mean_chuva_sem_jp <- mean(filter(subset_jp, chuva < 0.025)$chuva)
mean_chuva_fraca_jp <- mean(filter(subset_jp, 0.025 < chuva & chuva < 12.5)$chuva)
mean_chuva_moderada_jp <- mean(filter(subset_jp, 12.5 < chuva & chuva < 25)$chuva)
mean_chuva_forte_jp <- mean(filter(subset_jp, 25 < chuva & chuva < 50)$chuva)
mean_chuva_muito_forte_jp <- mean(filter(subset_jp, chuva > 50)$chuva)

c.cidades <- c(unique(clima$cidade))

c.means_chuva <- c(mean_chuva_cg, mean_chuva_jp)

c.means_chuva_sem <- c(mean_chuva_sem_cg, mean_chuva_sem_jp)
c.means_chuva_fraca <- c(mean_chuva_fraca_cg, mean_chuva_fraca_jp)
c.means_chuva_moderada <- c(mean_chuva_moderada_cg, mean_chuva_moderada_jp)
c.means_chuva_forte <- c(mean_chuva_forte_cg, mean_chuva_forte_jp)
c.means_chuva_muito_forte <- c(mean_chuva_muito_forte_cg, mean_chuva_muito_forte_jp)

df.means_chuva_cg_jp <- data.frame("Cidades"=c.cidades,
                             "Média"=c.means_chuva,
                             "Sem Chuva"=c.means_chuva_sem,
                             "Fraca"=c.means_chuva_fraca,
                             "Moderada"=c.means_chuva_moderada,
                             "Forte"=c.means_chuva_forte,
                             "Muito Forte"=c.means_chuva_muito_forte)

kable(df.means_chuva_cg_jp, caption = "Tabela 4 - Comparação das médias de intensidade de chuva das cidades de Campina Grande e João Pessoa.
      ")%>%kable_styling()
Tabela 4 - Comparação das médias de intensidade de chuva das cidades de Campina Grande e João Pessoa.
Cidades Média Sem.Chuva Fraca Moderada Forte Muito.Forte
Campina Grande 13.99730 0 4.129167 18.33593 35.61898 74.58764
João Pessoa 32.64849 0 4.182439 17.98696 36.46913 99.80983

A partir da Tabela 4 percebe-se que, em geral, as médias de precipitação em cada categoria são relativamente similares, entretanto, a média geral de precipitação por semana da cidade de João Pessoa é mais que o dobro da cidade de Campina Grande. Isso pode ser explicado pelo fato da concentração de semanas com chuva muito forte ser bem maior em João Pessoa, assim como a média de precipitação dessa categoria nessa cidade também ser maior. Porém, para entender melhor como funciona a distribuição de chuvas nessas cidades pode-se se analisar essa distrubuição através de um histograma, como pode ser conferido no Gráfico 5.

ggplot(clima) +
        aes(chuva, fill=cidade) +
        ggtitle("Gráfico 5 - Distribuição das chuvas \nnas cidades de Campina Grande e João Pessoa") +
        theme(plot.title = element_text(hjust = 0.5)) +
        geom_histogram(bins = 32) +
        facet_grid(~cidade) +
        labs(y="Observações por semana", x="Precipitação semanal (mm)", fill="Cidades")

Em linhas gerais, a partir do Gráfico 5 percebe-se que as duas cidades tem distribuições de precipatação parecidas, porém, fica bem clara o maior número de observações de baixa precipitação na cidade de Campina Grande, assim como também fica evidente uma maior concentração de maiores precipitações na cidade de João Pessoa. No Gráfico 6 pode-se fazer uma comparação dessas distribuições com as distribuições de temperatura.

chuvaXtemperatura <- ggarrange(
    ggplot(clima) +
        aes(chuva) +
        geom_histogram(bins = 32) +
        facet_grid(~cidade) +
        labs(y="Observações", x="Precipitação (mm)"),
    ggplot(clima) +
        aes(tmedia) +
        geom_histogram(bins = 32) +
        facet_grid(~cidade) +
        labs(y="Observações", x="Temperatura (ºC)"),
ncol = 1, nrow = 2)

annotate_figure(chuvaXtemperatura, top = text_grob("Gráfico 6 - Comparação entre as distribuições de chuva e de temperatura"))

Como pode-se perceber pelo Gráfico 6, as distribuições são diferentes, enquanto a distribuição de chuvas é assimétrica com viés positivo, a distribuição de temperaturas é assimétrica com viés negativo. Porém, pelos gráficos agrupados não fica tão claro a diferença de variação entre as distribuições, tendo em vista que as escalas são diferentes. Para podermos observar melhor as distribuições, pode-se elencar os desvios padrões como foi feito na Tabela 5.

c.sd_chuva <- c(sd(subset_cg$chuva), sd(subset_jp$chuva))
c.sd_temp <- c(sd(subset_cg$tmedia), sd(subset_jp$tmedia))

df.sd_chuva_cg_jp <- data.frame("Cidades"=c.cidades,
                                   "Precipitação"=c.sd_chuva,
                                   "Temperatura"=c.sd_temp)

kable(df.sd_chuva_cg_jp, caption = "Tabela 5 - Comparação dos Desvios Padrão das distribuições de chuva e de temperatura das cidades de Campina Grande e João Pessoa.
      ")%>%kable_styling()
Tabela 5 - Comparação dos Desvios Padrão das distribuições de chuva e de temperatura das cidades de Campina Grande e João Pessoa.
Cidades Precipitação Temperatura
Campina Grande 21.65174 1.525646
João Pessoa 44.47010 1.180293

A partir da Tabela 5 fica muito claro as diferenças de variação das distribuições de chuva e temperatura. A distribuição das chuvas é muito maior.

No geral, onde chove mais?

Apesar de já se poder levantar uma hipótese de onde chove mais a partir dos dados já análisados, pois João Pessoa até o momento apresentou bem mais sinais de que tem maiores volumes de chuva, pode-se ainda fazer uma análise por ano, elencando a variação em todos os anos comparando as duas cidades, como foi feito no Gráfico 7.

clima  %>% filter(ano >= 1994) %>%
    ggplot() +
    ggtitle("Gráfico 7 - Variação da Precipitação Anual \nnas cidades de Campina Grande e João Pessoa") +
    theme(plot.title = element_text(hjust = 0.5)) +
    aes(x=cidade, y=chuva, fill=cidade) +
    geom_boxplot() +
    facet_grid(~ano) +
    labs(x=NULL, y="Precipitação anual (mm)", fill="Cidades") +
    theme(axis.text.x=element_blank()) +
    ylim(0, 200)

Analisando o Gráfico 7 se percebe que em todos os anos analisados a mediana da precipitação, assim como a concentração de precipitações mais altas acontece sempre na cidade de João Pessoa, confirmando a hipótese que ela e uma cidade mais chuvosa em relação à Campina Grande.

A distribuição é diferente em meses específicos?

Para fazer essa análise é viável distribuir a variação de todos os meses de forma agrupada para verificar se há diferença nas distribuições, como pode ser verificado no Gráfico 8.

mes_nome <- c("Jan", "Fev", "Mar", "Abr", "Mai","Jun", "Jul", "Ago", "Set", 
              "Out","Nov", "Dez")
names(mes_nome) <- c("1", "2", "3", "4", "5", "6", "7","8", "9", "10", "11", "12")

clima %>%
    ggplot() +
    ggtitle("Gráfico 8 - Variação das Precipitações Mensais \nnas cidades de Campina Grande e João Pessoa") +
    theme(plot.title = element_text(hjust = 0.5)) +
    aes(chuva, fill=cidade) +
    geom_histogram(bins = 32) +
    facet_wrap(~mes, labeller = labeller(mes = mes_nome)) +
    labs(x="Precipitação Mensal (mm)", y="Número de observações", fill="Cidades")

Como pode-se observar, de fato, as distribuções não seguem uma mesma tendência durante, os meses, inclusive até porque, também de fato, as precipitações ocorrem em volumes diferentes durante os meses. A partir do Gráfico 8 fica notável a partir de janeiro, a medida que os meses aumentam, e consequentemente os níveis de chuva, o skeewness da distribuição também aumenta, atingindo seu nível mais alto em junho e depois volta a diminuir até voltar a patamares parecidos com o de janeiro em outubro.