Os dados estão agora disponíveis de 2004 a maio de 2021. O site oficial da ANP tem dados mensais até fevereiro de 2022, mas como esse conjunto de dados é organizado semanalmente, será atualizado para 2022, assim que essas informações estiverem disponíveis.
Os dados
A Agência Nacional de Petróleo, Gás Natural e Biocombustíveis (ANP) divulga relatórios semanais de preços de gás, diesel e outros combustíveis utilizados no transporte em todo o país. Esses conjuntos de dados trazem o valor médio por litro, o número de postos de gasolina analisados e outras informações agrupadas por regiões e estados em todo o país.
Como dito anteriormente, esses conjuntos de dados são fornecidos pela ANP, e são atualizados regularmente com novas datas e informações - que podem ser recuperadas aqui Agência Nacional de Petróleo (2004-2021) (em português).
As análises aqui realizadas serão divididas em perguntas, acompanhadas de sua motivação, para com isso guiar as análises realizadas na base utilizada.
A quantidade de postos de combustíveis e suas respectivas regiões, isso pode influenciar os preços ?.
quantidade_regiao <- aggregate(dados$`NÚMERO DE POSTOS PESQUISADOS`, by=list(dados$REGIÃO), FUN=sum)
quantidade_regiao <- quantidade_regiao[order(quantidade_regiao$x),]N POSTOS PESQUISADOS
quantidade_regiao <- quantidade_regiao[order(quantidade_regiao$x),]
ggplot(quantidade_regiao, aes(x = Group.1, y = x)) +
geom_bar(stat = "identity", fill = "royalblue", color = "black", alpha = 0.6) +
labs(x = "REGIÃO", y = "NÚMERO DE POSTOS") +
theme_minimal()tab <-quantidade_regiao
colnames(tab)[colnames(tab) == 'Group.1'] <- 'REGIÃO'
colnames(tab)[colnames(tab) == 'x'] <- 'NÚMERO DE POSTOS PESQUISADOS'
kable(tab)| REGIÃO | NÚMERO DE POSTOS PESQUISADOS | |
|---|---|---|
| 3 | NORTE | 1754917 |
| 1 | CENTRO OESTE | 2284267 |
| 5 | SUL | 4806124 |
| 2 | NORDESTE | 4882880 |
| 4 | SUDESTE | 12981725 |
dados_regiao_max <- aggregate(dados$`PREÇO MÉDIO REVENDA`, by = list(dados$REGIÃO), FUN = max)
tab <-dados_regiao_max
colnames(tab)[colnames(tab) == 'Group.1'] <- 'REGIÃO'
colnames(tab)[colnames(tab) == 'x'] <- 'PREÇO MÉDIO REVENDA'
kable(tab)| REGIÃO | PREÇO MÉDIO REVENDA |
|---|---|
| CENTRO OESTE | 105.194 |
| NORDESTE | 91.725 |
| NORTE | 107.500 |
| SUDESTE | 87.091 |
| SUL | 91.189 |
dados_regiao_min <- aggregate(dados$`PREÇO MÉDIO REVENDA`, by=list(dados$REGIÃO), FUN=min)
tab <-dados_regiao_min
colnames(tab)[colnames(tab) == 'Group.1'] <- 'REGIÃO'
colnames(tab)[colnames(tab) == 'x'] <- 'PREÇO MINIO REVENDA'
kable(tab)| REGIÃO | PREÇO MINIO REVENDA |
|---|---|
| CENTRO OESTE | 1.097 |
| NORDESTE | 0.975 |
| NORTE | 1.219 |
| SUDESTE | 0.766 |
| SUL | 0.922 |
De acordo com a análise da quantidade de combustíveis por região, entendemos que a região influencia no preço.
Qual a média de valores dos combustíveis durante a pandemia (2020-2021) no Brasil? Faça o mesmo com cada região.
dados$DATA_INICIAL <- as.Date(dados$`DATA INICIAL`)
dados$Ano <- format(dados$DATA_INICIAL, "%Y")
data_inicial <- 2020
data_final <- 2022
df_pandemia <- dados[dados$Ano >= data_inicial & dados$Ano < data_final, ]
dados_regiao <- df_pandemia %>%
group_by(REGIÃO) %>%
summarize(`PREÇO MÉDIO REVENDA` = round(mean(`PREÇO MÉDIO REVENDA`), 2))
dados_regiao <- dados_regiao[order(dados_regiao$`PREÇO MÉDIO REVENDA`),]
kable(dados_regiao)| REGIÃO | PREÇO MÉDIO REVENDA |
|---|---|
| SUDESTE | 14.19 |
| SUL | 14.86 |
| NORDESTE | 15.06 |
| CENTRO OESTE | 16.73 |
| NORTE | 19.01 |
Quais foram as regiões com os valores mais altos e qual período? Assim como os valores mais baixos e suas respectivas datas.
# Região com o preço mais alto
preco_maximo <- aggregate(dados$`PREÇO MÉDIO REVENDA`, by = list(dados$REGIÃO), FUN = max)
regiao_preco_maximo <- preco_maximo$Group.1[which.max(preco_maximo$x)]
valor_preco_maximo <- max(preco_maximo$x)
# Região com o preço mais baixo
preco_minimo <- aggregate(dados$`PREÇO MÉDIO REVENDA`, by = list(dados$REGIÃO), FUN = min)
regiao_preco_minimo <- preco_minimo$Group.1[which.min(preco_minimo$x)]
valor_preco_minimo <- min(preco_minimo$x)
# Período do preço mais alto
periodo_preco_maximo <- dados[dados$REGIÃO == regiao_preco_maximo &
dados$`PREÇO MÉDIO REVENDA` == valor_preco_maximo,
c("DATA INICIAL", "DATA FINAL")]
# Período do preço mais baixo
periodo_preco_minimo <- dados[dados$REGIÃO == regiao_preco_minimo &
dados$`PREÇO MÉDIO REVENDA` == valor_preco_minimo,
c("DATA INICIAL", "DATA FINAL")]
cat("Região com o preço mais alto:", regiao_preco_maximo, "(Valor: R$", valor_preco_maximo,")\nPeríodo do preço mais alto:", paste(periodo_preco_maximo$`DATA INICIAL`, collapse = ", "), "a", paste(periodo_preco_maximo$`DATA FINAL`, collapse = ", "), "\n\nRegião com o preço mais baixo:", regiao_preco_minimo, "(Valor: R$", valor_preco_minimo, ")\nPeríodo do preço mais baixo:", paste(periodo_preco_minimo$`DATA INICIAL`, collapse = ", "), "a", paste(periodo_preco_minimo$`DATA FINAL`, collapse = ", "), "\n")Região com o preço mais alto: NORTE (Valor: R$ 107.5 )
Período do preço mais alto: 2021-03-14 a 2021-03-20
Região com o preço mais baixo: SUDESTE (Valor: R$ 0.766 )
Período do preço mais baixo: 2004-05-16 a 2004-05-22
Plote histogramas / boxplots
Histogramas
# Histogramas por região
ggplot(dados, aes(x = `PREÇO MÉDIO REVENDA`, fill = REGIÃO)) +
geom_histogram(position = "stack", bins = 30) +
geom_density(aes(y = ..density..), alpha = 0.5) +
labs(title = "Distribuição de Preços por Região",
x = "Preço",
y = "Contagem",
fill = "Região") +
theme_minimal()
Boxplots
# Boxplots por região
ggplot(dados, aes(x = `PREÇO MÉDIO REVENDA`, y = REGIÃO)) +
geom_boxplot() +
labs(title = "Boxplots de Preço por Região",
x = "Preço Médio Revenda",
y = "Região") +
theme_minimal()Histogramas
# Histogramas por região
ggplot(dados, aes(x = `PREÇO MÉDIO REVENDA`, fill = PRODUTO)) +
geom_histogram(position = "stack", bins = 30) +
geom_density(aes(y = ..density..), alpha = 0.5) +
labs(title = "Distribuição de Preços por Produto",
x = "Preço",
y = "Contagem",
fill = "Produto") +
theme_minimal()
Boxplots
# Boxplots por produto
ggplot(dados, aes(x = `PREÇO MÉDIO REVENDA`, y = PRODUTO)) +
geom_boxplot() +
labs(title = "Boxplots de Preços por Produto",
x = "Preço Médio Revenda",
y = "Produto") +
theme_minimal()Você notou diferenças nítidas dos preços em um curto período de tempo? Você percebeu uma grande diferença de valores nas regiões/estados no mesmo período
dados_grafico <- dados[, c("REGIÃO", "DATA INICIAL", "PREÇO MÉDIO REVENDA", "ESTADO")]
# Separando o dataframe acima por região
dados_centro_oeste <- dados_grafico[dados_grafico$REGIÃO == "CENTRO OESTE", ]
dados_nordeste <- dados_grafico[dados_grafico$REGIÃO == "NORDESTE", ]
dados_norte <- dados_grafico[dados_grafico$REGIÃO == "NORTE", ]
dados_sul <- dados_grafico[dados_grafico$REGIÃO == "SUL", ]
dados_sudeste <- dados_grafico[dados_grafico$REGIÃO == "SUDESTE", ]
#kable( head(dados_grafico, 15))# Plotando o gráfico de linha para cada estado do Centro Oeste
for (estado in unique(dados_centro_oeste$ESTADO)) {
dados_estado <- dados_centro_oeste[dados_centro_oeste$ESTADO == estado, ]
dado_agregado <- aggregate(dados_estado$`PREÇO MÉDIO REVENDA`, by = list(dados_estado$`DATA INICIAL`, dados_estado$ESTADO), FUN = max)
names(dado_agregado) <- c("DATA.INICIAL", "ESTADO", "PREÇO.MÉDIO.REVENDA")
#dado_agregado <- dado_agregado[order(dado_agregado$`DATA INICIAL`), ]
plot(dado_agregado$DATA.INICIAL, dado_agregado$PREÇO.MÉDIO.REVENDA, type = "l", xlab = "Tempo", ylab = "Preço", main = paste("Variação de Preços no Estado", estado))
}Nos estados do Centro Oeste houve grande queda seguida de alta nos preços no Distrito Federal em meados de 2006 e também em 2018, a qual também coincidiu com uma grande queda no mesmo período no estado de Goiás.
# Plotando o gráfico de linha para cada estado do Centro Oeste
for (estado in unique(dados_nordeste$ESTADO)) {
dados_estado <- dados_nordeste[dados_nordeste$ESTADO == estado, ]
dado_agregado <- aggregate(dados_estado$`PREÇO MÉDIO REVENDA`, by = list(dados_estado$`DATA INICIAL`, dados_estado$ESTADO), FUN = max)
names(dado_agregado) <- c("DATA.INICIAL", "ESTADO", "PREÇO.MÉDIO.REVENDA")
#dado_agregado <- dado_agregado[order(dado_agregado$`DATA INICIAL`), ]
plot(dado_agregado$DATA.INICIAL, dado_agregado$PREÇO.MÉDIO.REVENDA, type = "l", xlab = "Tempo", ylab = "Preço", main = paste("Variação de Preços no Estado", estado))
}Já no Nordeste, essa queda alta em 2006 também aconteceu no Maranhão e no Piauí, enquanto que a queda em 2018 coincidiu em Sergipe e Alagoas.
# Plotando o gráfico de linha para cada estado do Centro Oeste
for (estado in unique(dados_norte$ESTADO)) {
dados_estado <- dados_norte[dados_norte$ESTADO == estado, ]
dado_agregado <- aggregate(dados_estado$`PREÇO MÉDIO REVENDA`, by = list(dados_estado$`DATA INICIAL`, dados_estado$ESTADO), FUN = max)
names(dado_agregado) <- c("DATA.INICIAL", "ESTADO", "PREÇO.MÉDIO.REVENDA")
#dado_agregado <- dado_agregado[order(dado_agregado$`DATA INICIAL`), ]
plot(dado_agregado$DATA.INICIAL, dado_agregado$PREÇO.MÉDIO.REVENDA, type = "l", xlab = "Tempo", ylab = "Preço", main = paste("Variação de Preços no Estado", estado))
}# Plotando o gráfico de linha para cada estado do Centro Oeste
for (estado in unique(dados_sul$ESTADO)) {
dados_estado <- dados_sul[dados_sul$ESTADO == estado, ]
dado_agregado <- aggregate(dados_estado$`PREÇO MÉDIO REVENDA`, by = list(dados_estado$`DATA INICIAL`, dados_estado$ESTADO), FUN = max)
names(dado_agregado) <- c("DATA.INICIAL", "ESTADO", "PREÇO.MÉDIO.REVENDA")
#dado_agregado <- dado_agregado[order(dado_agregado$`DATA INICIAL`), ]
plot(dado_agregado$DATA.INICIAL, dado_agregado$PREÇO.MÉDIO.REVENDA, type = "l", xlab = "Tempo", ylab = "Preço", main = paste("Variação de Preços no Estado", estado))
}Já nos estados do Norte e do Sul não houve variações tão bruscas quanto nos outros estados, com alguns picos e baixas menores coincidindo em alguns desses mesmos períodos.
# Plotando o gráfico de linha para cada estado do Centro Oeste
for (estado in unique(dados_sudeste$ESTADO)) {
dados_estado <- dados_sudeste[dados_sudeste$ESTADO == estado, ]
dado_agregado <- aggregate(dados_estado$`PREÇO MÉDIO REVENDA`, by = list(dados_estado$`DATA INICIAL`, dados_estado$ESTADO), FUN = max)
names(dado_agregado) <- c("DATA.INICIAL", "ESTADO", "PREÇO.MÉDIO.REVENDA")
#dado_agregado <- dado_agregado[order(dado_agregado$`DATA INICIAL`), ]
plot(dado_agregado$DATA.INICIAL, dado_agregado$PREÇO.MÉDIO.REVENDA, type = "l", xlab = "Tempo", ylab = "Preço", main = paste("Variação de Preços no Estado", estado))
}Por fim, no Sudeste, houve duas quedas grandes no Espírito Santo, mas em momentos diferentes. A primeira em 2009/2010 e a segunda em meados de 2020/2021.