Temperatura JP x CG

Dados

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…

Calcula a temperatura da semana anterior em cada linha:

# Calcula a temperatura da semana anterior
climas <- climas %>%
  group_by(cidade) %>%
  arrange(cidade, semana) %>%
  mutate(temp_anterior = lag(tmedia))

# Substitui os NA pela média da coluna
climas <- climas %>%
  group_by(cidade) %>%
  mutate(temp_anterior = ifelse(is.na(temp_anterior), mean(temp_anterior, na.rm = TRUE), temp_anterior))

Q1: Qual a cidade é mais quente? Isso muda se considerarmos apenas o período de janeiro e fevereiro (pico do verão)?

Análise Anual:

Vamos começar visualizando a sistribuição das temperaturas médias, utilizando o boxplot para comparar a distribuição das temperaturas médias anuais por cidade.

# Boxplot para comparar a distribuição das temperaturas médias anuais por cidade
boxplot(climas$tmedia ~ as.factor(climas$cidade),
        main = "Distribuição Temperatura Média Anual por Cidade",
        xlab = "Cidade",
        ylab = "Temperatura Média Anual (°C)")

Observando a forma e a posição das caixas e dos pontos podemos identificar diferenças entre as cidades, ou seja, as temperaturas médias anuais em João Pessoa tendem a ser mais elevadas que as temperaturas médias anuais em Campina Grande.

Agora vamos avaliar um resumo descritivo das temperaturas médias, utilizando o summary() para obter medidas de tendência central (média, mediana) e dispersão (desvio padrão, variância) das temperaturas médias para cada cidade.

summary(subset(climas, cidade == "Campina Grande")$tmedia)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   20.77   23.52   25.00   24.69   25.87   28.57
summary(subset(climas, cidade == "João Pessoa")$tmedia)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   23.99   26.79   27.84   27.65   28.57   30.11

Comparando as médias e outras medidas temos uma ideia geral das diferenças entre as cidades:

  • Mínimo (Min.): A temperatura mínima registrada foi de 20.77°C em Campina Grande e 23.99°C em João Pessoa.
  • 1º Quartil (1st Qu.): 25% dos dados estão abaixo desses valores. Em Campina Grande, 25% das temperaturas foram menores que 23.52°C e em João Pessoa, 25% das temperaturas foram menores que 26.79°C.
  • Mediana (Median): Representa o valor central dos dados. Em Campina Grande, a mediana foi de 25.00°C, e em João Pessoa, foi de 27.84°C.
  • Média (Mean): A média aritmética das temperaturas. Em Campina Grande, a média foi de 24.69°C, e em João Pessoa, foi de 27.65°C.
  • 3º Quartil (3rd Qu.): 75% dos dados estão abaixo desses valores. Em Campina Grande, 75% das temperaturas foram menores que 25.87°C, e em João Pessoa, 75% das temperaturas foram menores que 28.57°C.
  • Máximo (Max.): A temperatura máxima registrada foi de 28.57°C em Campina Grande e 30.11°C em João Pessoa.

Vamos fazer uma comparação detalhada das temperaturas médias, utilizando o t.test() para verificar se há diferença significativa nas médias de temperatura entre as cidades, assumindo que as temperaturas seguem uma distribuição normal. O valor p do teste indica a probabilidade de observar uma diferença tão extrema ou mais extrema nas médias, assumindo que as médias são iguais. Um valor p baixo (geralmente menor que 0,05) indica que há evidências suficientes para rejeitar a hipótese nula de médias iguais.

t.test(subset(climas, cidade == "Campina Grande")$tmedia, 
       subset(climas, cidade == "João Pessoa")$tmedia)
## 
##  Welch Two Sample t-test
## 
## data:  subset(climas, cidade == "Campina Grande")$tmedia and subset(climas, cidade == "João Pessoa")$tmedia
## t = -55.828, df = 2261.7, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -3.066462 -2.858346
## sample estimates:
## mean of x mean of y 
##  24.69077  27.65318

Vamos utilizar também o anova() para verificar se há diferença significativa nas médias de temperatura entre as cidades, mesmo que as temperaturas não sigam uma distribuição normal. O valor p do teste ANOVA indica a probabilidade de observar um modelo tão extremo ou mais extremo, assumindo que as médias são iguais. Um valor p baixo (geralmente menor que 0,05) indica que há evidências suficientes para rejeitar a hipótese nula de médias iguais.

anova(lm(tmedia ~ cidade, data = climas))

