Skip to content

Download de Dados do Pagamento Bolsa Família e Auxílio Brasil

License

Notifications You must be signed in to change notification settings

leonardochalhoub/getPBFData

Repository files navigation

GetPBFData é um pacote em linguagem R que objetiva permitir acesso simplificado a dados públicos relativos aos pagamentos do Programa Bolsa Família (PBF) e também de seu substituto, o Auxílio Brasil. Todos os dados estão disponíveis totalmente livres pelo governo brasileiro, porém a forma em que se apresenta atualmente pode trazer desafios e bastante trabalho manual para quem deseja explorá-los a fundo, o que talvez até impossibilite pesquisas.

Uma dificuldade é que os dados estão disponibilizados em arquivos zip contendo csv, em frequência mensal, com cada arquivo possuindo 14 milhões de linhas, ou seja, uma planilha que não é possível de ser aberta no Excel. Outra dificuldade é o tamanho dos arquivos que, além de precisarem ser baixados um a um no site oficial, são enormes: em Abril de 2023, temos dados desde Janeiro de 2013 até Fevereiro de 2023, o que totalizam ~200 gigas de dados em csv. Na pasta /arquivos_aux, estão os arquivos finais totalmente processados a nível de Ano, Município e Estado, em formato RDS, para facilitar sua vida - basta carregar os arquivos e utilizar os dados. Caso você queira rodar tudo do zero, comece a partir do passo 1, levará algumas horas mas você terá controle total do processo.

Para análise destes dados, o foco não é nos beneficiários de forma individual mas, sim, nas agregações. Este pacote está sendo desenvolvido para ser útil a pesquisadores, cientistas de dados, mestres, especialistas, bacharéis e estudantes que possam se interessar por Gestão Pública no Brasil e queiram acessar de forma mais rápida e resumida os dados oficiais. Os dados em sua forma bruta estão disponíveis desde Janeiro de 2013 até Novembro de 2021 para o PBF, e de Novembro de 2021 até Fevereiro de 2023 para o Auxílio Brasil. Considero aqui os programas como literais substitutos - Novembro/2021 é somado e as séries são consideradas uma continuidade do principal programa de assistência social do Brasil.

https://portaldatransparencia.gov.br/download-de-dados/bolsa-familia-pagamentos/

https://portaldatransparencia.gov.br/download-de-dados/auxilio-brasil/

Uma interface em Shiny para visualização dos dados refinados está disponível neste contêiner do link: https://hub.docker.com/r/leochalhoub/app_pbf

Depois do pull da imagem, basta clicar no 'play' e apontar porta 8080, assim você terá acesso em http://localhost:8080/ (na imagem rodando local, funciona perfeitamente)

Este contêiner está rodando na Microsoft Azure aqui, atualizado com dados até fevereiro/2023 https://app-pbf-auxbr.azurewebsites.net/ (Rodando na Azure às vezes dá erro nas tabelas, coisa de Javascript que não foi solucionado. Porém os downloads da tabela em excel e dos gráficos continuam funcionando).

# Docker Pull Command
docker pull leochalhoub/app_pbf

Na pasta /arquivos_aux, aqui no github, está o arquivo populacao.xlsx, resultado de coleta e verificações manuais que fiz a partir da fonte oficial do IBGE. Aqui estão os dados para estados e municípios, de 2013 a 2021. Para 2022 e 2023, eu repeti os valores de 2021.

Instalação do pacote getPBFData

# github (dev version)
install.packages('devtools')
devtools::install_github('leonardochalhoub/getPBFData')

Como usar o pacote. 4 Passos / Methods

Passo 1: Baixar todos os dados

É importante fazer sua base de dados local, porque o volume de dados é bastante grande. O algoritmo detecta arquivos zip na pasta /source_data, evitando downloads desnecessários. Se houver arquivos csv na pasta /data, não é executada a descompressão dos arquivos na pasta /source_data. Esse processo pode demorar algumas horas, dependendo não só da sua conexão com a Internet, mas também da banda que o servidor está conseguindo oferecer.

