1 Introdução

O Instituto Brasileiro de Geografia e Estatística (IBGE) disponibiliza séries históricas de vários indicadores, calculados a partir de suas pesquisas domiciliares, por meio do seu Sistema IBGE de Recuperação Automática - SIDRA. Esta é uma ferramenta prática e permite a criação de diferentes tabelas e gráficos. Contudo, muitas vezes, precisamos de um indicador com características específicas, como um recorte geográfico ou etário. Nesses casos, é necessário acessar os microdados das pesquisas para calcular o indicador de interesse.

A Pesquisa Nacional por Amostra de Domicílios Contínua (PNADC) é uma pesquisa domiciliar de abrangência nacional, com um desenho amostral complexo. Seu objetivo é produzir informações sobre o mercado de trabalho, além de coletar dados demográficos e outras informações socioeconômicas. Em particular, as informações sobre desemprego e informalidade no Brasil são obtidas a partir da PNADC. Os microdados da PNADC estão disponíveis desde janeiro de 2012. Embora exista a coleta e divulgação de resultados mensais, a divulgação de dados conjunturais está organizada de forma trimestral. É possível também obter uma versão anual dos microdados, em que eles são acumulados em determinada entrevista (de 1 a 5) ou correspondendo a um trimestre específico (de 1 a 4). Para uma explicação mais detalhada das diferentes entrevistas de um mesmo domicílio e a estrutura do painel rotativo da PNADC veja essa postagem.

Felizmente, para a PNADC existem pacotes em R e Python que facilitam muito a análise de seus microdados. Esses pacotes são o PNADcIBGE de Braga, Assuncao, Hidalgo, & Quintaes (2024)1 e o pynad de Osório (2023), respectivamente.

Nessa publicação utilizamos os microdados trimestrais e anuais da PNADC-IBGE que são baixados, lidos (utilizando o pacote PNADcIBGE) e convertidos no formato parquet (utilizando o pacote arrow) de forma a criar um parquet dataset para os microdados trimestrais e outro para os anuais. Isso possibilita maior eficiência em análises posteriores. Para demonstrar isso, utilizamos o pacote tictoc para comparações simples de tempos de leitura e processamento. Consideramos o exemplo em que precisamos criar séries de indicadores, isto é, quando é necessário utilizar os microdados de um trimestre ou ano para se calcular apenas alguns resultados de interesse. Repetindo o processo para todos trimestres ou anos para que se deseje a série. Construímos séries trimestrais (2012T1-2024T2) e anuais (2012-2023): da taxa de desemprego de jovens (14 a 23 anos) e de idosos (65 ou mais anos), e da razão de dependência.

2 Definições sobre o mercado de trabalho:

Ao estudar o mercado de trabalho são necessárias algumas definições sobre o estado das pessoas nesse mercado, como por exemplo, em quais situações uma pessoa é considerada desempregada ou não, (Ehrenberg & Smith, 2000). Apresentam-se alguns desses conceitos nessa seção, as definições utilizadas na PNADC podem ser encontradas em IBGE (2020).

  • População em idade ativa (PIA): corresponde a todas as pessoas que, dado sua idade, poderiam legalmente trabalhar. Usualmente a PIA é definida como a população maior de 14 anos2 e menor de 65 anos. Na PNADC, são considerados em idade ativa pessoas de 14 anos ou mais de idade na data de referência.

  • População economicamente ativa (PEA): correspondem aos membros da PIA estavam trabalhando ou disponíveis para trabalhar num período de referência, a PEA também é referida como força de trabalho. Na PNADC a PEA corresponde as pessoas que estão ocupadas na semana de referência e aquelas que não estão ocupadas na semana de referência3, mas procuraram trabalho no período de referência de 30 dias.4 A participação ou não na PEA e a situação de emprego e desemprego são identificadas nas seguintes variáveis disponíveis nos microdados:

    • VD4001 – Condição em relação à força de trabalho na semana de referência para pessoas de 14 anos ou mais de idade, e
    • VD4002 – Condição de ocupação na semana de referência para pessoas de 14 anos ou mais de idade.

\[ \begin{aligned} &\text{VD4001} \begin{cases} = 1 \hspace{10pt} \text{ Pessoas na força de trabalho} \\ = 2 \hspace{10pt} \text{ Pessoas fora da força de trabalho} \end{cases} \\ &\text{VD4002} \begin{cases} = 1 \hspace{10pt} \text{ Pessoas ocupadas} \\ = 2 \hspace{10pt} \text{ Pessoas desocupadas} \end{cases} \end{aligned} \]

Esquematicamente podemos dividir a população da seguinte forma:

\[ \text{População Total} \begin{cases} \color{cyan}{\text{PIA}_{\text{V2009} \geq 14}} \begin{cases} \color{lightgreen}{\text{PEA}_{\text{VD4001} = 1}} \begin{cases} \color{lightblue}{Ocupados_{\text{VD4002} = 1}} \\ \color{darkred}{Desocupados_{\text{VD4002} = 2}} \end{cases} \\ \color{green}{\text{População fora da força de trabalho}_{\text{VD4001} = 2}} \end{cases} \\ \text{População em idade não ativa} \end{cases} \]

A partir desses conceitos podemos definir dois indicadores importantes:

  • Taxa de participação: percentual de pessoas na força de trabalho na semana de referência em relação às pessoas em idade de trabalhar.

\[ \text{taxa de participação} \equiv tp = \frac{PEA}{PIA} \times 100 \% \]

  • Taxa de desemprego: percentual de pessoas desocupadas, na semana de referência em relação às pessoas na PEA no mesmo período.

\[ \text{taxa de desemprego} \equiv u = \frac{Desocupados}{PEA} \times 100 \% \]

2.1 Grupos etários no mercado de trabalho

A estrutura etária de uma população é importante para o planejamento de diversas políticas, como educação, saúde e previdência. Várias dessas políticas têm financiamento por repartição (como a previdência social e a saúde suplementar, por exemplo) e sua solvência depende fundamentalmente do tamanho da população em idade ativa em relação ao tamanho da população total.

Nesse sentido, a razão de dependência total (RDT) – a proporção daqueles que normalmente não deveriam estar no mercado de trabalho (menores de 14 anos e maiores de 65 anos) em relação aqueles em idade ativa (maiores de 14 anos e menores de 65 anos) – é uma aproximação do esforço necessário da PIA para a manutenção da sociedade.

