Microdados Pnad Continua - Educação

Preparação

# Limpando arquivos armazenados na memoria 
#rm(list=ls(all=TRUE)) 
# Definindo limite de memoria para compilacao do programa 
aviso <- getOption("warn") 
options(warn=-1) 
memory.limit(size=20000) 
## [1] Inf
options(warn=aviso) 
rm(aviso) 
#Definindo opcao de codificacao dos caracteres e linguagem 
aviso <- getOption("warn") 
options(warn=-1) 
options(encoding="latin1") 
options(warn=aviso) 
rm(aviso) 
# Definindo opcao de exibicao de numeros sem exponencial 
aviso <- getOption("warn") 
options(warn=-1) 
options(scipen=999) 
options(warn=aviso) 
rm(aviso) 
#Definindo opcao derepositorio para instalacao dos pacotes necessarios 
aviso <- getOption("warn") 
options (warn=-1) 
options (repos=structure (c(CRAN="https://cran.r-project.org/"))) 
options (warn=aviso) 
rm(aviso) 
#Definindo area de trabalho 
# caminho <- getwd() 
# setwd(caminho)

Carregamento de pacotes

pacman::p_load(PNADcIBGE,survey)
help(package="PNADcIBGE")

Seleção de variáveis

Características Gerais dos Moradores

V2007-SEXO

V2010-COR

V2005-CONDIÇÃO NO DOMICILIO

V2009-IDADE

Características de educação para os moradores de 5 anos ou mais de idade

V3001-SABE LER E ESCREVER

V3002-FREQUENTA ESCOLA

V3003A-QUAL CURSO FREQUENTA

V3009A-QUAL CURSO MAIS ELEVADO QUE FREQUENTOU

V3033A-MOTIVO QUE NÃO FREQUENTA ESCOLA OU CRECHE

V3034B-MOTIVO DE TER DEIXADO DE FREQUENTAR ESCOLA OU CURSO SUP MOTIVO DE NUNCA

V3034C-ATUALMENTE MOTIVO DE NÃO FREQUENTAR

Variáveis Derivadas

VD3004-NÍVEL MAIS ELEVADO DE INSTRUÇÃO

VD3005-ANOS DE ESTUDO

VD4001-Condição emrelação à força de trabalho na semana dereferência para pessoas de 14 anos ou mais de idade

VD4002- Condição de ocupação na semana dereferência para pessoas de 14 anos ou mais de idade

VD4019-Rendimento mensal habitual de todos os trabalhos para pessoas de 14 anos ou mais de idade (apenas para pessoas quereceberam em dinheiro, produtos ou mercadorias em qualquer trabalho)

VD4020-Rendimento mensal efetivo de todos os trabalhos para pessoas de 14 anos ou mais de idade (apenas para pessoas quereceberam em dinheiro, produtos ou mercadorias em qualquer trabalho)

VD4031-Horas habitualmente trabalhadas por semana em todos os trabalhos para pessoas de 14 anos ou mais de idade

Criando vetor de variáveis

variaveis = c("V2007", "V2010", "V2005", "VD3004", 
              "V3001", "V3002", "V3003A", "VD3005",
              "V3009A", "V3033A", "V2009", "V3034B", "V3034C",
              "VD4001","VD4002","VD4019","VD4020","VD4031")

Coleta de dados trimestrais

Usando a função get_pnadc

microdados_pnad_educ_23 = get_pnadc(year = 2023,
                            topic = 2, #numero da pesquisa no trimestre
                            labels = T,
                            deflator = T,
                            design = T, #vem com desenho amostral o que permite 
                                        #fazer inferências estatisticas da amostra 
                                        #para população
                            vars = variaveis)
## Deflator year or period was not provided, so deflator year was set to 2023 and period was set to 2.

Algumas análises

1 - Obtendo o total da população genero eraça e a proporção de genero

#Total
totalsexoraca = svytotal(x=~V2007+V2010,
                         design = microdados_pnad_educ_23,
                         na.rm = T)
totalsexoraca
##                   total          SE
## V2007Homem    105256054      0.0597
## V2007Mulher   110152130      0.0501
## V2010Branca    92151590 433037.1718
## V2010Preta     22282980 267773.8572
## V2010Amarela    1564002  75188.3385
## V2010Parda     98472156 356758.1438
## V2010Indígena    912171  43699.0111
## V2010Ignorado     25284   6127.5666
#Proporção
proptotal = svymean(x=~V2007+V2010, design = microdados_pnad_educ_23, na.rm = T)
proptotal
##                     mean     SE
## V2007Homem    0.48863535 0.0000
## V2007Mulher   0.51136465 0.0000
## V2010Branca   0.42779986 0.0020
## V2010Preta    0.10344538 0.0012
## V2010Amarela  0.00726064 0.0003
## V2010Parda    0.45714213 0.0017
## V2010Indígena 0.00423462 0.0002
## V2010Ignorado 0.00011738 0.0000

2 - Obtendo o total e a media darenda mensal habitual

#Total
totalrenda = svytotal(x=~VD4019,
                         design = microdados_pnad_educ_23,
                         na.rm = T)
totalrenda
##               total         SE
## VD4019 284148251879 3080839617
#Renda média
rendamedia = svymean(x=~VD4019, design = microdados_pnad_educ_23, na.rm = T)
rendamedia
##          mean     SE
## VD4019 2921.3 29.142

3 - Obtendo a proporção da população por nível de instrução