folder <- '~/Dados_Bolsa_Familia_Aux_Brasil'

getPBFData::downloadData_Passo1(pasta = folder)

Passo 1.1: Ajuste no arquivo Bolsa Família Novembro/2021

Apenas em um mês, Novembro/21, a estrutura do arquivo csv está diferente. Por essa razão, fiz uma correção com pequeno chunk de código. Somente rode o Passo 2 depois deste ajuste realizado, para evitar erros na base de dados.

Até 13 de Março de 2023, o arquivo na origem ainda não estava corrigido. Por favor, para quem for usar, sempre verificar comparando os nomes das colunas de Outubro com Novembro de 2021, para o Bolsa Família. Caso corrijam, essa seção será retirada.

ajusteNov2021 <- function(pasta) {
  # Apenas no último arquivo da Bolsa Família, mês 11 de 2021,
  # os nomes das duas primeiras colunas estão invertidos, o que causa erro no algoritmo depois.
  # Ajuste 'manual' no código, melhor do que fazer na mão no arquivo csv

  pastaCSV <- paste0(pasta, '/data')

  ajuste_nov_2021 <-  readr::read_csv2(file = paste0(pastaCSV, '/202111_BolsaFamilia_Pagamentos.csv'),
                                       col_names = TRUE,
                                       locale = readr::locale(encoding="latin1"),
                                       progress = readr::show_progress()) |>
    dplyr::rename('MÊS COMPETÊNCIA' = `MÊS REFERÊNCIA`, 'MÊS REFERÊNCIA' = `MÊS COMPETÊNCIA`)
  print('Iniciou escrita: utils::write.csv2(...')

  utils::write.csv2(ajuste_nov_2021,
                    file = paste0(pastaCSV, '/202111_BolsaFamilia_Pagamentos.csv'),
                    row.names = FALSE,
                    fileEncoding = 'latin1')

  getPBFData::ajusteNov2021(pasta = folder)

Passo 2: Processamento dos Dados e Summarising para Municípios, Estados, Anos e Meses

No final desta etapa, que também pode demorar algumas horas, são gerados arquivos em formato RDS na pasta /outputs. A ideia é não precisar processar tudo de novo. A partir da próxima etapa, os dados são carregados dos RDS, o que facilita muito o trabalho posterior.

getPBFData::dataPrep_Passo2(pasta = folder)

Passo 3: Pós-Processamento

Já temos dados mais fáceis de manusear disponíveis nesta etapa. Aqui agrego mais ainda os dados e faço algumas manipulações importantes, como por exemplo inflacionar os valores para Reais de 2021 com referência pela mediana anual do IPCA através do pacote priceR, que utiliza como fonte o site do Banco Mundial. Também agrego geolocalizações, para ser possível depois trabalhar com mapas. No final desta etapa, quatro arquivos novos são escritos na pasta /outputs, dois agregados por estado e dois por municípios.

getPBFData::postProc_Passo3(pasta = folder)

Passo 4: Visualizando os dados num Web App em Shiny

Neste app um usuário pode baixar as tabelas em formato xlsx (Excel), e também gerar gráficos de barras e em mapas, com diferentes escalas de cores do pacote Viridis. https://g7eewc-oldman0ds.shinyapps.io/app_pbf_auxbr/. Está hospedado gratuitamente no shinyapps.io, é um protótipo. O front-end não está perfeito e é possível que dê erro de falta de memória (no servidor), caso você tente muitas combinações diferentes. Caso o site trave, espere alguns minutos e tente novamente. O melhor desempenho será alcançado com um servidor local, rodando o código abaixo.

getPBFData::shinyApp_Passo4(pasta = folder)

About

Download de Dados do Pagamento Bolsa Família e Auxílio Brasil

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages