O objetivo desse post é explicar de formar simples como obter dados da PNAD continua direto do IBGE utilizando o R. Também iremos transformar uma variável de texto em variável binária, por fim vamos rodar uma regressão simples para demonstrar como podemos utilizar os microdados da PNAD continua.
Vamos começar lendo três pacotes que serão utilizados para nossa análise. O primeiro pacote PNADcIBGE nos permite baixar todos os dados da PNAD direto do IBGE, o segundo pacote é útil para modificar Data Tables e plotar gráficos. Por fim, o terceiro pacote nos permite criar tabelas bonitas de regressões.
library(PNADcIBGE)
## Warning: package 'PNADcIBGE' was built under R version 3.6.3
library(tidyverse)
## -- Attaching packages ---------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.0 v purrr 0.3.4
## v tibble 3.0.1 v dplyr 0.8.5
## v tidyr 1.0.3 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.5.0
## Warning: package 'ggplot2' was built under R version 3.6.3
## Warning: package 'tibble' was built under R version 3.6.3
## Warning: package 'tidyr' was built under R version 3.6.3
## Warning: package 'purrr' was built under R version 3.6.3
## Warning: package 'dplyr' was built under R version 3.6.3
## Warning: package 'forcats' was built under R version 3.6.3
## -- Conflicts ------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(stargazer)
##
## Please cite as:
## Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
## R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
Agora para ler os microdados da PNAD continua fazemos uso do codigo abaixo.
pnad <- get_pnadc(year = 2019, quarter = 4)
dados <- pnad$variables
O primeiro comando nos permite obter todos os micro dados disponíveis em 2019 no quarto trimestre, como o resultado é uma lista com outras informações não significativas criamos um Data Frame com apenas as variáveis no segundo comando. Nota: tenha paciência, vai demorar um pouco a leitura dos dados
Agora precismos entender como ler o Data Frame que temos, se usarmos o visualizador do Rstudio com o comando View(dados) percebemos que as variáveis não tem uma nomenclatura fácil de identificar. Por esse motivo, precisamos acessar o site do IBGE no link: https://www.ibge.gov.br/estatisticas/sociais/trabalho/17270-pnad-continua.html?=&t=downloads, baixar o dicionário de variáveis em .ZIP e abri-lo no leitor de planilhas de sua escolha. A imagem a seguir é um pequeno trecho do dicionario de variáveis.
Dicioário PNADc
Agora já podemos interpretar os dados que obtemos da PNAD continua, mas ainda existe um problema. Alguns dados estão na forma de texto, precisamos rescrever esses dados em formato binário. Como o objetivo desse post não é tratar toda a PNADC, mas sim servir como um bom ponto de largada vamos criar apenas uma variável mulher que assume um se o individuo for mulher e zero se ele for homem. O comado para fazer isso é dado a seguir
dados <- mutate(dados, Mulher = if_else(V2007 == "Mulher", 1,0) ) # Criar variável Homem
Note que a variável V2007 nós dá como parâmetros Homem ou Mulher, enquanto a nossa varável Mulher nós da 0 ou 1. Feita essa alteração podemos fazer uma regressão bastante simples salário vs sexo por exemplo.
Como dito podemos fazer um pequeno exemplo de regressão Salário vs sexo. Note que a regressão com uma variável não explica quase nada, mas vale como exercício.
Em primeiro lugar convém selecionar apenas as variáveis que iremos usar e modificar os nomes, também retiramos todas as linhas que não continham o valor do salário, isso foi feito com o codigo a seguir.
dados1 <- dados %>%
select(V403312, Mulher) %>%
rename(`Salário` = V403312) %>%
drop_na(`Salário`)
Agora podemos criar a regressão usando o codigo:
modelo <- lm(data = dados1, `Salário` ~ Mulher)
Por fim usamos o stargazer para produzir uma tabela com o resultado do nosso modelo.
stargazer(modelo, title = "Modelo", type = "html", align = T)
| Dependent variable: | |
| Salário | |
| Mulher | -406.834*** |
| (13.021) | |
| Constant | 2,186.711*** |
| (8.392) | |
| Observations | 222,601 |
| R2 | 0.004 |
| Adjusted R2 | 0.004 |
| Residual Std. Error | 3,027.352 (df = 222599) |
| F Statistic | 976.214*** (df = 1; 222599) |
| Note: | p<0.1; p<0.05; p<0.01 |