nivel_instrucao = svymean(x=~VD3004,
                         design = microdados_pnad_educ_23,
                         na.rm = T)
nivel_instrucao
##                                                    mean     SE
## VD3004Sem instrução e menos de 1 ano de estudo 0.076212 0.0005
## VD3004Fundamental incompleto ou equivalente    0.318335 0.0014
## VD3004Fundamental completo ou equivalente      0.074140 0.0007
## VD3004Médio incompleto ou equivalente          0.071606 0.0006
## VD3004Médio completo ou equivalente            0.270233 0.0012
## VD3004Superior incompleto ou equivalente       0.046119 0.0005
## VD3004Superior completo                        0.143354 0.0017

4 - Obtendo a proporção de sexo por nível de instrução

sexo_nivel_instrucao = svyby(formula =~V2007,
                             by=~VD3004,
                         design = microdados_pnad_educ_23,
                         FUN = svymean,
                         keep.names = F,
                         na.rm = T)
sexo_nivel_instrucao
##                                     VD3004 V2007Homem V2007Mulher         se1
## 1 Sem instrução e menos de 1 ano de estudo  0.5002711   0.4997289 0.002934629
## 2    Fundamental incompleto ou equivalente  0.5088698   0.4911302 0.001277130
## 3      Fundamental completo ou equivalente  0.5045975   0.4954025 0.003548659
## 4          Médio incompleto ou equivalente  0.5100970   0.4899030 0.003693827
## 5            Médio completo ou equivalente  0.4838366   0.5161634 0.001612140
## 6       Superior incompleto ou equivalente  0.4742973   0.5257027 0.004761326
## 7                        Superior completo  0.4205511   0.5794489 0.002445082
##           se2
## 1 0.002934629
## 2 0.001277130
## 3 0.003548659
## 4 0.003693827
## 5 0.001612140
## 6 0.004761326
## 7 0.002445082

5 - Obtendo a média darenda mensal, habitual por nível de instrução

renda_nivel_instrucao = svyby(formula =~VD4019,
                             by=~VD3004,
                         design = microdados_pnad_educ_23,
                         FUN = svymean,
                         keep.names = F,
                         na.rm = T)
renda_nivel_instrucao
##                                     VD3004   VD4019       se
## 1 Sem instrução e menos de 1 ano de estudo 1395.721 35.28191
## 2    Fundamental incompleto ou equivalente 1652.439 26.41562
## 3      Fundamental completo ou equivalente 1866.973 29.36350
## 4          Médio incompleto ou equivalente 1716.167 19.26389
## 5            Médio completo ou equivalente 2171.925 14.40884
## 6       Superior incompleto ou equivalente 2792.757 58.32093
## 7                        Superior completo 5891.116 80.48119

6 - Obtendo a proporção de cor ouraça por nível de instrução

prop_cor_nivel_instrucao = svyby(formula =~V2010,
                             by=~VD3004,
                         design = microdados_pnad_educ_23,
                         FUN = svymean,
                         keep.names = F,
                         na.rm = T)
prop_cor_nivel_instrucao 
##                                     VD3004 V2010Branca V2010Preta V2010Amarela
## 1 Sem instrução e menos de 1 ano de estudo   0.3429059 0.11402957  0.004574698
## 2    Fundamental incompleto ou equivalente   0.3764903 0.10676941  0.005065889
## 3      Fundamental completo ou equivalente   0.4062251 0.10733725  0.005919760
## 4          Médio incompleto ou equivalente   0.3567205 0.11795665  0.006031122
## 5            Médio completo ou equivalente   0.4133990 0.11719058  0.007394352
## 6       Superior incompleto ou equivalente   0.5166728 0.10110421  0.010059770
## 7                        Superior completo   0.6172597 0.07584962  0.015510635
##   V2010Parda V2010Indígena V2010Ignorado         se1         se2          se3
## 1  0.5320850   0.006233396 0.00017138543 0.004139456 0.002526466 0.0005158516
## 2  0.5068220   0.004753453 0.00009899742 0.002359993 0.001521719 0.0003387152
## 3  0.4756814   0.004784470 0.00005195813 0.004246708 0.002637721 0.0007025508
## 4  0.5143009   0.004966592 0.00002429002 0.004183412 0.002953419 0.0006353354
## 5  0.4580847   0.003876039 0.00005532851 0.002588855 0.001937407 0.0005147517
## 6  0.3678911   0.003953757 0.00031837398 0.005938612 0.003151284 0.0012713423
## 7  0.2889162   0.002172956 0.00029096299 0.004434263 0.002062908 0.0011849076
##           se4          se5           se6
## 1 0.004100990 0.0005277242 0.00011784036
## 2 0.002208491 0.0002893931 0.00004262507
## 3 0.004126368 0.0005477464 0.00005159778
## 4 0.004033328 0.0005134581 0.00002481120
## 5 0.002503447 0.0002575056 0.00002410021
## 6 0.005623262 0.0005181981 0.00017404213
## 7 0.003995669 0.0002439910 0.00010312349

7 - Obtendo a proporção de nível de instrução por de cor ouraça

prop_nivel_instrucao_por_cor = svyby(formula =~VD3004,
                             by=~V2010,
                         design = microdados_pnad_educ_23,
                         FUN = svymean,
                         keep.names = F,
                         na.rm = T)
