Análise de microdados da PNAD Covid com o R

Com o R, é possível acessar diversas bases de dados e baixar o que precisa diretamente para o RStudio. Um exemplo disso são os microdados da PNAD Covid. Nessa Dicas de R - disponível toda quarta-feira aqui no blog da AM -vamos mostrar como pegar esses dados diretamente do ftp do IBGEComo de praxe, o código começa carregando alguns pacotes que utilizaremos.

library(tidyverse)

A seguir, nós podemos fazer o download dos dados diretamente do FTP do IBGE. Escolhemos os últimos microdados disponíveis da PNAD Covid.


## Baixar os dados via ftp
url = "ftp://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_PNAD_COVID19/Microdados/Dados/PNAD_COVID_112020.zip"
download.file(url, destfile='PNAD_COVID_112020.zip', mode='wb')
unzip('PNAD_COVID_112020.zip')
pnad_covid <- read_csv("PNAD_COVID_112020.csv",
col_types = cols(.default = "d"))

No código acima, é preciso observar que estamos baixando os dados para a pasta previamente setada no RStudio. Baixado os dados e importado para o RStudio, podemos agora baixar também o dicionário dos dados.


## Baixar o dicionário dos dados
url_2 = "ftp://ftp.ibge.gov.br/Trabalho_e_Rendimento/Pesquisa_Nacional_por_Amostra_de_Domicilios_PNAD_COVID19/Microdados/Documentacao/Dicionario_PNAD_COVID_112020.xls"
download.file(url_2, destfile='Dicionario_PNAD_COVID_112020.xls', mode='wb')

De posse desses dados, podemos agora explorá-los. Vamos supor que estamos interessados em saber quem recebeu o auxílio emergencial do governo por tipo de trabalho que a pessoa ocupa. Esse foi o questionamento do meu aluno Rodrigo Ashikawa, da nossa Formação Data Science para Economistas, que acabou me dando a ideia desse Dicas de R de hoje.

Com o código a seguir, nós criamos uma nova variável com o tipo de trabalho que a pessoa ocupa, de acordo com o dicionário dos microdados da pesquisa.


pnad_covid <- mutate(pnad_covid,
tipo_emprego = case_when(
C007 == 1 ~ "Trabalhador Doméstico",
C007 == 2 ~ "Militar",
C007 == 3 ~ "Policial ou Bombeiro",
C007 == 4 ~ "Setor Privado",
C007 == 5 ~ "Setor Público",
C007 == 6 ~ "Empregador",
C007 == 7 ~ "Conta Própria",
C007 == 8 ~ "Trabalhador Familiar",
C007 == 9 ~ "Fora do mercado",
is.na(C007) ~ 'Não informado'))

Uma vez feito isso, nós podemos agora selecionar as variáveis que queremos dos dados e também criar uma nova variável dummy que diz se a pessoa recebeu ou não o auxílio emergencial. O código a seguir implementa.


auxilio_emprego <- select(pnad_covid, D0051, tipo_emprego) %>%
mutate(auxilio_emergencial = ifelse(D0051 == 1, "Sim", "Não"))

Por fim, nós podemos agrupar os nossos dados, de modo a saber quantas pessoas da nossa base receberam o auxílio emergencial de acordo com o trabalho que ocupam.


auxilio_emprego <- auxilio_emprego %>%
group_by(tipo_emprego) %>%
summarise(
count_total = n(),
recebeu = sum(D0051 == 1),
n_recebeu = sum(D0051 == 2)) %>%
mutate("Auxilio Emergencial (%)" = (recebeu / count_total)*100)

O gráfico a seguir ilustra.

O gráfico resume a pesquisa que fizemos nos microdados da PNAD Covid. 58% dos que se identificaram como "Conta Própria" receberam o auxílio emergencial, enquanto 21,4% que se identificaram como "Militar" tiveram acesso ao benefício. Dos que colocaram "Não informado", o maior contingente, 52% tiveram acesso ao auxílio.

Um pdf e um script com todo o código desse exercício está disponível para os membros do Clube AM.

Caso você tenha interesse em microdados, conheça nosso Curso de Microeconometria usando o R.

____________

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

O que é um Vector Database e como criar um com LangChain

Nesta postagem, mostramos como construir um pipeline simples de RAG (Retrieval-Augmented Generation) usando o LangChain, o modelo Gemini 2.0 Flash e o Vector Database Chroma. Utilizamos como exemplo o Relatório de Inflação de junho de 2025 do Banco Central do Brasil. O fluxo envolve o download e leitura do PDF, divisão do texto com RecursiveCharacterTextSplitter, geração de embeddings com Gemini, armazenamento vetorial com Chroma e busca semântica para responder perguntas com base no conteúdo do relatório. É uma aplicação prática e didática para economistas que desejam integrar IA ao seu fluxo de análise.

Automatizando a Construção de Códigos em Python com LangGraph

Neste post, mostramos como construir um agente de código em Python utilizando LangGraph, LangChain e Gemini. A proposta é construir um protótipo para automatizar o ciclo completo de geração, execução e correção de código com o uso de LLMs, organizando o processo em um grafo de estados.

Análise de Dados com REPL Tool e LLM usando LangGraph

Neste post, vamos mostrar como você pode criar um agente que interpreta e executa código Python em tempo real, utilizando o REPL-Tool e um LLM da família Gemini. Começamos com um exemplo genérico e, em seguida, aplicamos a mesma estrutura à análise econômica de uma série histórica do IPCA.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.