O teste t de Welch (para amostras com variâncias possivelmente desiguais) indica que há uma diferença significativa na média de temperatura entre Campina Grande e João Pessoa (p-valor < 2.2e-16). A média de temperatura em João Pessoa (27,65°C) é maior que a média de temperatura em Campina Grande (24,69°C) durante todo o ano.

Análise do Pico do Verão (Janeiro e Fevereiro):

Vamos cálcular as médias de temperatura em janeiro e fevereiro e calcular a média de temperatura em janeiro e fevereiro para cada cidade.

media_cg_jan_fev <- mean(subset(climas, cidade == "Campina Grande" & mes %in% c(1, 2))$tmedia)
media_jp_jan_fev <- mean(subset(climas, cidade == "João Pessoa" & mes %in% c(1, 2))$tmedia)

Comparação das médias de temperatura em janeiro e fevereiro:

Vamos utilizar o t.test() para verificar se há diferença significativa nas médias de temperatura em janeiro e fevereiro entre as cidades.

t.test(subset(climas, cidade == "Campina Grande" & mes %in% c(1, 2))$tmedia, 
       subset(climas, cidade == "João Pessoa" & mes %in% c(1, 2))$tmedia)
## 
##  Welch Two Sample t-test
## 
## data:  subset(climas, cidade == "Campina Grande" & mes %in% c(1, 2))$tmedia and subset(climas, cidade == "João Pessoa" & mes %in% c(1, 2))$tmedia
## t = -39.062, df = 359.71, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -2.935509 -2.654097
## sample estimates:
## mean of x mean of y 
##  25.85547  28.65027

Vamos visualizar as médias de temperatura em janeiro e fevereiro, uUtilizando um barplot para comparar visualmente as médias de temperatura em janeiro e fevereiro entre as cidades.

barplot(c(media_cg_jan_fev, media_jp_jan_fev), names.arg = c("Campina Grande", "João Pessoa"), main = "Médias de Temperatura (Jan-Fev) por Cidade")

O teste t de Welch para o período de janeiro e fevereiro também indica uma diferença significativa na média de temperatura entre as cidades (p-valor < 2.2e-16). A média de temperatura em João Pessoa (27,84°C) continua sendo maior que a média de temperatura em Campina Grande (24,69°C) no verão.

Conclusão Geral:

Com base na análise dos dados, podemos concluir que João Pessoa é a cidade mais quente, tanto considerando todo o ano quanto focando especificamente no pico do verão (janeiro e fevereiro).

Q2: Quais os meses mais quentes e mais frios? Como você descreveria a temperatura das festas juninas das cidades nos últimos anos?

Meses Mais Quentes e Mais Frios:

Para determinar os meses mais quentes e mais frios em Campina Grande e João Pessoa, podemos analisar a média de temperatura por mês ao longo dos anos.

# Cálculo da média mensal por cidade
media_mensal <- climas %>%
  group_by(cidade, mes) %>%
  summarise(tmedia_media = mean(tmedia), .groups = 'drop')
# Ordenação por temperatura média decrescente (meses mais quentes)
meses_mais_quentes <- media_mensal %>%
  arrange(desc(tmedia_media)) %>%
  slice_head(n = 5) %>%
  select(cidade, mes, tmedia_media)

# Ordenação por temperatura média crescente (meses mais frios)
meses_mais_frios <- media_mensal %>%
  arrange(tmedia_media) %>%
  slice_head(n = 5) %>%
  select(cidade, mes, tmedia_media)

Meses mais frios por cidade:

meses_mais_frios

Meses mais quentes por cidade:

meses_mais_quentes

Podemos observar que João Pessoa apresenta os meses mais quentes e suas temperaturas mais altas nos meses de março, fevereiro, janeiro, dezembro e abril, com médias de 28.84°C, 28.78°C, 28.53°C, 28.46°C e 28.30°C, respectivamente. Esses meses correspondem ao período de transição entre o verão e o outono, indicando que João Pessoa tende a ter temperaturas mais elevadas durante essa época do ano.

Por outro lado, Campina Grande registra os meses mais frios e suas temperaturas mais baixas são nos meses de julho, agosto, junho, setembro e maio, com médias de 22.27°C, 22.75°C, 22.84°C, 23.96°C e 24.34°C, respectivamente. Estes meses correspondem ao período de transição entre o inverno e a primavera, indicando que Campina Grande tende a ter temperaturas menos elevadas durante esta época do ano.