prop_nivel_instrucao_por_cor 
##      V2010 VD3004Sem instrução e menos de 1 ano de estudo
## 1   Branca                                     0.06139349
## 2    Preta                                     0.08176289
## 3  Amarela                                     0.04637683
## 4    Parda                                     0.08889744
## 5 Indígena                                     0.11204540
## 6 Ignorado                                     0.10749204
##   VD3004Fundamental incompleto ou equivalente
## 1                                   0.2815541
## 2                                   0.3197764
## 3                                   0.2145138
## 4                                   0.3536914
## 5                                   0.3568941
## 6                                   0.2593505
##   VD3004Fundamental completo ou equivalente
## 1                                0.07075268
## 2                                0.07487176
## 3                                0.05838101
## 4                                0.07731313
## 5                                0.08366272
## 6                                0.03170186
##   VD3004Médio incompleto ou equivalente VD3004Médio completo ou equivalente
## 1                            0.06000720                           0.2624410
## 2                            0.07946744                           0.2979520
## 3                            0.05744667                           0.2657992
## 4                            0.08073346                           0.2713744
## 5                            0.08387950                           0.2470429
## 6                            0.01431391                           0.1230457
##   VD3004Superior incompleto ou equivalente VD3004Superior completo          se1
## 1                               0.05597762              0.20787393 0.0008096573
## 2                               0.04386917              0.10230031 0.0016434829
## 3                               0.06171322              0.29576928 0.0049147122
## 4                               0.03719452              0.09079562 0.0008243519
## 5                               0.04300617              0.07346916 0.0078538979
## 6                               0.12083464              0.34326140 0.0679094887
##           se2          se3          se4         se5          se6         se7
## 1 0.002036998 0.0010758752 0.0008156448 0.001865403 0.0008626722 0.002829419
## 2 0.003372431 0.0017066257 0.0020217360 0.003464833 0.0014025675 0.002589911
## 3 0.010736689 0.0063905107 0.0058164802 0.014694919 0.0071823106 0.015301508
## 4 0.001682083 0.0008822991 0.0008237066 0.001506214 0.0007007424 0.001342686
## 5 0.013636725 0.0081653755 0.0078359048 0.012488612 0.0055972291 0.007534901
## 6 0.077941704 0.0321427306 0.0171195499 0.051843157 0.0644652179 0.085676033

8 - Obtendo a taxa de desocupação por nivel de instrução

desocupacao_nivel_instrucao = svyby(formula =~VD4002 == "Pessoas desocupadas",
                                    denominator =~VD4001 == "Pessoas na força de trabalho",
                             by=~VD3004,
                         design = microdados_pnad_educ_23,
                         FUN = svyratio,
                         keep.names = F,
                         na.rm = T)
desocupacao_nivel_instrucao
##                                     VD3004
## 1 Sem instrução e menos de 1 ano de estudo
## 2    Fundamental incompleto ou equivalente
## 3      Fundamental completo ou equivalente
## 4          Médio incompleto ou equivalente
## 5            Médio completo ou equivalente
## 6       Superior incompleto ou equivalente
## 7                        Superior completo
##   VD4002 == "Pessoas desocupadas"/VD4001 == "Pessoas na força de trabalho"
## 1                                                               0.06254332
## 2                                                               0.07927666
## 3                                                               0.09632824
## 4                                                               0.13638480
## 5                                                               0.09231275
## 6                                                               0.08344151
## 7                                                               0.03847619
##   se.VD4002 == "Pessoas desocupadas"/VD4001 == "Pessoas na força de trabalho"
## 1                                                                 0.004405128
## 2                                                                 0.001805196
## 3                                                                 0.003736037
## 4                                                                 0.003852986
## 5                                                                 0.001598607
## 6                                                                 0.003826103
## 7                                                                 0.001261412

Subsets

9 - Obtendo a proporção de nível de instrução para homens pardos com mais de 30 anos avaliando o coeficiente de variação e intervalo de confiança

indicador = svymean(x =~VD3004,
                         design = subset(microdados_pnad_educ_23,
                                         V2007 == "Homem" & V2010 == "Parda" &
                                           V2009>30),
                         na.rm = T)
indicador
##                                                    mean     SE
## VD3004Sem instrução e menos de 1 ano de estudo 0.092896 0.0015
## VD3004Fundamental incompleto ou equivalente    0.357178 0.0029
## VD3004Fundamental completo ou equivalente      0.079902 0.0017
## VD3004Médio incompleto ou equivalente          0.051891 0.0013
## VD3004Médio completo ou equivalente            0.283245 0.0030
## VD3004Superior incompleto ou equivalente       0.027428 0.0011
## VD3004Superior completo                        0.107461 0.0022
#Coeficiente de Variação
cv(indicador)
## VD3004Sem instrução e menos de 1 ano de estudo 
##                                    0.016527550 
##    VD3004Fundamental incompleto ou equivalente 
##                                    0.008149087 
##      VD3004Fundamental completo ou equivalente 
##                                    0.020858283 
##          VD3004Médio incompleto ou equivalente 
##                                    0.025261020 
##            VD3004Médio completo ou equivalente 
##                                    0.010425819 
##       VD3004Superior incompleto ou equivalente 
##                                    0.039633728 
##                        VD3004Superior completo 
##                                    0.020399115
#Intervalo de Confiância
confint(indicador)
##                                                     2.5 %     97.5 %
## VD3004Sem instrução e menos de 1 ano de estudo 0.08988645 0.09590487
## VD3004Fundamental incompleto ou equivalente    0.35147329 0.36288293
## VD3004Fundamental completo ou equivalente      0.07663515 0.08316815
## VD3004Médio incompleto ou equivalente          0.04932163 0.05445993
## VD3004Médio completo ou equivalente            0.27745691 0.28903269
## VD3004Superior incompleto ou equivalente       0.02529765 0.02955895
## VD3004Superior completo                        0.10316425 0.11175714
rm(indicador)

