Introdução

Esta análise explanatória será feita utilizando dados sobre os climas das cidades de Campina Grande (CG) e João Pessoa (JP). Logo abaixo será respondido 9 perguntas tomando como base os dados fornecidos.

Antes de tudo, será importado as nossas bibliotecas que serão utilizadas para plotagem dos gráficos para responder as questões.

Logo após, será importado a nossa base de dados.

climas = read_csv(here::here("data/clima_cg_jp-semanal.csv"), 
                  col_types = "cTdddddd")

glimpse(climas)
## Observations: 2,748
## Variables: 8
## $ cidade <chr> "Campina Grande", "Campina Grande", "Campina Grande", "...
## $ semana <dttm> 1992-12-27, 1993-01-03, 1993-01-10, 1993-01-31, 1993-0...
## $ tmedia <dbl> 26.13333, 26.11905, 25.76667, 25.74000, 26.31429, 26.28...
## $ tmax   <dbl> 30.4, 32.4, 32.2, 32.0, 32.7, 32.7, 32.3, 32.3, 32.1, 3...
## $ tmin   <dbl> 20.7, 19.3, 19.7, 19.9, 19.6, 20.0, 20.4, 21.2, 19.0, 1...
## $ chuva  <dbl> 0.0, 0.0, 0.0, 0.4, 0.3, 0.0, 4.9, 0.0, 0.0, 6.1, 0.4, ...
## $ mes    <dbl> 12, 1, 1, 1, 2, 2, 2, 2, 10, 11, 11, 11, 11, 12, 12, 12...
## $ ano    <dbl> 1992, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1993, 1...

Antes de partir para as perguntas, é necessário que se entenda o que cada coluna do nosso data frame significa: * cidade: Cidade onde foi feita a coleta (Campina Grande ou João Pessoa) * semana: Os dados são divididos entre semanas, então toda semana foram coletados dados * tmedia: Temperatura média da cidade * tmax: Temperatura máxima da cidade * tmin: Temperatura mínima da cidade * chuva: O quanto choveu na cidade * mes: Mês que a semana pertence * ano: Ano que a semana pertence

Temperatura

Onde é mais quente?

Para responder a pergunta acima, teremos que agrupar os dados por cidade e calcular as médias de todas as semanas para assim concluir qual a cidade é mais quente.

dadosCidade <- climas %>% 
    group_by(cidade) %>% 
    summarise(media_total = mean(tmedia))

dadosCidade %>% 
    plot_ly(x= ~cidade, y= ~media_total, type= "bar") %>% 
    layout(title = "Média temperatura CG x JP",
           xaxis=list(title="Cidade"),
           yaxis=list(title="Temperatura Média (°C)"))

Sendo assim, obtemos uma temperatura média de 24.7°C e 27.7°C aproxidamente para Campina Grande e João Pessoa, respectivamente. Dessa forma, podemos afirmar que a capital paraibana é mais quente que Campina Grande.

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

Para saber se as temperaturas máximas semanais são tão diferentes quanto as médias, precisamos agrupar os dados novamente por cidade e calcular as médias das temperaturas máximas registradas.

dadosTempMax <- climas %>% 
    group_by(cidade) %>% 
    summarise(media_temp_max = mean(tmax))

Após isso, plotamos as duas médias obtidas:

dadosTempMax %>% 
    plot_ly(x= ~cidade, y= ~media_temp_max, type= "bar") %>% 
    layout(title = "Média temperatura máxima CG x JP",
           xaxis=list(title="Cidade"),
           yaxis=list(title="Temperatura Média (°C)")
           )

Foi obtido uma média de 30.3°C para Campina Grande e 30.7°C para João Pessoa, aproxidamente. O que resulta em uma diferença de apenas 0.4°C, bem menos do que a diferença entre as temperaturas obtidas na questão anterior. Comparando com as médias da questão anterior, pode-se ver uma diferença maior na cidade de Campina que foi de 6°C, aproximadamente. Já na cidade de João Pessoa a diferença foi apenas de 3°C.

Para entender melhor os resultados, foi plotado um gráfico de pontos.

climas %>% 
    plot_ly(y = ~tmax, type = "scatter", mode = "markers", color = ~cidade) %>% 
    layout(title = "Temperaturas máximas CG x JP",
           yaxis = list(title="Temperatura máxima (°C)"), barmode="stack")

Observando o gráfico acima, pode-se ver que a cidade de Campina Grande realmente tem uma variação maior de temperaturas máximas, variando de 25°C até 34.6°C. Enquanto a maioria das temperaturas máximas de João Pessoa estão mais concentradas na região de 30°C.

Quais os meses mais quentes e mais frios?

Para saber quais os meses mais quentes e mais frios, temos que agrupar os dados por mês, para depois calcular as médias da temperatura de cada mês.

dadosMes <- climas %>% 
    group_by(mes) %>% 
    summarise(media_mes = mean(tmedia))