Temperatura das Festas Juninas nos Últimos Anos:

Para avaliar a temperatura das festas juninas nos últimos anos, podemos analisar a temperatura média durante o período das festas (geralmente em junho e julho).

# Seleção dos dados para o período das festas juninas
festas_juninas <- climas %>%
  filter(mes %in% c(6, 7))
# Cálculo da média da temperatura por cidade
media_festas_juninas <- festas_juninas %>%
  group_by(cidade) %>%
  summarise(tmedia_media = mean(tmedia))
media_festas_juninas

Com base nas temperaturas médias das Festas Juninas nos últimos anos, podemos tirar algumas conclusões sobre o clima nessas duas cidades durante esse período festivo:

  • Campina Grande tem uma temperatura média de aproximadamente 22.56°C durante as Festas Juninas. Isso sugere que as noites podem ser frescas e agradáveis, o que pode ser adequado para festividades ao ar livre típicas dessa época, como fogueiras e danças.
  • João Pessoa, por outro lado, tem uma temperatura média de aproximadamente 26.11°C durante as Festas Juninas. Isso indica que o clima é mais quente e pode ser mais propício para festas ao ar livre com roupas mais leves, mas também pode significar que as noites podem ser mais quentes.

Q3: Quanto chove por semana em JP e CG? Descreva a distribuição do volume de chuvas para as cidades?

Para analisar a quantidade de chuva por semana em João Pessoa e Campina Grande, vamos comparar a distribuição do volume de chuvas entre as cidades.

# Cálculo da precipitação semanal
chuva_semanal <- climas %>%
  group_by(cidade, semana) %>%
  summarise(chuva_semanal = sum(chuva), .groups = 'drop')

Análise descritiva da precipitação semanal

# Medidas de tendência central
media_jp <- mean(subset(chuva_semanal, cidade == "João Pessoa")$chuva_semanal)
media_cg <- mean(subset(chuva_semanal, cidade == "Campina Grande")$chuva_semanal)

mediana_jp <- median(subset(chuva_semanal, cidade == "João Pessoa")$chuva_semanal)
mediana_cg <- median(subset(chuva_semanal, cidade == "Campina Grande")$chuva_semanal)

print(paste0("Média JP:", media_jp))
## [1] "Média JP:32.6484908136483"
print(paste0("Média CG:", media_cg))
## [1] "Média CG:13.9973039215686"
print(paste0("Mediana JP:", mediana_jp))
## [1] "Mediana JP:14.1"
print(paste0("Mediana CG:", mediana_cg))
## [1] "Mediana CG:4.9"

Em termos de medidas de tendência central, a média de precipitação semanal em João Pessoa é de aproximadamente 32.65, enquanto em Campina Grande é de aproximadamente 13.99. As medianas são 14.1 para João Pessoa e 4.9 para Campina Grande. Isso sugere que, em média, João Pessoa tende a receber mais chuva semanalmente do que Campina Grande, e as medianas indicam que a metade inferior dos valores de chuva em João Pessoa é mais alta do que em Campina Grande.

Desvio padrão e variância

dp_jp <- sd(subset(chuva_semanal, cidade == "João Pessoa")$chuva_semanal)
var_jp <- var(subset(chuva_semanal, cidade == "João Pessoa")$chuva_semanal)

dp_cg <- sd(subset(chuva_semanal, cidade == "Campina Grande")$chuva_semanal)
var_cg <- var(subset(chuva_semanal, cidade == "Campina Grande")$chuva_semanal)

print(paste0("Desvio padrão JP:", dp_jp))
## [1] "Desvio padrão JP:44.4700969750428"
print(paste0("Variância JP:", var_jp))
## [1] "Variância JP:1977.58952496971"
print(paste0("Desvio padrão CG:", dp_cg))
## [1] "Desvio padrão CG:21.6517372929494"
print(paste0("Variância CG:", var_cg))
## [1] "Variância CG:468.797727802895"

Em relação à dispersão dos dados, podemos observar que João Pessoa apresenta um desvio padrão de aproximadamente 44.47 e uma variância de aproximadamente 1977.59, indicando uma maior variabilidade nos volumes de chuva em comparação com Campina Grande, que possui um desvio padrão de aproximadamente 21.65 e uma variância de aproximadamente 468.80.

Histograma