10 - Obtendo os quantis do numero de horas trabalhas por nível de instrução

quantis_horas_nivel_instrucao = svyby(formula = ~VD4031,
                                      by = ~VD3004,
                         design = microdados_pnad_educ_23,
                                      FUN = svyquantile,
                                      quantiles=c(0.25,0.5,0.75),
                                      keep.names = F,
                         #keep.var = F, CASO NÃO QUEIRA QUE AS VAR APAREÇAM
                         na.rm = T)
quantis_horas_nivel_instrucao
##                                     VD3004 VD4031.0.25 VD4031.0.5 VD4031.0.75
## 1 Sem instrução e menos de 1 ano de estudo          30         40          44
## 2    Fundamental incompleto ou equivalente          30         40          44
## 3      Fundamental completo ou equivalente          40         40          44
## 4          Médio incompleto ou equivalente          32         40          44
## 5            Médio completo ou equivalente          40         40          44
## 6       Superior incompleto ou equivalente          35         40          44
## 7                        Superior completo          40         40          44
##   se.VD4031.0.25 se.VD4031.0.5 se.VD4031.0.75
## 1      1.2677764     1.0142211      0.2535553
## 2      0.5071106     0.5071106      0.2535553
## 3      1.0142211     1.0142211      0.2535553
## 4      1.5213317     1.0142211      0.2535553
## 5      0.5071106     0.5071106      0.2535553
## 6      0.5071106     1.0142211      0.2535553
## 7      1.0142211     1.0142211      0.2535553

Visualizando dados

11 Obtendo o gráfico boxplot do numero de horas trabalhadas por nivel de instrução

svyboxplot(formula = VD4031~VD3004, design=microdados_pnad_educ_23, main="Boxplot do número de horas trabalhadas por Nível de instrução")

Teste T

12 Obtendo teste t para verificar se existe diferença derendimento efetivo nominal entre pessoas com até ensino médio incompleto e pessoas com instrução superior a esse nivel

microdados_pnad_educ_23$variables = transform(microdados_pnad_educ_23$variables, MVD3004=as.factor(ifelse(VD3004=="Sem instrução e menos de 1 ano de estudo"|
                          VD3004 == "Fundamental incompleto ou equivalente" | 
                          VD3004 == "Fundamental completo ou equivalente"|
                          VD3004 == "Médio incompleto ou equivalente",
                          "Até médio imcompleto",
                          ifelse(VD3004=="Médio completo ou equivalente" |
                                  VD3004 == "Superior incompleto ou equivalente"|
                                   VD3004 == "Superior completo", 
                                 "Médio ou acima completo", NA)
                          )))
svyttest(formula = VD4020~MVD3004, design = microdados_pnad_educ_23)
## 
##  Design-based t-test
## 
## data:  VD4020 ~ MVD3004
## t = 47.829, df = 198, p-value < 0.00000000000000022
## alternative hypothesis: true difference in mean is not equal to 0
## 95 percent confidence interval:
##  1832.831 1990.468
## sample estimates:
## difference in mean 
##           1911.649

13 Obtendo o modelo deregressão linear dorendimento efetivoreal como variável dependente e nivel de instrução, cor ouraça e idade como variáveis explicativas

microdados_pnad_educ_23$variables = transform(microdados_pnad_educ_23$variables, 
                                              VD4020real=VD4020*Efetivo)


summary(svyglm(formula = VD4020real~VD3004+V2010+V2009, design =microdados_pnad_educ_23))
## 
## Call:
## svyglm(formula = VD4020real ~ VD3004 + V2010 + V2009, design = microdados_pnad_educ_23)
## 
## Survey design:
## svrepdesign.default(data = data_pnadc, weight = ~V1028, type = "bootstrap", 
##     repweights = "V1028[0-9]+", mse = TRUE, replicates = length(sprintf("V1028%03d", 
##         seq(1:200))), df = length(sprintf("V1028%03d", seq(1:200))))
## 
## Coefficients:
##                                             Estimate Std. Error t value
## (Intercept)                                 -181.654     87.996  -2.064
## VD3004Fundamental incompleto ou equivalente  393.089     47.837   8.217
## VD3004Fundamental completo ou equivalente    804.469     52.085  15.445
## VD3004Médio incompleto ou equivalente       1016.937     52.958  19.203
## VD3004Médio completo ou equivalente         1291.098     45.494  28.379
## VD3004Superior incompleto ou equivalente    2067.875     78.821  26.235
## VD3004Superior completo                     4799.248     90.179  53.219
## V2010Preta                                  -851.823     46.502 -18.318
## V2010Amarela                                 385.314    324.836   1.186
## V2010Parda                                  -763.714     41.605 -18.356
## V2010Indígena                               -807.420    123.775  -6.523
## V2010Ignorado                               2862.135   2712.237   1.055
## V2009                                         41.279      1.501  27.507
##                                                         Pr(>|t|)    
## (Intercept)                                               0.0404 *  
## VD3004Fundamental incompleto ou equivalente   0.0000000000000338 ***
## VD3004Fundamental completo ou equivalente   < 0.0000000000000002 ***
## VD3004Médio incompleto ou equivalente       < 0.0000000000000002 ***
## VD3004Médio completo ou equivalente         < 0.0000000000000002 ***
## VD3004Superior incompleto ou equivalente    < 0.0000000000000002 ***
## VD3004Superior completo                     < 0.0000000000000002 ***
## V2010Preta                                  < 0.0000000000000002 ***
## V2010Amarela                                              0.2371    
## V2010Parda                                  < 0.0000000000000002 ***
## V2010Indígena                                 0.0000000006256899 ***
## V2010Ignorado                                             0.2927    
## V2009                                       < 0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for gaussian family taken to be 23605681)
## 
## Number of Fisher Scoring iterations: 2