dadosMes %>% 
    plot_ly(x= ~mes, y= ~media_mes, type = "scatter", mode= "lines+markers") %>% 
    layout(title = "Média de temperatura por mês - CG x JP",
           xaxis=list(title="Mês"),
           yaxis=list(title="Temperatura média (°C)"), barmod="stack")

Como esperado, temos como mês mais frio o mês de Julho (07), seguido por Agosto (08) e Junho (06) obtendo temperaturas médias aproximada de 24.4°C, 24.7°C e 24.8°C, respectivamente. Esses meses se encaixam na estação de inverno do país. E como mês mais quente temos Março (03), seguido por Fevereiro (02) e Dezembro (12) com temperatura média aproximada de 27.5°C, 27.4°C e 27.3°C, um fato parcialmente esperado, pois apesar de Dezembro ser o início do verão, era esperado que o mês de Janeiro (01) estivesse entre as maiores médias de temperatura.

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

Para responder a pergunta acima, temos que filtrar os dados referentes apenas a cidade de Campina Grande do mês de Junho (06), pois é o mês que ocorre a festa de maior São João do mundo.

dadosSJ <- climas %>% 
    group_by(ano) %>% 
    filter(cidade == "Campina Grande") %>% 
    filter(mes == 6) %>% 
    summarise(mediaSJ = mean(tmedia))


dadosSJ %>% 
    plot_ly(x = ~ano, y = ~mediaSJ, type = "scatter", mode= "lines+markers") %>% 
    layout(title = "Média de temperatura por São João - Campina Grande",
           xaxis = list(title = "Ano"),
           yaxis = list(title = "Temperatura Média (°C)"))

Observando o gráfico plotado acima podemos afirmar que o São João mais frio de CG foi o do ano de 2004, registrando uma temperatura média de 22.1°C, aproximadamente.

Chuva

Quanto chove por semana em JP e CG?

Para responder a pergunta acima, é necessário agrupar mais uma vez por cidade e calcular as médias de chuvas de CG e JP.

dadosChuvaSemana <- climas %>% 
    group_by(cidade) %>% 
    summarise(media_chuva = mean(chuva))

dadosChuvaSemana %>% 
    plot_ly(x= ~cidade, y= ~media_chuva, type= "bar") %>% 
    layout(title = "Média chuva CG x JP",
           xaxis=list(title="Cidade"),
           yaxis=list(title="Média chuva (mm)"))

Foi obtido o valor de 14.0mm para a cidade de CG e 32.6mm para JP, aproximadamente.

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 responder a questão acima, é preciso que se calcule a temperatura máxima, a temperatura mínima, a quantidade de chuva máxima, a quantidade de chuva mínima, a variância da temperatura e a variância da chuva.

Para os dados de Campina Grande, temos:

dadosChuvaTempCG <- climas %>% 
    filter(cidade == "Campina Grande") %>% 
    summarise(temp_max = max(tmax),
              temp_min = min(tmin),
              chuva_max = max(chuva),
              chuva_min = min(chuva),
              var_temp = var(tmedia),
              var_chuva = var(chuva))

dadosChuvaTempCG
## # A tibble: 1 x 6
##   temp_max temp_min chuva_max chuva_min var_temp var_chuva
##      <dbl>    <dbl>     <dbl>     <dbl>    <dbl>     <dbl>
## 1     34.6     15.3      192.         0     2.33      469.

Levando em conta que o Nordeste é uma região quente então não vemos uma variação tão grande da temperatura quanto a de chuvas, isso fica evidente em Campina Grande, pois a temperatura máxima é de 34.6°C e a temperatura mínima é de 15.3°C, já os dados de chuva durante várias semanas é de 0mm, ou seja, enquanto temos semanas que não chovem nada, também temos semanas que chovem 191.9mm.As variâncias confirmam a nossa linha de pensamento, registrando uma variância da temperatura de 2.33 e uma variância do volume de chuva de 468.80 aproximadamente.

Para os dados de João Pessoa, temos:

dadosChuvaTempJP <- climas %>% 
    filter(cidade == "João Pessoa") %>% 
    summarise(temp_max = max(tmax),
              temp_min = min(tmin),
              chuva_max = max(chuva),
              chuva_min = min(chuva),
              var_temp = var(tmedia),
              var_chuva = var(chuva))

dadosChuvaTempJP
## # A tibble: 1 x 6
##   temp_max temp_min chuva_max chuva_min var_temp var_chuva
##      <dbl>    <dbl>     <dbl>     <dbl>    <dbl>     <dbl>
## 1     33.7     15.6      352.         0     1.39     1978.

Olhando os resultados da cidade de João Pessoa vemos uma repetição dos dados de Campina, no entanto, vemos uma variância maior quando falamos de volume de chuva e uma variância menor em respeito aos dados de temperatura. Os resultados são: temperatura máxima de 33.7°C, temperatura mínima de 15.6°C, voluma de chuva máximo de 351.6mm e volume de chuva mínima de 0mm. Resultando em uma variância de 1.39 na temperatura e 1977.59 no volume de chuva. Finalmente, a variância é significativamente maior no volume de chuva.