\[ RDT = \frac{P_{[0,14[} + P_{[65,]}}{P_{[14,65[}} \\ \] Os recortes etários da definição da RDT são convencionais e utilizados diferentes contextos e países.

Para calcular as taxas de desemprego de jovens e idosos, é fundamental definir como esses grupos são caracterizados.

  • Jovens: o Brasil tem uma definição legal bastante abrangente para os jovens (de 15 a 29 anos) dada pela Lei nº 12.852, de 5 de agosto de 2000. Contudo, aqui vamos considerar como jovens aqueles elegíveis ao contrato de aprendizagem profissional (de 15 a 24 anos) como disposto na Lei nº 10.097, de 19 de dezembro de 2000, modificada pela Lei nº 11.180, de 23 de setembro de 2005.

  • Idosos: da mesma forma, temos uma definição bastante abrangente para os idosos (idade igual ou superior a 60 anos) dada pela Lei nº 10.741, de 1º de outubro de 2003. Essa idade não apenas não reflete a evolução da expectativa de vida no Brasil desde 2003 como também difere das idades mínimas de aposentadoria definidas na reforma de previdência realizada pela Emenda Constitucional nº 103 de 12 de novembro de 2019.5 Desta forma, vamos considerar como idosos aqueles maiores de 65 anos.

3 Os microdados da PNADC

3.1 Obtendo os microdados

Utilizando o pacote PNADcIBGE é possível obter os microdados da PNADC utilizando a função get_pnadc(), que fará o download dos microdados (arquivo .zip) e os carregará na memória como um objeto survey, isto é, já considerando o desenho amostral da PNADC.

Aqui vamos seguir um caminho diferente, a motivação para isso é explicada na próxima subseção. Por hora, vamos baixar os arquivos correspondentes aos Microdados de Divulgação Trimestral e os Microdados de Divulgação Anual manualmente do site, como nas telas a seguir:

Tela 1 - Download \(~\)

Vamos considerar a versão dos microdados anuais Acumulados em determinada visita6.

Para o acompanhamento conjuntural (como a evolução do desemprego) e para o uso da estrutura longitudinal da PNADC os microdados trimestrais são a escolha apropriada. Em contraste, a análise da distribuição de renda geralmente utiliza os microdados anuais acumulados de uma visita específica.

Tela 2 - Download \(~\)

Usualmente os dados acumulados na visita 1 são os mais relevantes para as análises de mercado de trabalho. Contudo, a coleta e produção de dados durante a pandemia de SARS-CoV2 foi comprometida e os microdados anuais acumulados na visita 1 não estão disponíveis para os anos de 2020 e 2021. Para esses anos consideraremos então os microdados acumulados na visita 5.

Tela 2 - Download \(~\)

Além dos arquivos de dados, devem ser baixados também os arquivos de input. São esses arquivos que contém os nomes, os tipos e as posições das variáveis nos arquivos de dados. No que se segue esperamos que os arquivos de dados tenham sido descompactados e salvos em E:/Data/PNADC/Anual/txt/ e E:/Data/PNADC/Trimestral/txt/. E que os arquivos de input tenham sido salvos em E:/Data/PNADC/Anual/Documentacao/ E:/Data/PNADC/Trimestral/Documentacao/:

## # A tibble: 12 × 2
##    path                                                  size
##    <fs::path>                                     <fs::bytes>
##  1 E:/Data/PNADC/Anual/txt/PNADC_2012_visita1.txt       1.52G
##  2 E:/Data/PNADC/Anual/txt/PNADC_2013_visita1.txt       1.57G
##  3 E:/Data/PNADC/Anual/txt/PNADC_2014_visita1.txt       1.58G
##  4 E:/Data/PNADC/Anual/txt/PNADC_2015_visita1.txt       1.62G
##  5 E:/Data/PNADC/Anual/txt/PNADC_2016_visita1.txt       1.58G
##  6 E:/Data/PNADC/Anual/txt/PNADC_2017_visita1.txt       1.58G
##  7 E:/Data/PNADC/Anual/txt/PNADC_2018_visita1.txt       1.56G
##  8 E:/Data/PNADC/Anual/txt/PNADC_2019_visita1.txt       1.53G
##  9 E:/Data/PNADC/Anual/txt/PNADC_2020_visita5.txt        1.2G
## 10 E:/Data/PNADC/Anual/txt/PNADC_2021_visita5.txt       1.13G
## 11 E:/Data/PNADC/Anual/txt/PNADC_2022_visita1.txt        1.3G
## 12 E:/Data/PNADC/Anual/txt/PNADC_2023_visita1.txt        1.3G
## # A tibble: 10 × 2
##    path                                                                     size
##    <fs::path>                                                              <fs:>
##  1 …/PNADC/Anual/Documentacao/input_PNADC_2012_a_2014_visita1_20220224.txt   25K
##  2 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2015_visita1_20220224.txt  27.6K
##  3 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2016_visita1_20220224.txt  27.4K
##  4 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2017_visita1_20220224.txt  27.6K
##  5 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2018_visita1_20220224.txt  27.8K
##  6 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2019_visita1_20230811.txt    28K
##  7 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2020_visita5_20220224.txt  23.6K
##  8 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2021_visita5.txt           23.6K
##  9 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2022_visita1_20231129.txt  27.5K
## 10 E:/Data/PNADC/Anual/Documentacao/input_PNADC_2023_visita1_20240621.txt    24K
## # A tibble: 50 × 2
##    path                                                 size
##    <fs::path>                                    <fs::bytes>
##  1 E:/Data/PNADC/Trimestral/txt/PNADC_012012.txt       1.84G
##  2 E:/Data/PNADC/Trimestral/txt/PNADC_012013.txt       1.83G
##  3 E:/Data/PNADC/Trimestral/txt/PNADC_012014.txt       1.86G
##  4 E:/Data/PNADC/Trimestral/txt/PNADC_012015.txt       1.86G
##  5 E:/Data/PNADC/Trimestral/txt/PNADC_012016.txt       1.84G
##  6 E:/Data/PNADC/Trimestral/txt/PNADC_012017.txt       1.86G
##  7 E:/Data/PNADC/Trimestral/txt/PNADC_012018.txt       1.82G
##  8 E:/Data/PNADC/Trimestral/txt/PNADC_012019.txt       1.79G
##  9 E:/Data/PNADC/Trimestral/txt/PNADC_012020.txt       1.58G
## 10 E:/Data/PNADC/Trimestral/txt/PNADC_012021.txt       1.04G
## # ℹ 40 more rows
## # A tibble: 1 × 2
##   path                                                                    size
##   <fs::path>                                                       <fs::bytes>
## 1 E:/Data/PNADC/Trimestral/Documentacao/input_PNADC_trimestral.txt       22.5K

3.2 Leitura dos arquivos originais e criação dos arquivos parquet

Para a criação de qualquer série de indicadores a partir de dados cross-section (trimestrais ou anuais) da PNADC será necessário: carregar uma edição da base (trimestral ou anual), calcular os as quantidades de interesse, armazenar os resultados e passar para a edição seguinte. Repetindo o processo até o fim do período desejado.

Esse processo pode apresentar erros, como um erro na fórmula para um determinado indicador, ou então você pode desejar criar uma série para um novo indicador em algum momento. Por isso, é importante que o carregamento das bases e o cálculo dos indicadores sejam realizados de forma rápida e eficiente. Com isso em mente, nem a leitura dos arquivos .txt a cada etapa do processo, nem o carregamento das bases em formato .RDS é o ideal.

Nessa seção vamos ler os arquivos .txt e salvá-los no formato .parquet. Esse formato de arquivo apresenta uma série de vantagens: como menor tamanho em disco, possibilidade de trabalhar com os dados em disco (no lugar da memória) e possibilidade de carregar apenas as variáveis de interesse. Para uma explicação das vantagens potenciais desse formato veja a seção 4 desse post.

Para tanto, vamos salvar os caminhos e nomes dos arquivos de interesse em vetores. Isso permitirá automatizar a leitura e o salvamento posteriormente. Abaixo, mostramos duas formas equivalentes de realizar essa tarefa:

####################################
##    ARQUIVOS ANUAIS
####################################

# Listando os caminhos e nomes dos arquivos manualmente
arquivos_anuais_txt <- 
  c("E:/Data/PNADC/Anual/txt/PNADC_2012_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2013_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2014_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2015_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2016_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2017_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2018_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2019_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2020_visita5.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2021_visita5.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2022_visita1.txt",
    "E:/Data/PNADC/Anual/txt/PNADC_2023_visita1.txt")

inputs_anuais <- 
  c("E:/Data/PNADC/Anual/Documentacao/input_PNADC_2012_a_2014_visita1_20220224.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2015_visita1_20220224.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2016_visita1_20220224.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2017_visita1_20220224.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2018_visita1_20220224.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2019_visita1_20230811.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2020_visita5_20220224.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2021_visita5.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2022_visita1_20231129.txt",
    "E:/Data/PNADC/Anual/Documentacao/input_PNADC_2023_visita1_20240621.txt")

# Obtendo os caminhos e nomes dos arquivos a partir dos padrões de nome
# Os objetos gerados abaixo são idênticos aos obtidos acima
arquivos_anuais_txt <- dir("E:/Data/PNADC/Anual/txt/",
                           full.names = TRUE)

inputs_anuais <- dir("E:/Data/PNADC/Anual/Documentacao/",
                     pattern = "input_PNADC_",
                     full.names = TRUE)

####################################
##    ARQUIVOS TRIMESTRAIS
####################################

arquivos_trim_txt <- dir("E:/Data/PNADC/Trimestral/txt/",
                         full.names = TRUE)

input_trimestral <- 
  "E:/Data/PNADC/Trimestral/Documentação/input_PNADC_trimestral.txt"

Nos passos seguintes utilizaremos funções dos pacotes carregados abaixo:

library("PNADcIBGE")
library("survey")
library("tidyverse")
library("arrow")
library("tictoc")

3.2.1 Dados anuais

Com os pacotes carregados e os arquivos “brutos” mapeados nos vetores, podemos passar a leitura e salvamento em formato parquet. O código abaixo lê a PNADC anual de 2015 (item 4 no nosso vetor arquivos_anuais_txt) utilizando o arquivo de input correspondente (item 2 no nosso vetor inputs_anuais).

# Leitura de um único arquivo
PNAD2015 <-
  # Lê o txt original com as definições do arquivo input
  read_pnadc(microdata = arquivos_anuais_txt[4],
             input_txt = inputs_anuais[2]) %>%
  # Ordena pelas variáveis
  arrange(Ano, Trimestre, UF, Capital, RM_RIDE, UPA, Estrato,
          V1008, V1014, V1022, V1023) %>%
  # Grava o arquivo parquet
  write_parquet(
    sink = "E:/Data/PNADC/Anual/parquet/PNADC_2012_A1.parquet",
    compression = "gzip",
    compression_level = 9)

O arquivo destino é nomeado seguindo o padrão PNADC_AAAA_PN.parquet, onde:

  • AAAA: ano, com quatro dígitos.
  • P: periodiciade dos dados do arquivo, A para anuat ou T para trimestral.
  • N: número da visita em que a PNADC Anual é acumulada ou número do trimetre para a PNADC trimetral.

Pode-se automatizar o bloco de código acima para realizar esse processo para todos os arquivos do vetor arquivos_txt. Nesse caso, temos:

# Leitura e salvamento de todos arquivos da PNADC Anual
for(i in 2012:2023){
    PNAD <- read_pnadc(microdata = arquivos_anuais_txt[i-2011],
                       input_txt = ifelse(i %in% c(2012,2013,2014), 
                                          inputs_anuais[1], 
                                          inputs_anuais[i-2011-2])) %>% 
      arrange(Ano, Trimestre, UF, Capital, RM_RIDE, UPA, Estrato,
              V1008, V1014, V1022, V1023) %>% 
      write_parquet(
        sink = ifelse(i %in% c(2020,2021), 
                      paste0("E:/Data/PNADC/Anual/parquet/PNADC_",
                             i,
                             "_A5.parquet"), 
                      paste0("E:/Data/PNADC/Anual/parquet/PNADC_",
                             i,
                             "_A1.parquet")),
        compression = "gzip",
        compression_level = 9)
    rm(PNAD)
    gc()
}

Com a conclusão deste loop teremos todos os arquivos da PNADC anual das visitas selecionadas em formato parquet prontos para nossas análises. Observe que o tamanho em disco é substancialmente menor do que o dos arquivos .txt.”

## # A tibble: 12 × 2
##    path                                                     size
##    <fs::path>                                        <fs::bytes>
##  1 E:/Data/PNADC/Anual/parquet/PNADC_2012_A1.parquet        242M
##  2 E:/Data/PNADC/Anual/parquet/PNADC_2013_A1.parquet        253M
##  3 E:/Data/PNADC/Anual/parquet/PNADC_2014_A1.parquet        258M
##  4 E:/Data/PNADC/Anual/parquet/PNADC_2015_A1.parquet        257M
##  5 E:/Data/PNADC/Anual/parquet/PNADC_2016_A1.parquet        262M
##  6 E:/Data/PNADC/Anual/parquet/PNADC_2017_A1.parquet        262M
##  7 E:/Data/PNADC/Anual/parquet/PNADC_2018_A1.parquet        261M
##  8 E:/Data/PNADC/Anual/parquet/PNADC_2019_A1.parquet        258M
##  9 E:/Data/PNADC/Anual/parquet/PNADC_2020_A5.parquet        208M
## 10 E:/Data/PNADC/Anual/parquet/PNADC_2021_A5.parquet        197M
## 11 E:/Data/PNADC/Anual/parquet/PNADC_2022_A1.parquet        224M
## 12 E:/Data/PNADC/Anual/parquet/PNADC_2023_A1.parquet        230M

3.2.2 Dados trimestrais

O mesmo procedimento pode ser repetido para os microdados trimestrais, mas com a simplificação de que o arquivo de input é único. Por essa razão não precisamos nos preocupar com a ordem que os arquivos .txt foram armazenados no vetor arquivos_trim_txt.

Para um arquivo único temos o bloco de código:

# Leitura de um único arquivo
PNAD2012T1 <-
  # Lê o txt original com as definições do arquivo input
  read_pnadc(microdata = arquivos_trim_txt[1],
             input_txt = input_trimestral) %>%
  # Ordena pelas variáveis
  arrange(Ano, Trimestre, UF, Capital, RM_RIDE, UPA, Estrato,
          V1008, V1014, V1022, V1023) %>%
  # Grava o arquivo parquet
  write_parquet(
    sink = "E:/Data/PNADC/Trimestral/parquet/PNADC_2012_T1.parquet",
    compression = "gzip",
    compression_level = 9)

E fazendo o loop para os 50 arquivos temos:

for(q in 1:length(arquivos_trim_txt)){
  # Lê o txt original com as definições do arquivo input
  read_pnadc(microdata = arquivos_trim_txt[q],
             input_txt = input_trimestral) %>%
  # Ordena pelas variáveis
  arrange(Ano, Trimestre, UF, Capital, RM_RIDE, UPA, Estrato,
          V1008, V1014, V1022, V1023) %>%
  # Grava o arquivo parquet
  write_parquet(
    sink = paste0("E:/Data/PNADC/Trimestral/parquet/PNADC_",
                  substr(basename(arquivos_trim_txt[q]),
                         start = regexpr(".txt", basename(arquivos_trim_txt[q])) - 4,
                         stop = regexpr(".txt", basename(arquivos_trim_txt[q])) - 1),
                  "_T",
                  substr(basename(arquivos_trim_txt[q]),
                         start = regexpr(".txt", basename(arquivos_trim_txt[q])) - 5,
                         stop = regexpr(".txt", basename(arquivos_trim_txt[q])) - 5),
                  ".parquet"),
    compression = "gzip",
    compression_level = 9)
}
rm(q)

Novamente, temos os arquivos .parquet substanciamente menores que os originais.

## # A tibble: 50 × 2
##    path                                                          size
##    <fs::path>                                             <fs::bytes>
##  1 E:/Data/PNADC/Trimestral/parquet/PNADC_2012_T1.parquet        302M
##  2 E:/Data/PNADC/Trimestral/parquet/PNADC_2012_T2.parquet        303M
##  3 E:/Data/PNADC/Trimestral/parquet/PNADC_2012_T3.parquet        302M
##  4 E:/Data/PNADC/Trimestral/parquet/PNADC_2012_T4.parquet        299M
##  5 E:/Data/PNADC/Trimestral/parquet/PNADC_2013_T1.parquet        306M
##  6 E:/Data/PNADC/Trimestral/parquet/PNADC_2013_T2.parquet        311M
##  7 E:/Data/PNADC/Trimestral/parquet/PNADC_2013_T3.parquet        310M
##  8 E:/Data/PNADC/Trimestral/parquet/PNADC_2013_T4.parquet        310M
##  9 E:/Data/PNADC/Trimestral/parquet/PNADC_2014_T1.parquet        313M
## 10 E:/Data/PNADC/Trimestral/parquet/PNADC_2014_T2.parquet        314M
## # ℹ 40 more rows

3.3 O plano amostral

Como já mencionado, a PNADC é uma pesquisa domiciliar com desenho amostral complexo. Isso significa, entre outras coisas, que cada observação (linha) dos arquivos lidos nos passos anteriores representa mais de uma pessoa. Esse fato é incoporado em uma variável, chamada de peso ou fator de expansão, que deve ser utilizada ao se estimar quantidades. Adicionalmente, o desenho amostral complexo afeta as estimativas de variância dessas quantidades. Se ignorado, as estimativas da variância serão subestimadas, ver Deaton (1997) para uma explicação detalhada.

Muitos dos estudos utilizando a PNAD antiga consideravam apenas os pesos (a saudosa V4729), ignorando outros aspectos importantes do desenho amostral, como clusters e estratos. Nesses casos, as estimativas das “quantidades” eram corretas, mas as variâncias e testes estatísticos ficavam comprometidos. O trabalho de Silva, Pessoa, & Lila (2002) detalha como o desenho amostral da PNAD antiga deve ser incorporado nas análises.

Com a adoção da amostra mestra para as pesquisas domiciliares do IBGE e outras inovações introduzidas, a incorporação do desenho amostral da PNADC às análises tornou-se mais complexa. Por um lado, os microdados já trazem algumas estimativas por bootstrap que dispensa os usuários de realizarem muitos cálculos, por outro lado, agora são necessárias muitas variáveis (DUZENTAS E QUINZE!) para declarar o desenho amostral. O pacote PNADcIBGE facilita significamente essa tarefa com a função pnadc_design().

Para garantir o uso eficiente do tempo de leitura dos arquivos e da memória RAM, devemos ler apenas as variáveis utilizadas nos cálculos. Assim, independentemente das outras variáveis que poderemos precisar, sempre será necessário ler as 215 variáveis relacionadas ao plano amostral. Para facilitar os passos seguintes, vamos listar essas variáveis nos vetores vars_plano_amostral_a (para os dados anuais) e vars_plano_amostral_t (para os dados trimestrais):

# Desenho Amostral - PNADC ANUAL
# São 215 variáveis!
vars_plano_amostral_a <- 
  c("Ano", "Trimestre", "UF", "UPA", "Estrato", "V1008", "V1014", 
    "V1030", "V1031", "V1032", "V1034", "posest", "posest_sxi", 
    "V2003", "V1032001", "V1032002", "V1032003", "V1032004", 
    "V1032005", "V1032006", "V1032007", "V1032008", "V1032009",
    "V1032010", "V1032011", "V1032012", "V1032013", "V1032014", 
    "V1032015", "V1032016", "V1032017", "V1032018", "V1032019",
    "V1032020", "V1032021", "V1032022", "V1032023", "V1032024",
    "V1032025", "V1032026", "V1032027", "V1032028", "V1032029",
    "V1032030", "V1032031", "V1032032", "V1032033", "V1032034",
    "V1032035", "V1032036", "V1032037", "V1032038", "V1032039",
    "V1032040", "V1032041", "V1032042", "V1032043", "V1032044",
    "V1032045", "V1032046", "V1032047", "V1032048", "V1032049",
    "V1032050", "V1032051", "V1032052", "V1032053", "V1032054",
    "V1032055", "V1032056", "V1032057", "V1032058", "V1032059",
    "V1032060", "V1032061", "V1032062", "V1032063", "V1032064",
    "V1032065", "V1032066", "V1032067", "V1032068", "V1032069",
    "V1032070", "V1032071", "V1032072", "V1032073", "V1032074",
    "V1032075", "V1032076", "V1032077", "V1032078", "V1032079",
    "V1032080", "V1032081", "V1032082", "V1032083", "V1032084",
    "V1032085", "V1032086", "V1032087", "V1032088", "V1032089",
    "V1032090", "V1032091", "V1032092", "V1032093", "V1032094",
    "V1032095", "V1032096", "V1032097", "V1032098", "V1032099",
    "V1032100", "V1032101", "V1032102", "V1032103", "V1032104",
    "V1032105", "V1032106", "V1032107", "V1032108", "V1032109",
    "V1032110", "V1032111", "V1032112", "V1032113", "V1032114",
    "V1032115", "V1032116", "V1032117", "V1032118", "V1032119",
    "V1032120", "V1032121", "V1032122", "V1032123", "V1032124",
    "V1032125", "V1032126", "V1032127", "V1032128", "V1032129",
    "V1032130", "V1032131", "V1032132", "V1032133", "V1032134",
    "V1032135", "V1032136", "V1032137", "V1032138", "V1032139",
    "V1032140", "V1032141", "V1032142", "V1032143", "V1032144",
    "V1032145", "V1032146", "V1032147", "V1032148", "V1032149",
    "V1032150", "V1032151", "V1032152", "V1032153", "V1032154",
    "V1032155", "V1032156", "V1032157", "V1032158", "V1032159",
    "V1032160", "V1032161", "V1032162", "V1032163", "V1032164",
    "V1032165", "V1032166", "V1032167", "V1032168", "V1032169",
    "V1032170", "V1032171", "V1032172", "V1032173", "V1032174",
    "V1032175", "V1032176", "V1032177", "V1032178", "V1032179",
    "V1032180", "V1032181", "V1032182", "V1032183", "V1032184",
    "V1032185", "V1032186", "V1032187", "V1032188", "V1032189",
    "V1032190", "V1032191", "V1032192", "V1032193", "V1032194",
    "V1032195", "V1032196", "V1032197", "V1032198", "V1032199",
    "V1032200", "ID_DOMICILIO")

# Desenho Amostral - PNADC TRIMESTRAL
# São 215 variáveis!
vars_plano_amostral_t <- 
  c("Ano", "Trimestre", "UF", "UPA", "Estrato", "V1008", "V1014", 
    "V1027", "V1028", "V1029", "V1033", "posest", "posest_sxi", 
    "V2003", "V1028001", "V1028002", "V1028003", "V1028004", 
    "V1028005", "V1028006", "V1028007", "V1028008", "V1028009", 
    "V1028010", "V1028011", "V1028012", "V1028013", "V1028014", 
    "V1028015", "V1028016", "V1028017", "V1028018", "V1028019", 
    "V1028020", "V1028021", "V1028022", "V1028023", "V1028024", 
    "V1028025", "V1028026", "V1028027", "V1028028", "V1028029", 
    "V1028030", "V1028031", "V1028032", "V1028033", "V1028034", 
    "V1028035", "V1028036", "V1028037", "V1028038", "V1028039", 
    "V1028040", "V1028041", "V1028042", "V1028043", "V1028044", 
    "V1028045", "V1028046", "V1028047", "V1028048", "V1028049", 
    "V1028050", "V1028051", "V1028052", "V1028053", "V1028054", 
    "V1028055", "V1028056", "V1028057", "V1028058", "V1028059", 
    "V1028060", "V1028061", "V1028062", "V1028063", "V1028064", 
    "V1028065", "V1028066", "V1028067", "V1028068", "V1028069", 
    "V1028070", "V1028071", "V1028072", "V1028073", "V1028074", 
    "V1028075", "V1028076", "V1028077", "V1028078", "V1028079", 
    "V1028080", "V1028081", "V1028082", "V1028083", "V1028084", 
    "V1028085", "V1028086", "V1028087", "V1028088", "V1028089", 
    "V1028090", "V1028091", "V1028092", "V1028093", "V1028094", 
    "V1028095", "V1028096", "V1028097", "V1028098", "V1028099", 
    "V1028100", "V1028101", "V1028102", "V1028103", "V1028104", 
    "V1028105", "V1028106", "V1028107", "V1028108", "V1028109", 
    "V1028110", "V1028111", "V1028112", "V1028113", "V1028114", 
    "V1028115", "V1028116", "V1028117", "V1028118", "V1028119", 
    "V1028120", "V1028121", "V1028122", "V1028123", "V1028124", 
    "V1028125", "V1028126", "V1028127", "V1028128", "V1028129", 
    "V1028130", "V1028131", "V1028132", "V1028133", "V1028134", 
    "V1028135", "V1028136", "V1028137", "V1028138", "V1028139", 
    "V1028140", "V1028141", "V1028142", "V1028143", "V1028144", 
    "V1028145", "V1028146", "V1028147", "V1028148", "V1028149", 
    "V1028150", "V1028151", "V1028152", "V1028153", "V1028154", 
    "V1028155", "V1028156", "V1028157", "V1028158", "V1028159", 
    "V1028160", "V1028161", "V1028162", "V1028163", "V1028164", 
    "V1028165", "V1028166", "V1028167", "V1028168", "V1028169", 
    "V1028170", "V1028171", "V1028172", "V1028173", "V1028174", 
    "V1028175", "V1028176", "V1028177", "V1028178", "V1028179", 
    "V1028180", "V1028181", "V1028182", "V1028183", "V1028184", 
    "V1028185", "V1028186", "V1028187", "V1028188", "V1028189", 
    "V1028190", "V1028191", "V1028192", "V1028193", "V1028194", 
    "V1028195", "V1028196", "V1028197", "V1028198", "V1028199", 
    "V1028200", "ID_DOMICILIO")

3.4 Comparativo da velocidade de leitura

Nessa subseção fazemos um comparativo da velocidade de leitura variando o formato do arquivo de origem (.txt ou .parquet) e também a quantidade de colunas lidas (todas ou apenas três variáveis além das do plano amostral).

# Mapeia os arquivos parquet em um vetor
parquet_anual <- dir("E:/Data/PNADC/Anual/parquet/",
                     full.names = TRUE)

######## TODAS VARIÁVEIS ############
# Leitura de toda PNADC 2012 do txt
tic()
pnad <- read_pnadc(microdata = arquivos_anuais_txt[1],
                   input_txt = inputs_anuais[1]) 
toc(log = TRUE, quiet = TRUE)
t1 <- tic.log(format = TRUE)
tic.clearlog()

# Criação de um objeto survey a partir do tibble
tic()
pnad <- pnadc_design(pnad)
toc(log = TRUE, quiet = TRUE)
l1 <- tic.log(format = TRUE)
tic.clearlog()
rm(pnad)

# Leitura de toda PNADC 2012 do parquet 
tic()
pnad <- read_parquet(parquet_anual[1]) 
toc(log = TRUE, quiet = TRUE)
t2 <- tic.log(format = TRUE)
tic.clearlog()

# Criação de um objeto survey a partir do tibble
tic()
pnad <- pnadc_design(pnad)
toc(log = TRUE, quiet = TRUE)
l2 <- tic.log(format = TRUE)
tic.clearlog()
rm(pnad)

######## VARIÁVEIS SELECIONADAS ############
# Leitura de três variáveis da PNADC 2012 do txt
tic()
pnad <- read_pnadc(microdata = arquivos_anuais_txt[1],
                   input_txt = inputs_anuais[1],
                   # a read_pnadc() já traz as variáveis do plano amostral
                   vars = c("V2009","VD4001","VD4002")) 
toc(log = TRUE, quiet = TRUE)
t3 <- tic.log(format = TRUE)
tic.clearlog()

# Criação de um objeto survey a partir do tibble
tic()
pnad <- pnadc_design(pnad)
toc(log = TRUE, quiet = TRUE)
l3 <- tic.log(format = TRUE)
tic.clearlog()
rm(pnad)

# Leitura de três variáveis da PNADC 2012 do parquet
tic()
pnad <- read_parquet(parquet_anual[1],
                    col_select = tidyselect::all_of(c("V2009","VD4001","VD4002",
                                                      vars_plano_amostral_a))) 
toc(log = TRUE, quiet = TRUE)
t4 <- tic.log(format = TRUE)
tic.clearlog()

# Criação de um objeto survey a partir do tibble
tic()
pnad <- pnadc_design(pnad)
toc(log = TRUE, quiet = TRUE)
l4 <- tic.log(format = TRUE)
tic.clearlog()
rm(pnad)
Comparativo - tempo de leitura PNADC
Leitura Formato do arquivo Tempo de leitura Tempo de criação do survey
Toda PNADC 2012 .txt 26.2 sec elapsed 16.85 sec elapsed
Toda PNADC 2012 .parquet 4.79 sec elapsed 19.31 sec elapsed
Variáveis selecionadas PNADC 2012 .txt 5.66 sec elapsed 16.58 sec elapsed
Variáveis selecionadas PNADC 2012 .parquet 1.42 sec elapsed 19.95 sec elapsed

Um comparativo mais robusto repetiria o processo acima algumas vezes e consireraria a média dos tempos, mas para nossos fins de ilustração ele é suficiente. O tempo de leitura do formato .parquet é substancialmente mais rápido que do .txt. A transformação do tibble criado a partir do .parquet em um objeto survey é um pouco mais lento, mas longe de superar e economia de tempo da leitura.

4 Cálculo das séries anuais de desemprego

A motivação dessa postagem é criar séries da taxa de desemprego para subgrupos da popução geral que não estão disponíveis no SIDRA-IBGE. Especificamente vamos calcular a taxa de desemprego para jovens (14 a 23 anos) e idosos (65 ou mais anos), e também a Razão de Dependência Total (RDT).

Diferente do que fizemos no comparativo dos tempos de leitura, não utilizaremos a função arrow::read_parquet(), que carrega a base na memória. No lugar disso criaremos um objeto com a função arrow::read_dataset() que aponta para a pasta em que salvamos os arquivos parquet (trimestrais ou anuais). Assim, o R tratará todos os arquivos do diretório como uma única base de dados e trará para a memória RAM apenas o necessário, após o comendo collect().

4.1 Séries anuais

# Cria um tibble para armazenar as taxas de desemprego
taxas_desemprego_anual <- tibble(
  ano = seq(2012,2023),
  geral = double(12),
  jovens = double(12),
  idosos = double(12),
  rdt = double(12))

# Indica o diretório correspondente a base de dados
PNADC_A <- open_dataset("E:/Data/PNADC/Anual/parquet/", 
                        format = "parquet" )

for(j in 2012:2023){
  pnad <- PNADC_A %>% 
    filter(Ano == j) %>% 
    # Criando as variáveis para o cálculo da RDT
    mutate(dependentes = ifelse(V2009 < 14 | V2009 > 65, 1, 0),
           PIA = ifelse(V2009 >= 14 & V2009 <= 65, 1, 0)) %>%
    # Selecionando apenas as variáveis que serão usadas
    select(tidyselect::all_of(c("V2009","VD4001","VD4002",
                                vars_plano_amostral_a,
                                "dependentes", "PIA"))) %>%
    collect() %>% 
    pnadc_design()
  
  # Cálculo da taxa de desemprego para toda PEA
  taxas_desemprego_anual[j-2011,2] <-
    svyratio(numerator =~ (VD4002==2), 
             denominator =~ (VD4001==1), 
             design = pnad, 
             na.rm = TRUE) %>% 
    .[[1]] %>% 
    as.numeric()
  
  # Cálculo da taxa de desemprego para a PEA com idade de 14 a 23
  taxas_desemprego_anual[j-2011,3] <-
    svyratio(numerator =~ (VD4002==2), 
             denominator =~ (VD4001==1), 
             design = subset(pnad,
                             between(V2009,14,23)), 
             na.rm = TRUE) %>% 
    .[[1]] %>% 
    as.numeric()
  
  # Cálculo da taxa de desemprego para a PEA com idade de 65+
  taxas_desemprego_anual[j-2011,4] <-
    svyratio(numerator =~ (VD4002==2), 
             denominator =~ (VD4001==1), 
             design = subset(pnad,
                             V2009 >= 65), 
             na.rm = TRUE) %>% 
    .[[1]] %>% 
    as.numeric()
  
  # Cálculo da RDT
  taxas_desemprego_anual[j-2011,5] <-
    svyratio(numerator =~ (dependentes==1), 
             denominator =~ (PIA==1),
             design = pnad,
             na.rm = TRUE) %>% 
    .[[1]] %>% 
    as.numeric()
  
  rm(pnad)
  gc()
}

rm(j)
saveRDS(taxas_desemprego_anual, file = "Taxas_anuais.rds")
Séries de indicadores (taxa de desemprego e razão de dependência) PNADC-Anual 2012-2023
ano geral jovens idosos rdt
2012 0.0737771 0.1643244 0.0122868 0.4074533
2013 0.0729782 0.1676868 0.0113153 0.4021388
2014 0.0702013 0.1638665 0.0123318 0.3980605
2015 0.0888297 0.2077304 0.0197134 0.3947028
2016 0.1165399 0.2834648 0.0192657 0.3945160
2017 0.1264043 0.2902892 0.0324497 0.3939791
2018 0.1216662 0.2879174 0.0294921 0.3946271
2019 0.1180760 0.2773625 0.0324520 0.3954922
2020 0.1375480 0.3217755 0.0294653 0.3977218
2021 0.1400470 0.3149816 0.0359461 0.4004518
2022 0.0872267 0.2064790 0.0237767 0.4026297
2023 0.0775596 0.1824210 0.0228027 0.4061536
library("xts")
library("zoo")

taxas_desemprego_anual_xts <-
  taxas_desemprego_anual %>% 
  xts(.[,c(2,3,4,5)], 
      order.by = as.Date(paste(taxas_desemprego_anual$ano,6,1,
                               sep = "-"),
                         format = "%Y-%m-%d")) %>%
  .[,-c(1)] * 100

plot(taxas_desemprego_anual_xts,
     main = "Taxa de Desemprego e RDT (Anual)",
     legend.loc = "topleft")

4.2 Séries trimestrais

# Cria um tibble para armazenar as taxas de desemprego
taxas_desemprego_trim <- tibble(
  ano = rep(seq(2012,2024), each = 4),
  trimestre = rep(c(1:4), 13),
  geral = double(52),
  jovens = double(52),
  idosos = double(52),
  rdt = double(52))

# Indica o diretório correspondente a base de dados
PNADC_T <- open_dataset("E:/Data/PNADC/Trimestral/parquet/", 
                        format = "parquet" )

for(w in 2012:2024){
  for(z in 1:ifelse(w==2024,2,4)){
    pnad <- PNADC_T %>% 
      filter(Ano == w, Trimestre == z) %>% 
      # Criando as variáveis para o cálculo da RDT
      mutate(dependentes = ifelse(V2009 < 14 | V2009 > 65, 1, 0),
             PIA = ifelse(V2009 >= 14 & V2009 <= 65, 1, 0)) %>%
      # Selecionando apenas as variáveis que serão usadas
      select(tidyselect::all_of(c("V2009","VD4001","VD4002",
                                  vars_plano_amostral_t,
                                  "dependentes", "PIA"))) %>%
      collect() %>% 
      pnadc_design()
    
    # Cálculo da taxa de desemprego para toda PEA
    taxas_desemprego_trim[(((w-2012)*4)+z),3] <-
      svyratio(numerator =~ (VD4002==2), 
               denominator =~ (VD4001==1), 
               design = pnad, 
               na.rm = TRUE) %>% 
      .[[1]] %>% 
      as.numeric()
  
    # Cálculo da taxa de desemprego para a PEA com idade de 14 a 23
    taxas_desemprego_trim[(((w-2012)*4)+z),4] <-
      svyratio(numerator =~ (VD4002==2), 
               denominator =~ (VD4001==1), 
               design = subset(pnad,
                               between(V2009,14,23)), 
               na.rm = TRUE) %>% 
      .[[1]] %>% 
      as.numeric()
    
    # Cálculo da taxa de desemprego para a PEA com idade de 65+
    taxas_desemprego_trim[(((w-2012)*4)+z),5] <-
      svyratio(numerator =~ (VD4002==2), 
               denominator =~ (VD4001==1), 
               design = subset(pnad,
                               V2009 >= 65), 
               na.rm = TRUE) %>% 
      .[[1]] %>% 
      as.numeric()
    
    # Cálculo da RDT
    taxas_desemprego_trim[(((w-2012)*4)+z),6] <-
      svyratio(numerator =~ (dependentes==1), 
               denominator =~ (PIA==1),
               design = pnad,
               na.rm = TRUE) %>% 
      .[[1]] %>% 
      as.numeric()
    
    rm(pnad)
    gc()
  }
}

rm(w)
saveRDS(taxas_desemprego_trim, file = "Taxas_trimestrais.rds")
Séries de indicadores (taxa de desemprego e razão de dependência) PNADC-Trimestral 2012T1-2024T2
ano trimestre geral jovens idosos rdt
2012 1 0.0800003 0.1865910 0.0157729 0.4102880
2012 2 0.0759034 0.1735727 0.0165422 0.4087985
2012 3 0.0713709 0.1603193 0.0116572 0.4069882
2012 4 0.0691474 0.1558865 0.0135967 0.4054967
2013 1 0.0806303 0.1850530 0.0116178 0.4039602
2013 2 0.0752509 0.1714820 0.0137845 0.4029947
2013 3 0.0703176 0.1642868 0.0136491 0.4019202
2013 4 0.0625581 0.1440864 0.0104221 0.4006879
2014 1 0.0724306 0.1740724 0.0143766 0.3995628
2014 2 0.0693185 0.1657574 0.0100299 0.3987607
2014 3 0.0686572 0.1653636 0.0138702 0.3981722
2014 4 0.0658636 0.1559575 0.0145896 0.3974566
2015 1 0.0804423 0.1943557 0.0128576 0.3965730
2015 2 0.0843489 0.2001149 0.0194884 0.3958826
2015 3 0.0903035 0.2131451 0.0184563 0.3949214
2015 4 0.0907788 0.2157205 0.0197731 0.3940489
2016 1 0.1106123 0.2722833 0.0215489 0.3939525
2016 2 0.1144270 0.2757005 0.0282321 0.3946870
2016 3 0.1192036 0.2860657 0.0217996 0.3946298
2016 4 0.1215377 0.2879940 0.0225191 0.3947831
2017 1 0.1386818 0.3228043 0.0356847 0.3948838
2017 2 0.1310129 0.3047905 0.0317470 0.3944314
2017 3 0.1252452 0.2944045 0.0310619 0.3938234
2017 4 0.1189622 0.2819104 0.0260827 0.3939855
2018 1 0.1324301 0.3132847 0.0312155 0.3943127
2018 2 0.1256880 0.2980817 0.0305345 0.3947238
2018 3 0.1201811 0.2869948 0.0355852 0.3954229
2018 4 0.1171654 0.2814406 0.0359368 0.3955349
2019 1 0.1284569 0.3050381 0.0358841 0.3955865
2019 2 0.1214078 0.2878034 0.0387634 0.3956350
2019 3 0.1190154 0.2871922 0.0342293 0.3957523
2019 4 0.1108073 0.2662898 0.0282622 0.3960508
2020 1 0.1237306 0.3023468 0.0330375 0.3972038
2020 2 0.1359837 0.3181118 0.0369594 0.3975084
2020 3 0.1488980 0.3409491 0.0320497 0.3984055
2020 4 0.1417944 0.3262921 0.0307352 0.3985832
2021 1 0.1490816 0.3374759 0.0367394 0.3990296
2021 2 0.1423154 0.3171384 0.0364416 0.3998847
2021 3 0.1264062 0.2901071 0.0372092 0.4003431
2021 4 0.1114592 0.2612308 0.0279844 0.4015259
2022 1 0.1114397 0.2586780 0.0308519 0.4020073
2022 2 0.0930336 0.2221493 0.0298901 0.4026588
2022 3 0.0870016 0.2091014 0.0283733 0.4031847
2022 4 0.0794118 0.1899770 0.0246774 0.4040339
2023 1 0.0879357 0.2100923 0.0255092 0.4046538
2023 2 0.0803951 0.1937330 0.0230042 0.4056896
2023 3 0.0768891 0.1872426 0.0196314 0.4067296
2023 4 0.0740995 0.1800946 0.0244899 0.4077474
2024 1 0.0792395 0.1964834 0.0251254 0.4089354
2024 2 0.0689515 0.1704943 0.0214080 0.4102250
taxas_desemprego_trim_xts <-
  taxas_desemprego_trim %>% 
  xts(.[,c(3,4,5,6)], 
      order.by = as.Date(paste(taxas_desemprego_trim$ano,
                               (taxas_desemprego_trim$trimestre - 1) * 3 + 1,
                               1,
                               sep = "-"),
                         format = "%Y-%m-%d")) %>%
  .[-(c(51,52)),-c(1,2)] * 100

plot(taxas_desemprego_trim_xts,
     main = "Taxa de Desemprego e RDT (Trimestral)",
     legend.loc = "topleft")

5 Comentários finais

Essa publicação tentou ilustrar como salvar e organizar os microdados da PNADC/IBGE de forma que eles possam ser consultados rápidamente e em sequência para a criação de séries de indicadores simples.

O mercado de trabalho para jovens é caracterizado por uma série de fatos estilizados observados em diferentes países: taxas de desemprego mais elevadas que às população em geral, maior informalidade, e elevada rotatividade. Esses fatos são associados a pouca experiência profissional e a baixa qualificação desse grupo etário. Quanto a rotatividade, uma explicação se baseia numa característica comportamental dos jovens trabalhadores, que buscam experimentar diferentes ocupações antes de definirem uma carreira. A série de desemprego de jovens ilustra o fato estilizado do desemprego no Brasil, captando também que o diferencial de desemprego se acentua em períodos de crise econômica.

Referências bibliográficas

Braga, D., Assuncao, G., Hidalgo, L., & Quintaes, V. (2024, February). PNADcIBGE: Downloading, Reading and Analyzing PNADC Microdata. Retrieved from https://cran.r-project.org/web/packages/PNADcIBGE/index.html
Deaton, A. (1997). The design and content of household surveys. In The analysis of household surveys a microeconometric approach to development policy (pp. 7–62). Baltimore, MD: Johns Hopkins University Press.
Ehrenberg, R. G., & Smith, R. S. (2000). A moderna economia do trabalho: Teoria e política pública. São Paulo, SP: Makron Books.
IBGE. (2020). Pesquisa Nacional por Amostra de Domicílios Contínua Notas técnicas Versão 1.7. Rio de Janeiro, RJ: IBGE.
Osório, R. G. (2023). Pynad: An application to manage Pnadc microdata and its panels. Retrieved from https://pypi.org/project/pynad/
Silva, P. L. do N., Pessoa, D. G. C., & Lila, M. F. (2002). Análise estatística de dados da PNAD: Incorporando a estrutura do plano amostral. Ciência &Amp; Saúde Coletiva, 7(4), 659–670. doi:10.1590/S1413-81232002000400005

  1. Esse pacote conta com um excelente tutorial preparado por um de seus autores https://rpubs.com/gabriel-assuncao-ibge/pnadc↩︎

  2. No Brasil, pessoas com idade entre 14 e 16 anos podem trabalhar legalmente apenas se contratadas como aprendizes, observando a Lei nº 10.097, de 19 de dezembro de 2000.↩︎

  3. Semana imediatamente anterior à definida como de entrevista.↩︎

  4. Define-se como procura de trabalho em ocupação a tomada de alguma providência efetiva para consegui-lo, ou seja, o contato estabelecido com empregadores; a prestação de concurso; a inscrição em concurso; a consulta a agência de emprego, sindicato ou órgão similar; a resposta a anúncio de emprego; a solicitação de trabalho a parente, amigo, colega ou por meio de anúncio; a tomada de medida para iniciar o próprio negócio mediante a procura de local, equipamento ou outros pré-requisitos; a solicitação de registro ou licença para funcionamento do empreendimento etc. (IBGE, 2020, p. 36)↩︎

  5. A EC nº 103/2019 definiu a idade mínima de aposentadoria de 62 anos para as mulheres e 65 anos de idade para os homens.↩︎

  6. A alternativa seria a versão dos microdados Concentrados em determinado trimestre↩︎