##Coleta de dados anuais

microdados_pnad_anual = get_pnadc(year = 2023,
                            topic = 2, #numero da pesquisa no trimestre
                            labels = T,
                            deflator = T,
                            design = T, #vem com desenho amostral o que permite 
                                        #fazer inferências estatisticas da amostra 
                                        #para população
                            )
## Deflator year or period was not provided, so deflator year was set to 2023 and period was set to 2.

14 Obtendo a proporcao de pessoas de 25 anos ou mais de idade con pelo menos ensino medio completo

svymean(x=~as.integer(VD3004=="Médio completo ou equivalente"|
                      VD3004 == "Superior incompleto ou equivalente" | 
                      VD3004=="Superior completo"), 
        design=subset(microdados_pnad_anual, V2009>=25), na.rm=TRUE)
##                                                                                                                                           mean
## as.integer(VD3004 == "Médio completo ou equivalente" | VD3004 == "Superior incompleto ou equivalente" | VD3004 == "Superior completo") 0.54401
##                                                                                                                                            SE
## as.integer(VD3004 == "Médio completo ou equivalente" | VD3004 == "Superior incompleto ou equivalente" | VD3004 == "Superior completo") 0.0025

15 Obtendo o total da populacao de pessoas de 25 anos ou mais de idade que nao completou o ensino medio

svytotal(x=~as.integer(VD3004!="Médio completo ou equivalente" & 
                         VD3004 != "Superior incompleto ou equivalente" & 
                         VD3004 != "Superior completo"),
         design=subset(microdados_pnad_anual, V2009>=25), na.rm=TRUE) 
##                                                                                                                                           total
## as.integer(VD3004 != "Médio completo ou equivalente" & VD3004 != "Superior incompleto ou equivalente" & VD3004 != "Superior completo") 63941829
##                                                                                                                                            SE
## as.integer(VD3004 != "Médio completo ou equivalente" & VD3004 != "Superior incompleto ou equivalente" & VD3004 != "Superior completo") 348581

16 Obtendo a proporção de adultos que não completaram ensino médio no Nordeste

microdados_pnad_anual$variables = 
  transform(microdados_pnad_anual$variables,
            GR=as.factor(ifelse(substr(UPA, start=1, stop=1)=="1", "Norte", 
                                              ifelse(substr(UPA, start=1, stop=1)=="2", "Nordeste", 
                        ifelse(substr(UPA, start=1, stop=1)=="3", "Sudeste", 
                        ifelse(substr(UPA, start=1, stop=1)=="4", "Sul", 
                        ifelse (substr(UPA, start=1, stop=1)=="5", "Centro-Oeste", 
                                NA)))))))



microdados_pnad_anual$variables$GR <- factor(microdados_pnad_anual$variables$GR, 
                                           levels=c("Norte", "Nordeste", "Sudeste", "Sul", "Centro-Oeste"))


svymean(x=~as.integer(VD3004!="Médio completo ou equivalente" & 
                        VD3004!="Superior incompleto ou equivalente" & 
                        VD3004!="Superior completo"), 
        design=subset(microdados_pnad_anual,V2009>=25 & GR=="Nordeste"), 
        na.rm=TRUE)
##                                                                                                                                           mean
## as.integer(VD3004 != "Médio completo ou equivalente" & VD3004 != "Superior incompleto ou equivalente" & VD3004 != "Superior completo") 0.54319
##                                                                                                                                            SE
## as.integer(VD3004 != "Médio completo ou equivalente" & VD3004 != "Superior incompleto ou equivalente" & VD3004 != "Superior completo") 0.0037

17 Obtendo a proporcao de pessoas brancas que concluiram pelo menos o ensino medio

svymean(x=~as.integer(VD3004=="Médio completo ou equivalente"|
                      VD3004=="Superior incompleto ou equivalente" | 
                      VD3004=="Superior completo"), 
        design=subset(microdados_pnad_anual, V2009>=25 & V2010=="Branca"), na.rm=TRUE) 
##                                                                                                                                           mean
## as.integer(VD3004 == "Médio completo ou equivalente" | VD3004 == "Superior incompleto ou equivalente" | VD3004 == "Superior completo") 0.61736
##                                                                                                                                            SE
## as.integer(VD3004 == "Médio completo ou equivalente" | VD3004 == "Superior incompleto ou equivalente" | VD3004 == "Superior completo") 0.0032

18 Obtendo a proporcão de pessoas pardas ou pretas que concluíram pelo menos o ensino medio

