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())
# 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…
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:
Temperatura Média: A média das temperaturas médias diárias da semana, em Celsius.
Umidade: Média da umidade diária na semana, em %.
Chuva: Total de precipicação na semana, em mm.
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
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.