Para melhor contribuição plotou-se dois gráficos de pontos para analisar a distribuição de volume de chuva e distribuição das temperaturas médias.

climas %>% 
    plot_ly(y = ~tmedia, type = "scatter", mode = "markers", color = ~cidade) %>% 
    layout(title = "Temperaturas média CG x JP",
           yaxis = list(title="Distribuição Temperaturas médias (°C)"), barmode="stack")
histogramaTemp <- climas %>% 
    ggplot(mapping = aes(x = tmedia, fill = cidade)) +
    geom_histogram(bins = 25) +
    facet_wrap(~cidade) +
    labs(title = "Distribuição de temperaturas médias CG x JP", x = "Temperatura média (ºC)")

histogramaTemp

climas %>% 
    plot_ly(y = ~chuva, type = "scatter", mode = "markers", color = ~cidade) %>% 
    layout(title = "Quantidade de chuva CG x JP",
           yaxis = list(title="Distribuição de chuvas (mm)"), barmode="stack")
histogramaChuva <- climas %>% 
    ggplot(mapping = aes(x = chuva, fill = cidade)) +
    geom_histogram(bins = 25) +
    facet_wrap(~cidade) +
    labs(title = "Distribuição do volume de chuvas CG x JP", x = "Volume de chuva (mm)", y = "Quantidade")

histogramaChuva

Após observar os gráficos acima, fica claro o que afirmamos anteriormente. Existem semanas que não chove nada e semanas que chove muito. Enquanto na temperatura não temos temperaturas igual ou abaixo de 0°C, resultando em uma variância menor.

No geral, onde chove mais?

Considerando as análises feitas anteriormente, podemos concluir que em JP tem uma média superior de chuva do que em CG, tendo como médias 32.65mm e 14.0mm, respectivamente.

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

Para responder a questão acima, começamos agrupando os dados em cidade e mês e calculando as médias de chuvas por cada mês. Após isso, plotou-se a média do volume de chuva de cada cidade abaixo.

dadosMesChuva <- climas %>% 
    group_by(cidade, mes) %>% 
    summarise(media_chuva_mes = mean(chuva))

dadosMesChuva %>% 
    plot_ly(x= ~mes, y= ~media_chuva_mes, type = "scatter", mode= "lines+markers", color = ~cidade) %>% 
    layout(title = "Média de chuva por mês",
           xaxis=list(title="Mês"),
           yaxis=list(title="Chuva média"), barmod="stack")

Pode-se notar que o volume de chuvas seguiram o mesmo movimento, mas a cidade de João Pessoa com um volume maior de chuva. Nas duas cidades, o mês com menos chuvas foi o de Novembro (11) com uma média de volume de chuva de 2.57mm em CG e 4.74mm em JP, aproximadamente. Já o mês com o maior volume de chuva nas duas cidades foi Junho (06) com dados de 28.18mm em CG e 76.55mm em JP.

Partindo agora para visualizar as distribuições, começamos com a temperatura média:

tmediaMesCG <- climas %>% 
    group_by(tmedia, mes) %>% 
    summarise(quantidade = n())

tmediaMesCG %>% 
    plot_ly(x = ~mes, y = ~tmedia, size = ~quantidade, type = "scatter", mode = "markers") %>% 
    layout(title = "Distribuição temperatura média",
           xaxis = list(title = "Mês"),
           yaxis = list(title="Temperatura média"), barmode="stack")

Pode-se confirmar as afirmações ditas anteriormente, pois no mês de março tem pontos com o tamanho maior próximo a 30°C, o que significa que existem mais temperaturas registradas. Pode-se observar também que o mês de Julho (mês considerado mais frio) tem pontos maiores do que os outros meses abaixo dos 22°C. Então a distribuição de temperatura varia a partir do mês que está sendo analisado.

chuvaMesCG <- climas %>% 
    group_by(chuva, mes) %>% 
    summarise(quantidade = n())

chuvaMesCG %>% 
    plot_ly(x = ~mes, y = ~chuva, size = ~quantidade, type = "scatter", mode = "markers") %>% 
    layout(title = "Distribuição do volume de chuva",
           xaxis = list(title="Mês"),
           yaxis = list(title="Chuva"), barmode="stack")

Da mesma forma que aconteceu com a temperatura, podemos afirmar também com os dados de chuva. Por exemplo, meses que são considerados quentes tem uma concentração maior de chuvas próximo a 0 mmcomo Novembro, Dezembro e Janeiro. Já os meses de Junho, Julho e Agosto tem pontos com tamanho menores próximos de 0mm, além disso, eles têm uma quantidade maior de ponto ultrapassando 100mm chegando em valores até 350mm. Finalmente, podemos afirmar que a chuva também varia de acordo com o mês que está sendo analisando.