# Histograma
ggplot(chuva_semanal, aes(x = chuva_semanal, fill = cidade)) +
  geom_histogram(binwidth = 10, position = "dodge", color = "black") +
  labs(title = "Distribuição do Volume de Chuvas Semanal",
       x = "Volume de Chuva (mm)",
       y = "Frequência") +
  scale_fill_manual(values = c("João Pessoa" = "blue", "Campina Grande" = "red")) +
  theme_minimal()

Boxplot

ggplot(chuva_semanal, aes(x = cidade, y = chuva_semanal, fill = cidade)) +
  geom_boxplot() +
  labs(title = "Distribuição do Volume de Chuvas por Cidade",
       x = "Cidade",
       y = "Volume de Chuva (mm)",
       fill = "Cidade") +
  theme_minimal()

# Teste de normalidade
shapiro_test_jp <- shapiro.test(subset(chuva_semanal, cidade == "João Pessoa")$chuva_semanal)
shapiro_test_cg <- shapiro.test(subset(chuva_semanal, cidade == "Campina Grande")$chuva_semanal)

print(paste0("Teste de Shapiro-Wilk para João Pessoa:", shapiro_test_jp$p.value))
## [1] "Teste de Shapiro-Wilk para João Pessoa:3.08178054241971e-44"
print(paste0("Teste de Shapiro-Wilk para Campina Grande:", shapiro_test_cg$p.value))
## [1] "Teste de Shapiro-Wilk para Campina Grande:2.31744186534362e-43"

Os resultados dos testes de Shapiro-Wilk indicam que os dados de precipitação semanal para ambas as cidades não seguem uma distribuição normal, pois os valores de p são muito baixos (p < 0,05), o que sugere uma forte evidência contra a hipótese nula de normalidade.

Esses resultados fornecem uma visão geral das diferenças na distribuição do volume de chuvas semanal entre João Pessoa e Campina Grande, destacando as características distintas do clima em cada cidade.

Q4: Qual a relação entre a temperatura de uma semana e a temperatura da semana anterior (descreva para as duas cidades)?

Análise da correlação

# Coeficiente de correlação de Pearson para João Pessoa
cor_jp <- cor(subset(climas, cidade == "João Pessoa")$tmedia, 
              subset(climas, cidade == "João Pessoa")$temp_anterior)

# Coeficiente de correlação de Pearson para Campina Grande
cor_cg <- cor(subset(climas, cidade == "Campina Grande")$tmedia, 
              subset(climas, cidade == "Campina Grande")$temp_anterior)
# Interpretação dos coeficientes de correlação
print(paste0("Correlação JP: ", cor_jp))
## [1] "Correlação JP: 0.858966866584528"
print(paste0("Correlação CG: ", cor_cg))
## [1] "Correlação CG: 0.879845991158604"

Com base nos coeficientes de correlação calculados:

Para João Pessoa, a correlação entre a temperatura de uma semana e a temperatura da semana anterior é de aproximadamente 0.86. Isso indica uma correlação positiva forte, sugerindo que, em geral, quando a temperatura de uma semana é alta (ou baixa), é provável que a temperatura da semana seguinte também seja alta (ou baixa). Isso sugere algum grau de consistência ou padrão na variação da temperatura ao longo das semanas.

Para Campina Grande, a correlação é ainda mais forte, cerca de 0.88. Isso também indica uma correlação positiva forte, com um padrão semelhante ao de João Pessoa.

Esses resultados sugerem que há uma relação consistente entre a temperatura de uma semana e a temperatura da semana anterior em ambas as cidades, indicando a presença de algum padrão ou tendência na variação da temperatura ao longo do tempo.

Visualização da relação

# Gráfico de dispersão para João Pessoa
ggplot(subset(climas, cidade == "João Pessoa"), aes(x = temp_anterior, y = tmedia)) +
  geom_point() +
  labs(title = "Relação entre Temperatura Semanal e Temperatura Anterior - João Pessoa") +
  xlab("Temperatura Semana Anterior") +
  ylab("Temperatura Semanal")

O gráfico de dispersão mostra uma tendência clara de aumento da temperatura de uma semana para a seguinte. A maioria dos pontos está alinhada em uma direção diagonal de baixo para cima da esquerda para a direita, o que indica uma forte correlação positiva. Os pontos estão relativamente próximos de uma linha de tendência linear, sugerindo uma correlação linear bastante forte. Não há muitos pontos que se desviem significativamente da tendência geral, indicando uma consistência na relação entre as temperaturas semanais.