svymean(x=~as.integer(VD3004=="Médio completo ou equivalente"|
                      VD3004=="Superior incompleto ou equivalente" | 
                      VD3004=="Superior completo"), 
        design=subset(microdados_pnad_anual,
                      V2009>=25 &(V2010=="Parda"| V2010=="Preta")), 
        na.rm=TRUE)
##                                                                                                                                           mean
## as.integer(VD3004 == "Médio completo ou equivalente" | VD3004 == "Superior incompleto ou equivalente" | VD3004 == "Superior completo") 0.48326
##                                                                                                                                            SE
## as.integer(VD3004 == "Médio completo ou equivalente" | VD3004 == "Superior incompleto ou equivalente" | VD3004 == "Superior completo") 0.0025

19 Obtendo O total de pessoas com idade entre 14 e 29 anos

svytotal(x=~as.integer(V2009>=14 & V2009<=29), design =microdados_pnad_anual, 
         na.rm = T)
##                                          total    SE
## as.integer(V2009 >= 14 & V2009 <= 29) 51496245 0.027

20 Obtendo a proporção de pessoas de 14 a 29 anos de idade que não completaram alguma das etapas da educação básica, seja por terem abandonado a escola, seja por nunca a terem frequentado

microdados_pnad_anual$variables = transform(microdados_pnad_anual$variables, 
                                            MV3008=as.factor(ifelse(is.na(V3008), "não aplicável", as.character(V3008))))

svymean(x=~as.integer(MV3008=="Não"|
                        (MV3008=="Sim" & (VD3004=="sem instrução e menos de 1 ano de estudo" 
                                                     | VD3004=="Fundamental incompleto ou equivalente" | 
                                           VD3004=="Fundamental completo ou equivalente"| 
                                           VD3004=="Médio incompleto ou equivalente"))),
        design=subset(microdados_pnad_anual, V2009>=14 & V2009<=29), na.rm=TRUE)
##                                                                                                                                                                                                                                                                 mean
## as.integer(MV3008 == "Não" | (MV3008 == "Sim" & (VD3004 == "sem instrução e menos de 1 ano de estudo" | VD3004 == "Fundamental incompleto ou equivalente" | VD3004 == "Fundamental completo ou equivalente" | VD3004 == "Médio incompleto ou equivalente"))) 0.17887
##                                                                                                                                                                                                                                                                  SE
## as.integer(MV3008 == "Não" | (MV3008 == "Sim" & (VD3004 == "sem instrução e menos de 1 ano de estudo" | VD3004 == "Fundamental incompleto ou equivalente" | VD3004 == "Fundamental completo ou equivalente" | VD3004 == "Médio incompleto ou equivalente"))) 0.0019

21 Obtendo a proporcao de pessoas pretas ou pardas de 14 a 29 anos de idade que nao completaran alguna das etapas da edu cacao basica, seja por terem abandonado a escola, seja por nunca a teren frequentado

svymean(x=~as.integer(V2010=="Parda"|V2010=="Preta"),
        design=subset(microdados_pnad_anual, (MV3008=="Não"| 
                        (MV3008=="Sim" & (VD3004=="sem instrução e menos de 1 ano de estudo"| 
                                           VD3004=="Fundamental incompleto ou equivalente" | 
                                           VD3004=="Fundamental completo ou equivalente"| 
                                           VD3004=="Médio incompleto ou equivalente"))) & 
                        V2009>=14 & V2009<=29),na.rm=TRUE)
##                                                    mean     SE
## as.integer(V2010 == "Parda" | V2010 == "Preta") 0.71341 0.0048

22 Obtendo a proporcao de motivos para evasão escolar de pessoas de 14 a 29 anos de idade

svymean(x=~V3034B, design=subset(microdados_pnad_anual,
                                 (MV3008=="Não"| 
                                    (MV3008=="Sim" & (VD3004=="Sem instrução e menos de 1 ano de estudo" |
                                                        VD3004=="Fundamental incompleto ou equivalente" |
                                                        VD3004=="Fundamental completo ou equivalente" |
                                                        VD3004=="Médio incompleto ou equivalente"))) 
                                 & V2009>=14 & V2009<=29), na.rm=TRUE)
##                                                                                                                      mean
## V3034BPrecisava trabalhar                                                                                       0.4174056
## V3034BNão tinha escola na localidade ou esta ficava distante                                                    0.0207536
## V3034BFaltava vaga na escola ou não tinha turno letivo desejado                                                 0.0068905
## V3034BFaltava de dinheiro para pagar mensalidade, transporte, material escolar etc.                             0.0072629
## V3034BPor gravidez                                                                                              0.0965519
## V3034BTinha que realizar afazeres domésticos ou cuidar de criança, adolescente, idoso ou pessoa com deficiência 0.0440571
## V3034BDesistiu por não aprender ou por excesso de repetência                                                    0.0274689
## V3034BTer concluído o nível de estudo que desejava                                                              0.0613325
## V3034BA escola não era adaptada para pessoa com deficiência                                                     0.0093476
## V3034BPor ter problema de saúde permanente                                                                      0.0392345
## V3034BNão tinha interesse em estudar                                                                            0.2350785
## V3034BOutro motivo                                                                                              0.0346164
##                                                                                                                     SE
## V3034BPrecisava trabalhar                                                                                       0.0054
## V3034BNão tinha escola na localidade ou esta ficava distante                                                    0.0015
## V3034BFaltava vaga na escola ou não tinha turno letivo desejado                                                 0.0008
## V3034BFaltava de dinheiro para pagar mensalidade, transporte, material escolar etc.                             0.0008
## V3034BPor gravidez                                                                                              0.0029
## V3034BTinha que realizar afazeres domésticos ou cuidar de criança, adolescente, idoso ou pessoa com deficiência 0.0020
## V3034BDesistiu por não aprender ou por excesso de repetência                                                    0.0018
## V3034BTer concluído o nível de estudo que desejava                                                              0.0028
## V3034BA escola não era adaptada para pessoa com deficiência                                                     0.0010
## V3034BPor ter problema de saúde permanente                                                                      0.0019
## V3034BNão tinha interesse em estudar                                                                            0.0050
## V3034BOutro motivo                                                                                              0.0020

