library(tidyverse)
library(here)
library(knitr)    # For knitting document and include_graphics function
library(ggplot2)  # For plotting
library(png)      # For grabbing the dimensions of png files
library(GGally)

theme_set(theme_bw())

Configuração Inicial

# 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()
    )
)

clima = clima_tudo %>% 
  mutate(temp_anterior = lag(temp_media, n = 1)) 

glimpse(clima)
## Rows: 1,803
## Columns: 12
## $ cidade        <chr> "Campina Grande", "Campina Grande", "Campina Grande", "C…
## $ semana        <date> 2009-12-27, 2010-01-03, 2010-01-10, 2010-01-17, 2010-01…
## $ temp_max      <dbl> 29.9, 31.4, 32.1, 31.0, 31.2, 32.1, 32.2, 31.3, 32.9, 34…
## $ temp_media    <dbl> 25.90000, 25.53333, 25.60952, 24.20952, 26.06190, 26.023…
## $ temp_min      <dbl> 21.9, 21.2, 21.3, 20.5, 21.2, 21.4, 20.4, 21.5, 22.1, 22…
## $ vento_medio   <dbl> 3.960000, 4.080952, 3.952381, 2.860000, 3.690476, 3.9714…
## $ vento_max     <dbl> 5.0, 5.3, 6.6, 5.0, 5.5, 6.5, 6.3, 5.5, 5.5, 4.0, 5.0, 7…
## $ umidade       <dbl> 76.00000, 76.23810, 75.95238, 85.33333, 77.80952, 76.047…
## $ chuva         <dbl> 0.0, 4.7, 0.2, 69.3, 3.8, 1.2, 10.9, 2.5, 0.0, 0.0, 0.0,…
## $ ano           <int> 2009, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 20…
## $ mes           <int> 12, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5…
## $ temp_anterior <dbl> NA, 25.90000, 25.53333, 25.60952, 24.20952, 26.06190, 26…

Dados utilizados

Para essas analises usaremos dados obtidos do BDMEP. A partir disso, extraimos os dados das 3 cidades durante o periodo de 2010 até atualidade.

Alguns dados extraídos que iremos referenciar durante a análise são:

Analíse da correlação entre as semanas vizinhas

Para começarmos a análise da comparação da semana atual com a semana passada, vamos colocar comparar as variaveis em um gráfico a fim de perceber uma relação entre eles:

clima %>% 
  ggplot(aes(x = temp_media, y = temp_anterior)) +
  facet_wrap(~ cidade, ncol = 1) +
  geom_point(color="darkred")
## Warning: Removed 73 rows containing missing values (geom_point).

Analisando os gráficos acima podemos observar que todas as cidades possuem uma relação positiva entre a temperatura média de uma semana com a sua semana anterior mostrando um formato linear. Uma diferença apresentada entre as cidades é a posição em que se inicia o crescimento das temperaturas, onde Campina Grande está mais a esquerda, implicando em temperaturas mais baixas, e patos mais a direita, com temperaturas mais altas, enquanto João pessoa se encontra no meio do gráfico.

Se aprofundando ainda mais nos dados, podemos analisar a correlação entre as temperaturas nas 3 cidades paraibanas:

clima %>%
  filter(!is.na(temp_media)) %>%
  filter(!is.na(temp_anterior)) %>%
  group_by(cidade) %>%
  summarise(corr_pearson = cor(temp_media, temp_anterior, method="pearson"))
## # A tibble: 3 x 2
##   cidade         corr_pearson
##   <chr>                 <dbl>
## 1 Campina Grande        0.859
## 2 João Pessoa           0.820
## 3 Patos                 0.819

Gerando a correlação das Cidades podemos concluir que quanto a temperatura da semana anterior tem uma relação muito forte com a temperatura da semana atual, com um coeficiente de correlação ultrapassando 80 em todos os casos.

Todas as correlações são positivas, com um formato linear e sem extremos que possam comprometer a correlação. Enquanto isso, também podemos observar que os dados são bem densos, presentes em uma localidade mais especifica, porém com uma diferença pequena. Como observado no desvio padrão e variância:

clima %>%
  filter(!is.na(temp_media)) %>%
  group_by(cidade) %>%
  summarise(desvio_padrao=sd(temp_media), variancia=var(temp_media))
## # A tibble: 3 x 3
##   cidade         desvio_padrao variancia
##   <chr>                  <dbl>     <dbl>
## 1 Campina Grande          1.51      2.28
## 2 João Pessoa             1.21      1.47
## 3 Patos                   1.60      2.57

temperatura e chuvas

Para começar, podemos começar a analise na relação entre a temperatura e a chuva:

clima %>% 
  filter(chuva > 0.9) %>% 
  ggplot(aes(x = temp_media, y = chuva)) +
  facet_wrap(~ cidade, ncol = 1) +
  geom_point(color="blue")

Com o gráfico acima, não conseguimos tirar uma conclusão sobre a relação entre a temperatura e a chuva, pois temos extremos bem disperso dos pontos e com pontos com valores baixos levando os a relação para uma linha proximo a zero. podemos ver que a variância e o desvio padrão são bem altos e com uma correlação negativa e baixa.

clima %>%
  filter(!is.na(temp_media)) %>%
  group_by(cidade) %>%
  summarise(desvio_padrao_chuva=sd(chuva), variancia_chuva=var(chuva), corr_pearson = cor(temp_media, chuva, method="pearson"))
## # A tibble: 3 x 4
##   cidade         desvio_padrao_chuva variancia_chuva corr_pearson
##   <chr>                        <dbl>           <dbl>        <dbl>
## 1 Campina Grande                21.9            478.       -0.392
## 2 João Pessoa                   50.2           2515.       -0.425
## 3 Patos                         25.3            638.       -0.181

Como não podemos concluir nada agora, podemos tentar utilizar a escala de log para tentar analisar uma linearidade entre a temperatura e a chuva:

clima %>% 
  filter(chuva > 0.9) %>% 
  ggplot(aes(x = temp_media, y = chuva)) +
  facet_wrap(~ cidade, ncol = 1) +
  geom_point(color="darkblue") +
  scale_x_log10() +
  scale_y_log10()

Com o grafico em log, podemos observar a existência de uma leve linearidade negativa, porém com pontos dispersos, o que ainda não nos mostra uma correlação. Com isso vamos analisar o coeficiênte de correlação com as variaveis em log:

clima %>%
  filter(!is.na(temp_media)) %>%
  filter(chuva > 0.9) %>% 
  group_by(cidade) %>%
  summarise(corr_pearson = cor(log10(temp_media), log10(chuva), method="pearson"))
## # A tibble: 3 x 2
##   cidade         corr_pearson
##   <chr>                 <dbl>
## 1 Campina Grande      -0.355 
## 2 João Pessoa         -0.424 
## 3 Patos               -0.0897

Observando a variavel de correlação, podemos ver que existe uma correlação muito baixa entre a temperatura e o clima na cidade de patos, enquanto nas outras 2 cidade temos uma correlação pequena, diferente do visto no topico passado.

José Amândio.