SAUDAÇÕES!

Seja bem vindo à página do professor Pedro Albuquerque. Para saber mais sobre meu currículo, disciplinas ministradas e interesses de pesquisa, navegue no menu disponível no topo da página.

segunda-feira, 15 de janeiro de 2018

Leitura das bases do IBGE por meio do microdadosBrasil e dplyr.


Como pesquisadores uma fonte de informação rica e muito importante para a academia são as bases de dados do Instituto Brasileiro de Geografia e Estatística (IBGE).

A leitura das principais bases de dados nacionais pode ser realizada por meio do pacote microdadosBrasil.

O primeiro passo é a instalação do pacote no R, fazemos isso da seguinte forma:

#Habilita o pacote devtools
library(devtools)
#Instala o pacote microdadosBrasil
devtools::install_github("lucasmation/microdadosBrasil")
#Habilita o pacote microdadosBrasil
library(microdadosBrasil)

Nesse post, trataremos da Pesquisa Nacional por Amostra de Domicílios (PNAD) como exemplo, para baixar e ler a PNAD precisamos dos seguintes comandos:

#Fazemos somente uma vez caso os dados não existam localmente
download_sourceData("PNAD", 2015, root_path = "C:\\Dados")
#Lê os dados da PNAD
pnad <- read_PNAD("pessoas", 2015, root_path = "C:\\Dados")
#Salva a PNAD lida
save.image("C:\\Dados\\pnad.RData")
No bloco anterior os microdados, dicionários, arquivos de leitura da PNAD são armazenados na pasta definida pelo usuário (nesse exemplo C:\Dados). Em seguida esses dados são lidos pela função read_PNAD e então salva a imagem no arquivo pnad.RData. No código anterior definimos ainda que desejamos os dados da base de pessoas, para o ano de 2015. Maiores informações sobre os tipos de bases e pesquisas disponíveis os interessados podem consultar o repositório do microdadosBrasil. Uma vez salva a imagem, a leitura fica muito mais rápida no R e podemos chamar os dados por meio da função load:
#Chama os dados da pnad salvos no RData
load("C:\\Dados\\pnad.RData")
Como exemplo vamos calcular a renda média das pessoas na PNAD 2015. A variável rendimento de interesse é dada pela variável V9532 e a variável de peso (expansão amostral) é dada por V4729. O cômputo do rendimento médio é dado por?
#Chama a biblioteca dplyr
library(dplyr)
#Exemplo Média do Rendimento
pnad %>%
  group_by(UF) %>%
  filter(V9532<999999999)%>%
  summarise(weighted.mean(V9532 , 
                          w = V4729, 
                          na.rm = TRUE)
  ) -> agg.df
No bloco anterior salvamos no data.frame agg.df a renda média das pessoas por Unidade da Federação (UF) removendo-se os valores missing informados pelo IBGE como V9532>999999999. Outra estatística muito comum é o cálculo de proporções. Podemos calcular a proporção por cor nas Unidades da Federação (UF) como:
#Calcula a proporção
pnad %>%
  group_by(UF, V0404) %>%
  summarise (n.cor = sum(V4729))%>%
  group_by(UF) %>%
  mutate (n = sum(n.cor)) %>%
  mutate(freq = n.cor/n) %>%
  mutate(freq2 = paste0(round(freq,6)*100,"%")) -> cor.df
#Define os labels dos factors
cor.df[,"Cor"] = factor(cor.df$V0404,
                    levels=c(2,4,6,8,0,9),
                    labels=c("Branca","Preta","Amarela",
                             "Parda","Indígena","Sem declaração"),
                    ordered=FALSE)
Nesse exemplo, salvamos no objeto cor.df essas proporções e também definimos os labels das variáveis qualitativas. Na última parte desse exemplo, podemos estar interessados no cômputo do Índice de Gini por Unidade da Federação:
#Exemplo Gini
library(reldist)
pnad %>%
  group_by(UF) %>%
  filter(V9532<999999999)%>%
  summarise(gini.idx=gini(V9532,V4729))
Onde o pacote reldist apresenta a função gini que calcula o Índice de Gini ponderado pelo peso amostral.

Nenhum comentário:

Postar um comentário