23 Obtendp o total de pessoas que frequentam escola ou creche

svytotal(x=~as.integer(V3002=="Sim"),design = microdados_pnad_anual, na.rm = T)
##                               total     SE
## as.integer(V3002 == "Sim") 58414442 153040

24 Obtendo a taxa de escolarizacao por grupos etarios

microdados_pnad_anual$variables = 
  transform(microdados_pnad_anual$variables, 
            MV2009=as.factor(ifelse(V2009>=0 & 
                                      V2009<=3, "De 0 a 3 anos", 
                                    ifelse(V2009>=4 & V2009<=5, "De 4 e 5 anos", 
                                           ifelse(V2009>=6 & V2009<=14, "De 6 a 14 anos", 
                                                  ifelse(V2009>=15 & V2009<=17, "De 15 a 17 anos", 
                                                         ifelse(V2009>=18 & V2009<=24, "De 18 a 24 anos", 
                                                                ifelse(V2009>=25 & V2009<=130, "25 anos ou mais", NA))))))))

microdados_pnad_anual$variables$MV2009 = factor(microdados_pnad_anual$variables$MV2009, 
                                                levels=c("De 0 a 3 anos",
                                                         "De 4 e 5 anos", 
                                                         "De 6 a 14 anos", 
                                                         "De 15 a 17 anos", 
                                                         "De 18 a 24 anos", 
                                                         "25 anos ou mais"))


svyby(formula=~as.integer(V3002=="Sim"), by=~MV2009, design=microdados_pnad_anual, FUN=svymean, keep.names=FALSE, na.rn=TRUE)
##            MV2009 as.integer(V3002 == "Sim")           se
## 1   De 0 a 3 anos                 0.38702678 0.0055607301
## 2   De 4 e 5 anos                 0.92895703 0.0035042111
## 3  De 6 a 14 anos                 0.99430481 0.0005300289
## 4 De 15 a 17 anos                 0.91910232 0.0026485628
## 5 De 18 a 24 anos                 0.30517316 0.0034384360
## 6 25 anos ou mais                 0.04959695 0.0006192483

25 Oobtendo o total e a proporcao de posicão emrelacao a estudo e trabalho de pessoas de 15 a 29 anos de 1dade

microdados_pnad_anual$variables = transform(microdados_pnad_anual$variables, 
                                            MV3019A=as.factor(ifelse(is.na(V3019A), "Não aplicável", as.character (V3019A))))

microdados_pnad_anual$variables = transform(microdados_pnad_anual$variables, 
                                            MV3024=as.factor(ifelse(is.na(V3024), "Não aplicável", as.character (V3024)))) 

microdados_pnad_anual$variables = transform(microdados_pnad_anual$variables, 
                                            MV3026=as.factor(ifelse(is.na(V3026), "Não aplicável", as.character (V3026)))) 

svymean(x=~as.integer((V3002=="Sim" | MV3019A=="Sim, curso técnico de nível médio "|
                         MV3019A == "Sim, curso normal (magistério)" |
                         MV3024== "Sim" | MV3026=="Sim") & (VD4001=="Pessoas fora da força de trabalho" |
                         VD4002=="Pessoas desocupadas")), 
        design=subset(microdados_pnad_anual, V2009>=15 & V2009<=17), na.rm=TRUE)
##                                                                                                                                                                                                                                                         mean
## as.integer((V3002 == "Sim" | MV3019A == "Sim, curso técnico de nível médio " | MV3019A == "Sim, curso normal (magistério)" | MV3024 == "Sim" | MV3026 == "Sim") & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.81092
##                                                                                                                                                                                                                                                         SE
## as.integer((V3002 == "Sim" | MV3019A == "Sim, curso técnico de nível médio " | MV3019A == "Sim, curso normal (magistério)" | MV3024 == "Sim" | MV3026 == "Sim") & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.004
svytotal(x=~as.integer(V2009>=15 & V2009<=29), design=microdados_pnad_anual, na.rm=T)
##                                          total    SE
## as.integer(V2009 >= 15 & V2009 <= 29) 48544632 44671
svymean(x=~as.integer(V3002=="Não" & (MV3019A=="Não" | MV3019A=="Não aplicável") & 
                        MV3024!="Sim" & MV3026!="Sim" & (VD4001=="Pessoas fora da força de trabalho"|
                        VD4002== "Pessoas desocupadas")), design=subset(microdados_pnad_anual, V2009>=15 & V2009<=29), na.rm=TRUE)