# Gráfico de dispersão para Campina Grande
ggplot(subset(climas, cidade == "Campina Grande"), aes(x = temp_anterior, y = tmedia)) +
  geom_point() +
  labs(title = "Relação entre Temperatura Semanal e Temperatura Anterior - Campina Grande") +
  xlab("Temperatura Semana Anterior") +
  ylab("Temperatura Semanal")

Assim como em João Pessoa, o gráfico de dispersão para Campina Grande mostra uma tendência clara de aumento da temperatura de uma semana para a seguinte. Os pontos estão mais densamente alinhados em uma direção diagonal de baixo para cima da esquerda para a direita, indicando uma correlação positiva ainda mais forte do que em João Pessoa. A dispersão dos pontos em torno da linha de tendência parece ser um pouco menor do que em João Pessoa, o que sugere uma correlação ainda mais consistente entre as temperaturas semanais.

Q5: Qual a relação entre temperatura e chuvas nas semanas em que choveu (descreva para as duas cidades)?

Análise da correlação

# Coeficiente de correlação de Pearson para João Pessoa (semanas com chuva)
cor_jp_chuva <- cor(subset(climas, cidade == "João Pessoa")$tmedia, 
                    subset(climas, cidade == "João Pessoa")$chuva)

# Coeficiente de correlação de Pearson para Campina Grande (semanas com chuva)
cor_cg_chuva <- cor(subset(climas, cidade == "Campina Grande")$tmedia, 
                    subset(climas, cidade == "Campina Grande")$chuva)
# Exibir os resultados
print(paste0("Correlação para João Pessoa(Chuva): ", cor_jp_chuva))
## [1] "Correlação para João Pessoa(Chuva): -0.441130867729121"
print(paste0("Correlação para Campina Grande(Chuva): ", cor_cg_chuva))
## [1] "Correlação para Campina Grande(Chuva): -0.395831070013836"

Com base nos coeficientes de correlação calculados para João Pessoa e Campina Grande em semanas com chuva:

  • João Pessoa (Chuva): A correlação entre a temperatura e a chuva para João Pessoa é de aproximadamente -0.44. Isso indica uma correlação negativa moderada. Ou seja, quando a temperatura é mais alta, a quantidade de chuva tende a ser menor, e vice-versa, mas não de forma muito forte.
  • Campina Grande (Chuva): A correlação entre a temperatura e a chuva para Campina Grande é de aproximadamente -0.40. Assim como em João Pessoa, essa correlação é negativa e moderada, indicando que, em Campina Grande, também há uma tendência de que a temperatura mais alta esteja associada a uma quantidade menor de chuva, e vice-versa.

Ambos os resultados indicam uma relação entre temperatura e chuva, mas não uma relação muito forte. Esses valores de correlação sugerem que outros fatores além da temperatura podem influenciar a quantidade de chuva nessas regiões, e vice-versa.

Visualização da relação

# Gráfico de dispersão para João Pessoa (semanas com chuva)
ggplot(subset(climas, cidade == "João Pessoa"), aes(x = tmedia, y = chuva)) +
  geom_point() +
  labs(title = "Relação entre Temperatura e Chuva (Semanas com Chuva) - João Pessoa") +
  xlab("Temperatura Semanal") +
  ylab("Precipitação (mm)")

O gráfico de dispersão mostra uma tendência de que, em semanas com chuva, temperaturas mais altas estão associadas a menores quantidades de chuva. A inclinação dos pontos é moderadamente negativa, o que está alinhado com o coeficiente de correlação negativa moderada. Apesar da tendência, há uma dispersão considerável dos pontos em torno da linha de tendência, o que sugere que outros fatores podem influenciar a quantidade de chuva em João Pessoa além da temperatura.

# Gráfico de dispersão para Campina Grande (semanas com chuva)
ggplot(subset(climas, cidade == "Campina Grande"), aes(x = tmedia, y = chuva)) +
  geom_point() +
  labs(title = "Relação entre Temperatura e Chuva (Semanas com Chuva) - Campina Grande") +
  xlab("Temperatura Semanal") +
  ylab("Precipitação (mm)")

O gráfico de dispersão de CG também mostra uma tendência de correlação negativa entre temperatura e chuva em semanas com chuva. Assim como em João Pessoa, a inclinação dos pontos é moderadamente negativa, o que está em linha com o coeficiente de correlação calculado. Da mesma forma, a dispersão dos pontos em torno da linha de tendência sugere que outros fatores além da temperatura podem influenciar a quantidade de chuva em Campina Grande.