Em todos os tutoriais anteriores trabalhamos com data frames que não continham nenhuma característica especial quanto ao desenho do seu processo de coleta. Por exemplo, quando trabalhamos com municípios do Estado de São Paulo, ou notícias de investimentos no Estado de São Paulo, estávamos trabalhando com o universo dos dados. A produção de tabelas ou quaisquer outras estatísticas era direta, e não requeria nenhum processo de ponderação das unidades em análise.
Ao trabalharmos com dados de survey, no entanto, precisamos considerar o desenho do processo amostral que gerou os dados. A maneira com que trabalhamos dados de survey em R é bastante diferente de outros softwares de análise de dados, como SPSS ou Stata. Não vamos simplesmente informar uma variável de peso ao produzir uma tabela. Em contraste, vamos transformar nosso objeto de dados (data frame) em um objeto de uma nova classe: um ‘desenho de survey’. A essa classe de objetos não aplicaremos as funções que conhecemos, mas novos métodos construídos para tal classe de objetos.
Neste tutorial, trabalharemos com os dados da PNAD Contínua para aprender a utilizar dados de survey. Compararemos dois pacotes que nos permitem criar objetos de classes adequadas para dados de survey. O primeiro é o pacote survey, bastante antigo e amplamente utilizado. O principal problema deste pacote é que ele usa dialéto próprio e dialoga mal com as gramáticas do dplyr e do ggplot2, principais pacotes da linguagem atualmente.
Preferiremos, assim, a alternatva, que é o pacote srvyr, relativamente novo (e potencialmente instável). srvyr é praticamente um envelopamento (‘wraper’) do pacote survey para que se possa integrar a análise de surveys aos pacotes do tidyverse sem muito esforço. Nosso principal objeto será mostrar como é possível trabalhar com dados da PNAD Contínua sem sair da gramática do dplyr e, portanto, aproveitando o que aprendemos anteriormente no curso para análise da principal pesquisa regular sobre a sociedade brasileira.
Recomendo a leitura posterior da vinheta do autor de srvyr que compara os pacotes: https://cran.r-project.org/web/packages/srvyr/vignettes/srvyr-vs-survey.html
Antes de avançar, por favor, instale ambos pacotes e carregue-os. Carregue também o tidyverse:
install.packages('survey')
install.packages('srvyr')
library(tidyverse)
## ── Attaching packages ─────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.2 ✓ purrr 0.3.4
## ✓ tibble 3.0.3 ✓ dplyr 1.0.1
## ✓ tidyr 1.1.1 ✓ stringr 1.4.0
## ✓ readr 1.3.1 ✓ forcats 0.5.0
## ── Conflicts ────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
library(survey)
## Loading required package: grid
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
## Loading required package: survival
##
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
##
## dotchart
library(srvyr)
##
## Attaching package: 'srvyr'
## The following object is masked from 'package:stats':
##
## filter
Sugiro que a leitura deste tutorial seja acompanhada da leitura posterior do material Análise de microdados da PNAD Contínua, criado por Douglas Braga, pesquisador do IBGE. O texto apresenta o pacote PNADcIBGE, que carrega diretamente do IBGE os dados da PNAD Contínua e os prepara para análise com o pacote survey.
Neste tutorial, utilizaremos funções e códigos redundantes ao do material de apresentação do pacote PNADcIBGE. Nosso objetivo, no entanto, será integrar o pacote PNADcIBGE com srvyr, ausente no texto mencionado, para trabalharmos a PNAD Contínua com as gramáticas do dplyr e ggplot2.
Antes de avançar, por favor, instale o pacote PNADcIBGE.
install.packages('PNADcIBGE')
library(PNADcIBGE)
O pacote PNADcIBGE é uma tremenda mão na roda: sua principal função é get_pnadc, que carrega diretamente do IBGE os dados da PNAD Contínua. Os principais argumentos da função são o ano (‘year’) e o trimestre (‘quarter’) desejados. No tutorial, vamos trabalhar com o 1o trimestre de 2020. Tenha paciência, pois pode levar um pouco de tempo para o download e abertura de dados.
pnad_srv <- get_pnadc(year = 2020,
quarter = 1)
Vamos examinar a classe desse objeto:
class(pnad_srv)
## [1] "survey.design2" "survey.design"
Os dados carregados não são um data frame, como esperaríamos. A função get_pnadc carrega o conjunto de dados e já o transforma em um objeto das classes “survey.design2” e “survey.design”. Tais classes são parte do pacote survey e são criadas com o uso das funções svydesign e postStratify. O objetivo destas funções é transformar data frames em objetos que contenham peso, estrato, identifiquem a unidade de ponderação e quaisquer outros aspectos do desenho da amostra necessários para a produção de estatística.
get_pnadc entrega, pois, um objeto pronto para a análise com o pacote survey, tal como é feito no texto que exemplifica o uso do pacote PNADcIBGE.
E se quisermos abrir a PNAD Contínua como um data frame com a função get_pnadc, é possível? Sim. Vamos repetir o processo e criar um data frame. Basta alterarmos o
pnad_df <- get_pnadc(year = 2020,
quarter = 1,
design = FALSE)
class(pnad_df)
## [1] "tbl_df" "tbl" "data.frame"
Veja que ‘pnad_df’ é um data frame, tal como vimos ao longo do curso. get_pnadc não gerou um objeto pronto para análise com o pacote survey como anteriormente.
Aproveite e utilize glimpse para examinar como as variáveis são importadas. Note que a maioria já é importada como factor e com os devidos rótulos de valores, outro incrível favor que a função get_pnadc nos faz.
glimpse(pnad_df)
## Rows: 487,937
## Columns: 219
## $ Ano <chr> "2020", "2020", "2020", "2020", "2020", "2020", "2020", "20…
## $ Trimestre <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",…
## $ UF <fct> Acre, Acre, Acre, Acre, Acre, Acre, Acre, Acre, Acre, Acre,…
## $ Capital <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ RM_RIDE <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ UPA <chr> "120000028", "120000028", "120000028", "120000028", "120000…
## $ Estrato <chr> "1250020", "1250020", "1250020", "1250020", "1250020", "125…
## $ V1008 <chr> "01", "01", "01", "01", "01", "01", "02", "02", "02", "02",…
## $ V1014 <chr> "08", "08", "08", "08", "08", "08", "08", "08", "08", "08",…
## $ V1016 <chr> "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",…
## $ V1022 <fct> Rural, Rural, Rural, Rural, Rural, Rural, Rural, Rural, Rur…
## $ V1023 <fct> "Resto da UF (Unidade da Federação, excluindo a região met…
## $ V1027 <dbl> 59.37776, 59.37776, 59.37776, 59.37776, 59.37776, 59.37776,…
## $ V1028 <dbl> 75.24831, 75.24831, 75.24831, 75.24831, 75.24831, 75.24831,…
## $ V1029 <dbl> 462039, 462039, 462039, 462039, 462039, 462039, 462039, 462…
## $ posest <chr> "124", "124", "124", "124", "124", "124", "124", "124", "12…
## $ V2001 <dbl> 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 3, 3, 3,…
## $ V2003 <chr> "01", "02", "03", "04", "05", "06", "01", "02", "03", "04",…
## $ V2005 <fct> Pessoa responsável pelo domicílio, Cônjuge ou companheiro(a…
## $ V2007 <fct> Homem, Mulher, Mulher, Mulher, Homem, Mulher, Homem, Mulher…
## $ V2008 <chr> "13", "12", "12", "11", "13", "31", "26", "19", "08", "11",…
## $ V20081 <chr> "02", "07", "12", "02", "06", "03", "02", "03", "07", "05",…
## $ V20082 <chr> "1974", "1976", "1996", "2002", "2007", "2016", "1981", "19…
## $ V2009 <dbl> 46, 43, 23, 18, 12, 3, 38, 34, 20, 17, 15, 13, 11, 46, 48, …
## $ V2010 <fct> Parda, Parda, Parda, Branca, Branca, Parda, Parda, Parda, P…
## $ V3001 <fct> Sim, Sim, Sim, Sim, Sim, NA, Não, Sim, Sim, Sim, Sim, Sim, …
## $ V3002 <fct> Não, Não, Não, Sim, Sim, NA, Não, Não, Não, Sim, Sim, Sim, …
## $ V3002A <fct> NA, NA, NA, Rede privada, Rede pública, NA, NA, NA, NA, Red…
## $ V3003 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3003A <fct> NA, NA, NA, Superior - graduação, Regular do ensino fundame…
## $ V3004 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3005 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3005A <fct> NA, NA, NA, Períodos semestrais, NA, NA, NA, NA, NA, NA, NA…
## $ V3006 <fct> NA, NA, NA, Primeira (o), Sétima (o), NA, NA, NA, NA, Terce…
## $ V3006A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3007 <fct> NA, NA, NA, Não, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA…
## $ V3008 <fct> Sim, Sim, Sim, NA, NA, NA, Não, Sim, Sim, NA, NA, NA, NA, S…
## $ V3009 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3009A <fct> Regular do ensino fundamental ou do 1º grau, Regular do ens…
## $ V3010 <fct> 8 anos, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3011 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3011A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3012 <fct> Concluiu, Concluiu, Concluiu, NA, NA, NA, NA, Concluiu, Con…
## $ V3013 <fct> Sétima (o), Terceira (o), Terceira (o), NA, NA, NA, NA, Ter…
## $ V3013A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3013B <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V3014 <fct> Não, Sim, Sim, NA, NA, NA, NA, Sim, Não, NA, NA, NA, NA, Nã…
## $ V4001 <fct> Sim, Sim, Não, Não, NA, NA, Sim, Sim, Não, Não, Não, NA, NA…
## $ V4002 <fct> NA, NA, Não, Não, NA, NA, NA, NA, Não, Não, Não, NA, NA, NA…
## $ V4003 <fct> NA, NA, Não, Não, NA, NA, NA, NA, Não, Não, Não, NA, NA, NA…
## $ V4004 <fct> NA, NA, Não, Não, NA, NA, NA, NA, Não, Não, Não, NA, NA, NA…
## $ V4005 <fct> NA, NA, Não, Não, NA, NA, NA, NA, Não, Não, Não, NA, NA, NA…
## $ V4006 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4006A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4007 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4008 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40081 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40082 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40083 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4009 <fct> Um, Um, NA, NA, NA, NA, Um, Um, NA, NA, NA, NA, NA, Um, NA,…
## $ V4010 <chr> "6121", "4110", NA, NA, NA, NA, "6111", "9112", NA, NA, NA,…
## $ V4012 <fct> Conta própria, Empregado do setor público (inclusive empres…
## $ V40121 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4013 <chr> "01201", "85012", NA, NA, NA, NA, "01116", "85012", NA, NA,…
## $ V40132 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40132A <fct> "Agricultura, pecuária silvicultura, exploração florestal, …
## $ V4014 <fct> NA, Municipal, NA, NA, NA, NA, NA, Municipal, NA, NA, NA, N…
## $ V4015 <fct> Não, NA, NA, NA, NA, NA, Sim, NA, NA, NA, NA, NA, NA, Sim, …
## $ V40151 <fct> NA, NA, NA, NA, NA, NA, 1 a 5 trabalhadores não remunerados…
## $ V401511 <chr> NA, NA, NA, NA, NA, NA, "2", NA, NA, NA, NA, NA, NA, "2", N…
## $ V401512 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4016 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40161 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40162 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40163 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4017 <fct> Não, NA, NA, NA, NA, NA, Não, NA, NA, NA, NA, NA, NA, Não, …
## $ V40171 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V401711 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4018 <fct> 1 a 5 pessoas, NA, NA, NA, NA, NA, 1 a 5 pessoas, NA, NA, N…
## $ V40181 <chr> "1", NA, NA, NA, NA, NA, "3", NA, NA, NA, NA, NA, NA, "3", …
## $ V40182 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40183 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4019 <fct> Não, NA, NA, NA, NA, NA, Não, NA, NA, NA, NA, NA, NA, Não, …
## $ V4020 <fct> "Em fazenda, sítio, granja, chácara, etc.", "Em loja, escri…
## $ V4021 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4022 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4024 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4025 <fct> NA, Não, NA, NA, NA, NA, NA, Não, NA, NA, NA, NA, NA, NA, N…
## $ V4026 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4027 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4028 <fct> NA, Sim, NA, NA, NA, NA, NA, Sim, NA, NA, NA, NA, NA, NA, N…
## $ V4029 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4032 <fct> Não, NA, NA, NA, NA, NA, Não, NA, NA, NA, NA, NA, NA, Não, …
## $ V4033 <fct> Indica se o quesito foi respondido, Indica se o quesito foi…
## $ V40331 <fct> Em dinheiro, Em dinheiro, NA, NA, NA, NA, Em dinheiro, Em d…
## $ V403311 <fct> "[2SM]+1 a [3SM]", "[0,5SM]+1 a [1SM]", NA, NA, NA, NA, "1 …
## $ V403312 <dbl> 3000, 1045, NA, NA, NA, NA, 150, 1045, NA, NA, NA, NA, NA, …
## $ V40332 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V403321 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V403322 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40333 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V403331 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4034 <fct> Indica se o quesito foi respondido, Indica se o quesito foi…
## $ V40341 <fct> Em dinheiro, Em dinheiro, NA, NA, NA, NA, Em dinheiro, Em d…
## $ V403411 <fct> "[2SM]+1 a [3SM]", "[1SM]+1 a [2SM]", NA, NA, NA, NA, "1 a …
## $ V403412 <dbl> 3000, 1045, NA, NA, NA, NA, 150, 1045, NA, NA, NA, NA, NA, …
## $ V40342 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V403421 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V403422 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4039 <dbl> 25, 40, NA, NA, NA, NA, 30, 20, NA, NA, NA, NA, NA, 25, NA,…
## $ V4039C <dbl> 25, 40, NA, NA, NA, NA, 30, 20, NA, NA, NA, NA, NA, 25, NA,…
## $ V4040 <fct> 2 anos ou mais, 2 anos ou mais, NA, NA, NA, NA, 2 anos ou m…
## $ V40401 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40402 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40403 <dbl> 10, 12, NA, NA, NA, NA, 10, 4, NA, NA, NA, NA, NA, 12, NA, …
## $ V4041 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4043 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40431 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4044 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4045 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4046 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4047 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4048 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4049 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4050 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40501 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405011 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405012 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40502 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405021 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405022 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40503 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405031 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4051 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40511 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405111 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405112 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40512 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405121 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405122 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4056 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4056C <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4057 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4058 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40581 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405811 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405812 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40582 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405821 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405822 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40583 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405831 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40584 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4059 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40591 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405911 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405912 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40592 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405921 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V405922 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4062 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4062C <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4063 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4063A <fct> Não, Não, NA, NA, NA, NA, Não, Não, NA, NA, NA, NA, NA, Não…
## $ V4064 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4064A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4071 <fct> NA, NA, Não, Não, NA, NA, NA, NA, Não, Não, Não, NA, NA, NA…
## $ V4072 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4072A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4073 <fct> NA, NA, Não, Não, NA, NA, NA, NA, Sim, Não, Não, NA, NA, NA…
## $ V4074 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4074A <fct> NA, NA, NA, NA, NA, NA, NA, NA, Não havia trabalho na local…
## $ V4075A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4075A1 <chr> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4076 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40761 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40762 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V40763 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4077 <fct> NA, NA, NA, NA, NA, NA, NA, NA, Sim, NA, NA, NA, NA, NA, NA…
## $ V4078 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ V4078A <fct> NA, NA, "Tinha que cuidar dos afazeres domésticos, do(s) fi…
## $ V4082 <fct> NA, NA, Não, Não, NA, NA, NA, NA, Não, Não, Não, NA, NA, NA…
## $ VD2002 <fct> Pessoa responsável, Cônjuge ou companheiro(a), Filho(a), Fi…
## $ VD2003 <dbl> 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 3, 3, 3,…
## $ VD2004 <fct> Estendida, Estendida, Estendida, Estendida, Estendida, Este…
## $ VD3004 <fct> Fundamental incompleto ou equivalente, Médio completo ou eq…
## $ VD3005 <fct> 8 anos de estudo, 12 anos de estudo, 12 anos de estudo, 12 …
## $ VD3006 <fct> 5 a 8 anos de estudo, 12 a 15 anos de estudo, 12 a 15 anos …
## $ VD4001 <fct> Pessoas na força de trabalho, Pessoas na força de trabalho,…
## $ VD4002 <fct> Pessoas ocupadas, Pessoas ocupadas, NA, NA, NA, NA, Pessoas…
## $ VD4003 <fct> NA, NA, Pessoas fora da força de trabalho e fora da força d…
## $ VD4004 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ VD4004A <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ VD4005 <fct> NA, NA, NA, NA, NA, NA, NA, NA, Pessoas desalentadas, NA, N…
## $ VD4007 <fct> Conta própria, Empregado (inclusive trabalhador doméstico),…
## $ VD4008 <fct> Conta-própria, Empregado no setor público (inclusive servid…
## $ VD4009 <fct> Conta-própria, Militar e servidor estatutário, NA, NA, NA, …
## $ VD4010 <fct> "Agricultura, pecuária, produção florestal, pesca e aquicul…
## $ VD4011 <fct> "Trabalhadores qualificados da agropecuária, florestais, da…
## $ VD4012 <fct> Não contribuinte, Contribuinte, NA, NA, NA, NA, Não contrib…
## $ VD4013 <fct> 15 a 39 horas, 40 a 44 horas, NA, NA, NA, NA, 15 a 39 horas…
## $ VD4014 <fct> 15 a 39 horas, 40 a 44 horas, NA, NA, NA, NA, 15 a 39 horas…
## $ VD4015 <fct> "Remuneração em dinheiro, produtos ou mercadorias no trabal…
## $ VD4016 <dbl> 3000, 1045, NA, NA, NA, NA, 150, 1045, NA, NA, NA, NA, NA, …
## $ VD4017 <dbl> 3000, 1045, NA, NA, NA, NA, 150, 1045, NA, NA, NA, NA, NA, …
## $ VD4018 <fct> "Remuneração em dinheiro, produtos ou mercadorias em pelo m…
## $ VD4019 <dbl> 3000, 1045, NA, NA, NA, NA, 150, 1045, NA, NA, NA, NA, NA, …
## $ VD4020 <dbl> 3000, 1045, NA, NA, NA, NA, 150, 1045, NA, NA, NA, NA, NA, …
## $ VD4023 <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ VD4030 <fct> NA, NA, "Tinha que cuidar dos afazeres domésticos, do(s) fi…
## $ VD4031 <dbl> 25, 40, NA, NA, NA, NA, 30, 20, NA, NA, NA, NA, NA, 25, NA,…
## $ VD4032 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ VD4033 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ VD4034 <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,…
## $ VD4035 <dbl> 25, 40, NA, NA, NA, NA, 30, 20, NA, NA, NA, NA, NA, 25, NA,…
## $ VD4036 <fct> 15 a 39 horas, 40 a 44 horas, NA, NA, NA, NA, 15 a 39 horas…
## $ VD4037 <fct> 15 a 39 horas, 40 a 44 horas, NA, NA, NA, NA, 15 a 39 horas…
## $ Habitual <dbl> 0.9951229, 0.9951229, 0.9951229, 0.9951229, 0.9951229, 0.99…
## $ Efetivo <dbl> 0.9960784, 0.9960784, 0.9960784, 0.9960784, 0.9960784, 0.99…
Pode ser conveniente carregar os dados como data frame, fazer as transformações necessárias para a análise para, depois, transformar o resultado em um objeto de survey. Por exemplo, se quisermos restringir o número de variáveis e linhas nos dados podemos utilizar normalmente filter e select:
pnad_df
## # A tibble: 487,937 x 219
## Ano Trimestre UF Capital RM_RIDE UPA Estrato V1008 V1014 V1016 V1022
## <chr> <chr> <fct> <fct> <fct> <chr> <chr> <chr> <chr> <chr> <fct>
## 1 2020 1 Acre <NA> <NA> 1200… 1250020 01 08 1 Rural
## 2 2020 1 Acre <NA> <NA> 1200… 1250020 01 08 1 Rural
## 3 2020 1 Acre <NA> <NA> 1200… 1250020 01 08 1 Rural
## 4 2020 1 Acre <NA> <NA> 1200… 1250020 01 08 1 Rural
## 5 2020 1 Acre <NA> <NA> 1200… 1250020 01 08 1 Rural
## 6 2020 1 Acre <NA> <NA> 1200… 1250020 01 08 1 Rural
## 7 2020 1 Acre <NA> <NA> 1200… 1250020 02 08 1 Rural
## 8 2020 1 Acre <NA> <NA> 1200… 1250020 02 08 1 Rural
## 9 2020 1 Acre <NA> <NA> 1200… 1250020 02 08 1 Rural
## 10 2020 1 Acre <NA> <NA> 1200… 1250020 02 08 1 Rural
## # … with 487,927 more rows, and 208 more variables: V1023 <fct>, V1027 <dbl>,
## # V1028 <dbl>, V1029 <dbl>, posest <chr>, V2001 <dbl>, V2003 <chr>,
## # V2005 <fct>, V2007 <fct>, V2008 <chr>, V20081 <chr>, V20082 <chr>,
## # V2009 <dbl>, V2010 <fct>, V3001 <fct>, V3002 <fct>, V3002A <fct>,
## # V3003 <fct>, V3003A <fct>, V3004 <fct>, V3005 <fct>, V3005A <fct>,
## # V3006 <fct>, V3006A <fct>, V3007 <fct>, V3008 <fct>, V3009 <fct>,
## # V3009A <fct>, V3010 <fct>, V3011 <fct>, V3011A <fct>, V3012 <fct>,
## # V3013 <fct>, V3013A <fct>, V3013B <fct>, V3014 <fct>, V4001 <fct>,
## # V4002 <fct>, V4003 <fct>, V4004 <fct>, V4005 <fct>, V4006 <fct>,
## # V4006A <fct>, V4007 <fct>, V4008 <fct>, V40081 <chr>, V40082 <chr>,
## # V40083 <chr>, V4009 <fct>, V4010 <chr>, V4012 <fct>, V40121 <fct>,
## # V4013 <chr>, V40132 <fct>, V40132A <fct>, V4014 <fct>, V4015 <fct>,
## # V40151 <fct>, V401511 <chr>, V401512 <chr>, V4016 <fct>, V40161 <chr>,
## # V40162 <chr>, V40163 <chr>, V4017 <fct>, V40171 <fct>, V401711 <chr>,
## # V4018 <fct>, V40181 <chr>, V40182 <chr>, V40183 <chr>, V4019 <fct>,
## # V4020 <fct>, V4021 <fct>, V4022 <fct>, V4024 <fct>, V4025 <fct>,
## # V4026 <fct>, V4027 <fct>, V4028 <fct>, V4029 <fct>, V4032 <fct>,
## # V4033 <fct>, V40331 <fct>, V403311 <fct>, V403312 <dbl>, V40332 <fct>,
## # V403321 <fct>, V403322 <dbl>, V40333 <fct>, V403331 <fct>, V4034 <fct>,
## # V40341 <fct>, V403411 <fct>, V403412 <dbl>, V40342 <fct>, V403421 <fct>,
## # V403422 <dbl>, V4039 <dbl>, V4039C <dbl>, …
A outra facilidade do pacote PNADcIBGE é transformar um data frame com dados da PNAD Contínua em um objeto das classes “survey.design2” e “survey.design” com a função pnadc_design.
pnad_srv_2 <- pnadc_design(pnad_df)
Há alguns outros argumentos úteis na função get_pnadc. Com ‘vars’ podemos restringir as variáveis que serão carregadas (poupando espaço na memória RAM do seu computador, já que a PNAD é relativamente grande para um computador comum). Por exemplo, se quiseremos apenas as variáveis necessárias à identificação do processo amostral e também as variáveis ‘Sexo’ (V2007), ‘Condição em relação à força de trabalho’ (VD4001) e ‘Total de Rendimentos’ (VD4020), fazemos:
pnad_srv_vars <- get_pnadc(year = 2020,
quarter = 1,
vars = c('V2007',
'VD4001',
'VD4020'))
Vimos get_pnadc já importa as variáveis categóricas como factors e com os rótulos dos níveis (levels) apropriados. Se, eventualmente, você quiser que os dados sejam carregados sem os rótulos e apenas com os códigos numéricos, use ‘labels = FALSE’.
pnad_df_sem_rotulos <- get_pnadc(year = 2017,
quarter = 3,
design = FALSE,
labels = FALSE)
Vamos nos frustrar um pouco: vamos tentar usar algumas funções do dplyr na PNAD Contínua já carregada como um objeto de survey:
pnad_srv %>%
filter(V2007 == 'Feminino')
(Não dá certo e você pode cancelar se demorar demais apertando “Esc”).
Há outras maneiras de fazer seleção de linhas ao usar o pacote survey, mas são pouco intuitivas. Uma alternativa é abrir os dados como data frame, como fizemos anteriormente, e depois ‘informar’ o desenho com a função pnadc_design. A outra é utilizarmos o pacote srvyr.
O pacote srvyr trabalha com o pacote survey nos bastidores. E, por esta razão, quando criamos um objeto de survey com srvyr, ele pertence às classes “survey.design2” e “survey.design”. Mas pertence, também, a uma terceira classe “tbl_svy”, à qual podemos aplicar os métodos da gramática do dplyr.
Vamos começar transformando o nosso objeto de survey com a função as_survey_, do pacote srvyr:
pnad_srvyr <- as_survey(pnad_srv)
Note que agora há uma terceira classe no objeto, tal como queríamos. E a função filter do dplyr funciona:
pnad_mulheres_srvyr <- pnad_srvyr %>%
filter(V2007 == 'Feminino')
O novo objeto é igual ao anterior, mas inclui apenas as observações para mulheres.
As funções filter, rename, mutate e select funcionam em objetos da classe “tbl_svy”. Algumas dessas operações, em particular rename e mutate, são inviáveis em objetos de survey que não perteçam a essa classe.
Recapitulando, tomamos o resultado da importação dos dados da PNAD Contínua com get_pnadc como um objeto de survey e aplicamos a função as_survey para que possamos utilizar os verbos do dplyr normalmente.
Vamos calcular algumas estatísticas simples para comparar os pacotes. Comecemos com a variável de renda (VD4020: ‘Rendimento mensal efetivo de todos os trabalhos para pessoas de 14 anos ou mais de idade (apenas para pessoas que receberam em dinheiro, produtos ou mercadorias em qualquer trabalho)’). Note que vamos usar sempre o objeto ‘pnad_srvyr’, pois podemos aplicar nele funções de ambos pacotes.
Em dados de survey não podemos trabalhar com as funções de estatísticas descritiva padrão – mean, sd, quantile, etc. Precisaremos de funções específicas para survey. No pacote survey calculamos a média de uma variável numérica, por exemplo, da seguinte maneira:
svymean(~VD4020, pnad_srvyr, na.rm = T)
## mean SE
## VD4020 2622 35.226
Precisamos, em primeiro lugar, de uma ‘fórmula’, que identifica a variável para a qual aplicaremos a função. Dizemos ‘fórmula’, pois precisamos do símbolo ‘~’ antes de uma variável ou de uma combinação de variáveis, como veremos adiante. A seguir, inserimos o objeto de survey no qual a operação ocorrerá. Também decidimos excluir os NA que existirem.
Veja agora como fazer a mesma operação com o pacote srvyr. Utilizaremos o verbo summarise do dplyr e, dentro de summarise, a função de estatística desejada.
pnad_srvyr %>%
summarise(media_renda = survey_mean(VD4020, na.rm = T))
## # A tibble: 1 x 2
## media_renda media_renda_se
## <dbl> <dbl>
## 1 2622. 35.2
Neste primeiro momento, pode parecer que é mais trabalhoso utilizar o pacote srvyr. No entanto, rapidamente a facilidade da gramática ‘no estilo do dplyr’ supera o dialéto pouco falado do pacote survey, nem sempre em número de caracteres digitados, mas em clareza do código.
Por exemplo, para produzir a proporção por grau de instrução para homens, pardos com mais de 30 anos na PNAD-C do 1o trimestre de 2020 com o pacote survey fazemos:
svymean(~VD3004, subset(pnad_srvyr, V2007 == "Homem" & V2010 == "Parda" & V2009 > 30), na.rm = T)
## mean SE
## VD3004Sem instrução e menos de 1 ano de estudo 0.095560 0.0017
## VD3004Fundamental incompleto ou equivalente 0.409100 0.0032
## VD3004Fundamental completo ou equivalente 0.082967 0.0017
## VD3004Médio incompleto ou equivalente 0.046119 0.0014
## VD3004Médio completo ou equivalente 0.252637 0.0030
## VD3004Superior incompleto ou equivalente 0.025884 0.0010
## VD3004Superior completo 0.087734 0.0021
E com o pacote srvyr:
pnad_srvyr %>%
filter(V2007 == "Homem",
V2010 == "Parda",
V2009 > 30) %>%
group_by(VD3004) %>%
summarise(freq = survey_mean())
## # A tibble: 8 x 3
## VD3004 freq freq_se
## <fct> <dbl> <dbl>
## 1 Sem instrução e menos de 1 ano de estudo 0.0956 0.00172
## 2 Fundamental incompleto ou equivalente 0.409 0.00324
## 3 Fundamental completo ou equivalente 0.0830 0.00174
## 4 Médio incompleto ou equivalente 0.0461 0.00140
## 5 Médio completo ou equivalente 0.253 0.00298
## 6 Superior incompleto ou equivalente 0.0259 0.00102
## 7 Superior completo 0.0877 0.00211
## 8 <NA> 0 0
O código é praticamente idêntico a de uma tabela em um data frame comum (não-survey), salvo pelo uso de survey_mean no lugar comumente ocupado por mean. Outra vantagem importante de srvyr em relação a survey é que os resultados de srvyr são também data frames, e, portanto, podem ser usados na sequência com qualquer função de dplyr e ggplot2.
Um terceiro exemplo da diferença entre as gramáticas: uma tabela de duas entradas de sexo e grau de instrução. Primeiro, com survey:
svyby(~V2007, ~VD3004, pnad_srvyr, svymean, na.rm = T)
## VD3004
## Sem instrução e menos de 1 ano de estudo Sem instrução e menos de 1 ano de estudo
## Fundamental incompleto ou equivalente Fundamental incompleto ou equivalente
## Fundamental completo ou equivalente Fundamental completo ou equivalente
## Médio incompleto ou equivalente Médio incompleto ou equivalente
## Médio completo ou equivalente Médio completo ou equivalente
## Superior incompleto ou equivalente Superior incompleto ou equivalente
## Superior completo Superior completo
## V2007Homem V2007Mulher se.V2007Homem
## Sem instrução e menos de 1 ano de estudo 0.4959672 0.5040328 0.003738813
## Fundamental incompleto ou equivalente 0.5058556 0.4941444 0.001541429
## Fundamental completo ou equivalente 0.5022272 0.4977728 0.003855575
## Médio incompleto ou equivalente 0.5014124 0.4985876 0.004118506
## Médio completo ou equivalente 0.4647508 0.5352492 0.001908767
## Superior incompleto ou equivalente 0.4606548 0.5393452 0.005857942
## Superior completo 0.4053001 0.5946999 0.002721500
## se.V2007Mulher
## Sem instrução e menos de 1 ano de estudo 0.003738813
## Fundamental incompleto ou equivalente 0.001541429
## Fundamental completo ou equivalente 0.003855575
## Médio incompleto ou equivalente 0.004118506
## Médio completo ou equivalente 0.001908767
## Superior incompleto ou equivalente 0.005857942
## Superior completo 0.002721500
A seguir, com srvyr:
pnad_srvyr %>%
group_by(V2007, VD3004) %>%
summarise(freq = survey_mean())
## # A tibble: 16 x 4
## # Groups: V2007 [2]
## V2007 VD3004 freq freq_se
## <fct> <fct> <dbl> <dbl>
## 1 Homem Sem instrução e menos de 1 ano de estudo 0.0681 0.000816
## 2 Homem Fundamental incompleto ou equivalente 0.349 0.00178
## 3 Homem Fundamental completo ou equivalente 0.0765 0.000915
## 4 Homem Médio incompleto ou equivalente 0.0659 0.000825
## 5 Homem Médio completo ou equivalente 0.228 0.00150
## 6 Homem Superior incompleto ou equivalente 0.0429 0.000773
## 7 Homem Superior completo 0.105 0.00175
## 8 Homem <NA> 0.0647 0.000800
## 9 Mulher Sem instrução e menos de 1 ano de estudo 0.0641 0.000741
## 10 Mulher Fundamental incompleto ou equivalente 0.315 0.00161
## 11 Mulher Fundamental completo ou equivalente 0.0702 0.000788
## 12 Mulher Médio incompleto ou equivalente 0.0606 0.000743
## 13 Mulher Médio completo ou equivalente 0.243 0.00142
## 14 Mulher Superior incompleto ou equivalente 0.0465 0.000780
## 15 Mulher Superior completo 0.142 0.00180
## 16 Mulher <NA> 0.0576 0.000751
O output em formato long, padrão do dplyr, torna sua manipulação posterior e a confecção de gráficos mais simples.
O uso do pacote survey para a PNAD Contínua está bem descrito na apresentação do pacote PNADcIBGE. Recomendo a leitura. Vamos agora prosseguir apenas com o pacote srvyr para aprendermos sobre o básico de análise de dados de survey.
No código abaixo podemos inferir rapidamente o uso das principais funções de sumário estatístico do pacote srvyr em um variável numérica, como renda mensal de todos os trabalhos (todas elas ‘wrapers’ de funções análogas do pacote survey):
pnad_srvyr %>%
summarise(total = survey_total(VD4020, na.rm = T))
## # A tibble: 1 x 2
## total total_se
## <dbl> <dbl>
## 1 236525630345. 3326261348.
pnad_srvyr %>%
summarise(media = survey_mean(VD4020, na.rm = T))
## # A tibble: 1 x 2
## media media_se
## <dbl> <dbl>
## 1 2622. 35.2
pnad_srvyr %>%
summarise(mediana = survey_median(VD4020, na.rm = T))
## # A tibble: 1 x 2
## mediana mediana_se
## <dbl> <dbl>
## 1 1500 0
pnad_srvyr %>%
summarise(q10 = survey_quantile(VD4020, quantiles = 0.1, na.rm = T))
## # A tibble: 1 x 2
## q10_q10 q10_q10_se
## <dbl> <dbl>
## 1 400 0
pnad_srvyr %>%
summarise(q90 = survey_quantile(VD4020, quantiles = 0.9, na.rm = T))
## # A tibble: 1 x 2
## q90_q90 q90_q90_se
## <dbl> <dbl>
## 1 5000 0
pnad_srvyr %>%
summarise(var = survey_var(VD4020, na.rm = T))
## # A tibble: 1 x 2
## var var_se
## <dbl> <dbl>
## 1 19342514. 1783555.
pnad_srvyr %>%
summarise(sd = survey_sd(VD4020, na.rm = T))
## # A tibble: 1 x 1
## sd
## <dbl>
## 1 4398.
Seu uso para variáveis categóricas é semelhante. Porém, precisamos do auxílio da dupla de verbos group_by e summarise. Vamos ver a contagem e a frequência relativa dos grupos de sexo:
pnad_srvyr %>%
group_by(V2007) %>%
summarise(n = survey_total())
## # A tibble: 2 x 3
## V2007 n n_se
## <fct> <dbl> <dbl>
## 1 Homem 101163330. 174611.
## 2 Mulher 109311090. 174611.
pnad_srvyr %>%
group_by(V2007) %>%
summarise(freq = survey_mean())
## # A tibble: 2 x 3
## V2007 freq freq_se
## <fct> <dbl> <dbl>
## 1 Homem 0.481 0.000830
## 2 Mulher 0.519 0.000830
Seja com survey_mean ou survey_total, é possível alterar o resultado da função, que por default traz o desvio padrão, para intervalo de confiança de 95% com o argumento ‘vartype’:
pnad_srvyr %>%
group_by(V2007) %>%
summarise(freq = survey_mean(vartype = "ci"))
## # A tibble: 2 x 4
## V2007 freq freq_low freq_upp
## <fct> <dbl> <dbl> <dbl>
## 1 Homem 0.481 0.479 0.482
## 2 Mulher 0.519 0.518 0.521
Podemos adicionar rapidamente outra variávei para fazer o cruzamento com a variável sexo:
pnad_srvyr %>%
group_by(V2007, V2010) %>%
summarise(freq = survey_mean())
## # A tibble: 12 x 4
## # Groups: V2007 [2]
## V2007 V2010 freq freq_se
## <fct> <fct> <dbl> <dbl>
## 1 Homem Branca 0.418 0.00239
## 2 Homem Preta 0.0933 0.00131
## 3 Homem Amarela 0.00609 0.000479
## 4 Homem Parda 0.480 0.00225
## 5 Homem Indígena 0.00322 0.000197
## 6 Homem Ignorado 0.000191 0.0000514
## 7 Mulher Branca 0.436 0.00239
## 8 Mulher Preta 0.0906 0.00135
## 9 Mulher Amarela 0.00624 0.000390
## 10 Mulher Parda 0.464 0.00217
## 11 Mulher Indígena 0.00332 0.000203
## 12 Mulher Ignorado 0.000146 0.0000448
Os verbos do dplyr estão à nossa disposição para retrabalharmos os dados. Refazendo a tabela só para homens:
pnad_srvyr %>%
filter(V2007 == 'Homem') %>%
group_by(V2010) %>%
summarise(n = survey_mean())
## # A tibble: 6 x 3
## V2010 n n_se
## <fct> <dbl> <dbl>
## 1 Branca 0.418 0.00239
## 2 Preta 0.0933 0.00131
## 3 Amarela 0.00609 0.000479
## 4 Parda 0.480 0.00225
## 5 Indígena 0.00322 0.000197
## 6 Ignorado 0.000191 0.0000514
Ou recodificando raça/cor:
pnad_srvyr %>%
mutate(ppi = case_when(
V2010 == 'Preta' ~ 'PPI',
V2010 == 'Parda' ~ 'PPI',
V2010 == 'Indígena' ~ 'PPI',
T ~ 'Não PPI'
)) %>%
group_by(V2007, ppi) %>%
summarise(n = survey_mean())
## # A tibble: 4 x 4
## # Groups: V2007 [2]
## V2007 ppi n n_se
## <fct> <chr> <dbl> <dbl>
## 1 Homem Não PPI 0.424 0.00245
## 2 Homem PPI 0.576 0.00245
## 3 Mulher Não PPI 0.442 0.00242
## 4 Mulher PPI 0.558 0.00242
Pivotando a tabela com pivot_wider
pnad_srvyr %>%
mutate(ppi = case_when(
V2010 == 'Preta' ~ 'PPI',
V2010 == 'Parda' ~ 'PPI',
V2010 == 'Indígena' ~ 'PPI',
T ~ 'Não PPI'
)) %>%
group_by(V2007, ppi) %>%
summarise(freq = survey_mean()) %>%
select(-freq_se) %>%
pivot_wider(names_from = ppi,
values_from = freq)
## # A tibble: 2 x 3
## # Groups: V2007 [2]
## V2007 `Não PPI` PPI
## <fct> <dbl> <dbl>
## 1 Homem 0.424 0.576
## 2 Mulher 0.442 0.558
Finalmente, vamos trabalhar simultaneamente com uma ou mais variáveos categóricas e o sumário estatística de uma variável numérica por categoria. A variável a ser sumarizada deve ir dentro das funções com sufixo ‘survey_’. Por exemplo, renda mensal de trabalho por sexo:
pnad_srvyr %>%
group_by(V2007) %>%
summarise(media_renda = survey_mean(VD4020, na.rm = T))
## # A tibble: 2 x 3
## V2007 media_renda media_renda_se
## <fct> <dbl> <dbl>
## 1 Homem 2888. 46.8
## 2 Mulher 2274. 27.5
Ou por sexo e raça/cor:
pnad_srvyr %>%
group_by(V2007, V2010) %>%
summarise(media_renda = survey_mean(VD4020, na.rm = T))
## # A tibble: 12 x 4
## # Groups: V2007 [2]
## V2007 V2010 media_renda media_renda_se
## <fct> <fct> <dbl> <dbl>
## 1 Homem Branca 3866. 86.5
## 2 Homem Preta 2114. 40.3
## 3 Homem Amarela 4872. 668.
## 4 Homem Parda 2103. 26.1
## 5 Homem Indígena 2229. 227.
## 6 Homem Ignorado 3105. 1478.
## 7 Mulher Branca 2900. 48.4
## 8 Mulher Preta 1722. 37.7
## 9 Mulher Amarela 3921. 407.
## 10 Mulher Parda 1672. 16.9
## 11 Mulher Indígena 1737. 113.
## 12 Mulher Ignorado 1675. 497.
É possível quase esquecer que estamos trabalhando com dados de survey quando usamos o pacote srvyr. Se você assimilou bem o uso do dplyr, a construção de tabelas com este pacote fica bastante mais fácil.