Código por Sérgio Spagnuolo
Fonte de dados: API do Ministério da Cidadania, na rubricado do Ministério do Desenvolvimento Social - MDS, conforme descrito no Portal de Dados Abertos do governo federal.
Valores reajustados usando pacote R deflateBR
library(tidyverse) | |
library(scales) | |
library(clipr) | |
library(ggthemes) | |
# total de famílias recipientes, por mes | |
benf_mes_pessoas <- total %>% | |
drop_na() %>% | |
filter(data > "2011-01-01") %>% | |
group_by(data) %>% | |
summarise(soma = sum(qtd_familias_beneficiarias_bolsa_familia)) %>% | |
mutate(var_mes = ((soma/lag(soma) - 1) * 100)) %>% | |
#summarise(soma = mean(soma)) %>% | |
ggplot(aes(data,var_mes)) + geom_line() + | |
geom_smooth(method = "lm", se = FALSE) + | |
scale_y_continuous(labels=function(x) format(x, big.mark = ",", scientific = FALSE)) | |
# percentual de crescimento em numero de familias | |
pct_benf_mes_pessoas <- total %>% | |
drop_na() %>% | |
filter(ano > "2009" & mes != 12) %>% | |
group_by(ano, mes) %>% | |
summarise(soma = sum(qtd_familias_beneficiarias_bolsa_familia)) %>% | |
summarise(soma = mean(soma)) %>% | |
mutate(var_mes = ((soma/lag(soma) - 1) * 100)) %>% | |
drop_na() %>% | |
#summarise(soma = mean(soma)) %>% | |
ggplot(aes(ano,var_mes)) + geom_line() + | |
geom_smooth(method = "lm", se = FALSE) + | |
scale_y_continuous(labels=function(x) format(x, big.mark = ",", scientific = FALSE)) | |
total %>% | |
drop_na() %>% | |
#filter(data > "2009-01-01") %>% | |
group_by(ano, mes) %>% | |
summarise(soma = sum(qtd_familias_beneficiarias_bolsa_familia)) %>% | |
summarise(soma = mean(soma)) %>% | |
ggplot(aes(ano,soma)) + geom_line() + | |
geom_smooth(method = "loess", se = FALSE) + | |
scale_y_continuous(labels=function(x) format(x, big.mark = ",", scientific = FALSE)) | |
# valores médios, por ano | |
valores_medios <- total %>% | |
drop_na() %>% | |
#filter(data > "2009-01-01") %>% | |
group_by(ano, mes) %>% | |
# summarise(familias = sum(qtd_familias_beneficiarias_bolsa_familia)) %>% | |
summarise(familias = mean(sum(qtd_familias_beneficiarias_bolsa_familia)), valores = sum(ajustado)) %>% | |
mutate(valor_medio = valores/familias ) %>% | |
group_by(ano) %>% | |
summarise(valor_medio = mean(valor_medio)) %>% | |
#summarise(soma = mean(soma)) %>% | |
ggplot(aes(ano, valor_medio, label = round(valor_medio, 1))) + geom_line() + geom_label() + | |
#geom_smooth(method = "loess", se = FALSE) + | |
#scale_x_date(breaks = scales::pretty_breaks(n = 10)) + | |
scale_y_continuous(labels=function(x) format(x, big.mark = ",", scientific = FALSE)) + | |
labs( title = "Bolsa Família", | |
subtitle = "Valor médio mensal de benefícios do Bolsa Família, agrupado por ano", | |
caption = "Fonte: Ministério da Cidadania/MDS", | |
x = "", | |
y = "valor em R$") | |
# total R$ desembolsado por ano | |
desembolsos <- total %>% | |
drop_na() %>% | |
#filter(data > "2009-01-01") %>% | |
filter(mes != 12) %>% | |
group_by(ano) %>% | |
summarise(soma = sum(ajustado)) %>% | |
mutate(soma = soma/1000000000) %>% | |
#summarise(soma = mean(soma)) %>% | |
ggplot(aes(ano, soma, label = round(soma, 1))) + geom_line() + geom_label() + | |
geom_smooth(method = "loess", se = FALSE) + | |
#scale_x_date(breaks = scales::pretty_breaks(n = 10)) + | |
scale_y_continuous(labels=function(x) format(x, big.mark = ",", scientific = FALSE)) + | |
labs( title = "Desembolsos do Bolsa Família", | |
subtitle = "Total anual desembolsado no programa Bolsa Família - valores deflacinados pelo IPCA", | |
caption = "Fonte: Portal da Transparência", | |
x = "", | |
y = "em bilhões de R$") |
Código por Sérgio Spagnuolo
Fonte de dados: API do Ministério da Cidadania, na rubricado do Ministério do Desenvolvimento Social - MDS, conforme descrito no Portal de Dados Abertos do governo federal.
Valores reajustados usando pacote R deflateBR
library(tidyverse) | |
library(jsonlite) | |
library(lubridate) | |
library(deflateBR) | |
library(scales) | |
library(clipr) | |
# referencia de dados: http://www.dados.gov.br/dataset/bolsa-familia-misocial | |
url <- "http://aplicacoes.mds.gov.br/sagi/servicos/misocial?q=*&fq=anomes_s:" | |
url2 <- "*&fq=tipo_s:mes_mu&wt=csv&fl=ibge:codigo_ibge,anomes:anomes_s,qtd_familias_beneficiarias_bolsa_familia,valor_repassado_bolsa_familia&rows=10000000&sort=anomes_s%20asc,%20codigo_ibge%20asc" | |
anos <- c(2004:2020) | |
bf <- list() | |
for(p in seq_along(anos)){ | |
# monta a URL | |
url0 <- paste0(url, p, url2) | |
# puxa os dados | |
dfa <- read.csv(url0, header = T) | |
# preenche a lista | |
bf[[p]] = dfa | |
} | |
# cria o data frame | |
total <- bind_rows(bf) | |
# organiza e limpa tabela e cria coluna com valores ajustados | |
total$ano <- as.numeric(str_sub(total$anomes, 1,4)) | |
total$mes <- str_sub(total$anomes, 5,6) | |
total$data <- as.Date(paste0(total$ano, "-", total$mes, "-01")) | |
total$ajustado <- deflate(total$valor_repassado_bolsa_familia, total$data, "12/2019", "ipca") |