##                                                                                                                                                                                                         mean
## as.integer(V3002 == "Não" & (MV3019A == "Não" | MV3019A == "Não aplicável") & MV3024 != "Sim" & MV3026 != "Sim" & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.19831
##                                                                                                                                                                                                          SE
## as.integer(V3002 == "Não" & (MV3019A == "Não" | MV3019A == "Não aplicável") & MV3024 != "Sim" & MV3026 != "Sim" & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.0019
svymean(x=~as.integer(V3002=="Não" & (MV3019A=="Não" | MV3019A=="Não aplicável") & 
                        MV3024!="Sim" & MV3026!="Sim" & (VD4001=="Pessoas fora da força de trabalho"|
                        VD4002== "Pessoas desocupadas")), design=subset(microdados_pnad_anual, V2007=="Mulher" &
                                                                          V2009>=15 & V2009<=29) , na.rm=TRUE)
##                                                                                                                                                                                                         mean
## as.integer(V3002 == "Não" & (MV3019A == "Não" | MV3019A == "Não aplicável") & MV3024 != "Sim" & MV3026 != "Sim" & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.25591
##                                                                                                                                                                                                          SE
## as.integer(V3002 == "Não" & (MV3019A == "Não" | MV3019A == "Não aplicável") & MV3024 != "Sim" & MV3026 != "Sim" & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.0032
svymean(x=~as.integer(V3002=="Não" & (MV3019A=="Não" | MV3019A=="Não aplicável") & 
                        MV3024!="Sim" & MV3026!="Sim" & (VD4001=="Pessoas fora da força de trabalho"|
                        VD4002== "Pessoas desocupadas")), design=subset(microdados_pnad_anual,V2009>=15 & V2009<=29 & 
          V2010 == "Parda" | V2010 == "Preta"), na.rm=TRUE)
##                                                                                                                                                                                                        mean
## as.integer(V3002 == "Não" & (MV3019A == "Não" | MV3019A == "Não aplicável") & MV3024 != "Sim" & MV3026 != "Sim" & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.2575
##                                                                                                                                                                                                          SE
## as.integer(V3002 == "Não" & (MV3019A == "Não" | MV3019A == "Não aplicável") & MV3024 != "Sim" & MV3026 != "Sim" & (VD4001 == "Pessoas fora da força de trabalho" | VD4002 == "Pessoas desocupadas")) 0.0021

Obtendo a proporcao do tipo derede da instituicao de ensino por curso que frequenta

svymean(x=~as.integer(V3002A=="Rede pública"), 
        design=subset(microdados_pnad_anual,V3003A=="Creche (disponivel apenas no questionário anual de educação)" | 
                        V3003A == "Pré-escola"), na.rm=TRUE)
##                                         mean     SE
## as.integer(V3002A == "Rede pública") 0.75238 0.0065
svymean(x=~as.integer(V3002A=="Rede pública"), 
        design=subset(microdados_pnad_anual, V3003A=="Regular do ensino fundamental"), na.rm=TRUE)
##                                        mean     SE
## as.integer(V3002A == "Rede pública") 0.8226 0.0036
svymean(x=~as.integer(V3002A=="Rede pública"), 
        design=subset(microdados_pnad_anual, V3003A=="Regular do ensino médio"), na.rm=TRUE)
##                                         mean     SE
## as.integer(V3002A == "Rede pública") 0.87015 0.0043
svymean(x=~as.integer(V3002A=="Rede privada"), 
        design=subset(microdados_pnad_anual, V3003A=="Superior - graduação"), na.rm=TRUE)
##                                         mean     SE
## as.integer(V3002A == "Rede privada") 0.73856 0.0049
svymean(x=~as.integer(V3002A=="Rede privada"), 
        design=subset(microdados_pnad_anual, V3003A=="Especialização de nível superior" | V3003A=="Mestrado" | V3003A=="Doutorado"), na.rm=TRUE)
##                                         mean     SE
## as.integer(V3002A == "Rede privada") 0.74072 0.0108

Obtendo a taxa de analfabetismo de pessoas de 15 anos ou mais de idade porregiao e cor ouraca

svymean(x=~as.integer(V3001=="Não"), design=subset(microdados_pnad_anual, V2009>=15), na.rm=TRUE)
##                                mean     SE
## as.integer(V3001 == "Não") 0.054344 0.0006
svytotal(x=~as.integer(V3001=="Não"), design=subset(microdados_pnad_anual, V2009>=15), na.rm=TRUE)
##                              total    SE
## as.integer(V3001 == "Não") 9328425 95741
svymean(x=~as.integer(GR=="Nordeste"), design=subset(microdados_pnad_anual, V2009>=15 & V3001 =="Não"), na.rm=TRUE)
##                                 mean     SE
## as.integer(GR == "Nordeste") 0.54715 0.0051
svytotal(x=~as.integer(GR=="Nordeste"), design=subset(microdados_pnad_anual, V2009>=15 & V3001 =="Não"), na.rm=TRUE)
##                                total    SE
## as.integer(GR == "Nordeste") 5104076 62088
svymean(x=~as.integer(V3001=="Não"), design=subset(microdados_pnad_anual, V2009>=15 & 
                                                     (V2010 =="Parda" | V2010 =="Preta")), na.rm=TRUE)
##                                mean     SE
## as.integer(V3001 == "Não") 0.071318 0.0008
svymean(x=~as.integer(V3001=="Não"), design=subset(microdados_pnad_anual, V2009>=15 & V2010 =="Branca"), na.rm=TRUE)
##                                mean     SE
## as.integer(V3001 == "Não") 0.032423 0.0006