# Nome: Raphael Bertanha, NUSP: 4919798

rm(list = ls())

install.packages("PNADcIBGE", repos = "http://cran.us.r-project.org")
## Installing package into 'D:/Users/thomas.daher/AppData/Local/R/win-library/4.2'
## (as 'lib' is unspecified)
## package 'PNADcIBGE' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  D:\Users\thomas.daher\AppData\Local\Temp\3\Rtmp6lC4AD\downloaded_packages
library(PNADcIBGE)
library(tidyverse)
## -- Attaching core tidyverse packages ------------------------ tidyverse 2.0.0 --
## v dplyr     1.1.2     v readr     2.1.4
## v forcats   1.0.0     v stringr   1.5.0
## v ggplot2   3.4.4     v tibble    3.2.1
## v lubridate 1.9.3     v tidyr     1.3.0
## v purrr     1.0.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## i Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
variables<- c("Ano" , "Trimestre", "UF","V1022", "V1023", "V1032",  
              "V2007", "V2008", "V20081", "V20082", "V2009", "V2010", "V3001",
              "V3002", "V4009", "V4018", "V40181", "V40182", "V40183", "V4029",
              "V4032", "V4040", "V40401", "V40402", "V40403", "V4071", "V5001A",
              "V5001A2","V5002A","V5002A2","V5003A","V5003A2", "V5004A","V5004A2",
              "V5005A", "V5005A2","V5006A","V5006A2","V5007A","V5007A2","V5008A",
              "V5008A2",
              "VD2002","VD2003",
              "VD2004","VD3004","VD3005","VD4001","VD4002","VD4003","VD4009",
              "VD4010", "VD4011","VD4012","VD4020","VD4035")

pnadcvis1 <- get_pnadc(2015,
                       interview = 1,
                       deflator = TRUE,
                       labels = TRUE,
                       vars=variables,
                       design=FALSE)
## Deflator year was not provided, so deflator year was set to 2022.
pnadc <- pnadcvis1  %>% select(all_of(variables))

rm(pnadcvis1, variables)

save(pnadc,file = "base.RData")
rm(list = ls())

# Acessando a base que foi salva 

load("base.RData") 

# Consultando detalhes sobre a base e variaveis que ela possui

class(pnadc)
## [1] "tbl_df"     "tbl"        "data.frame"
str(pnadc)
## tibble [459,273 x 56] (S3: tbl_df/tbl/data.frame)
##  $ Ano      : chr [1:459273] "2015" "2015" "2015" "2015" ...
##  $ Trimestre: chr [1:459273] "2" "2" "2" "2" ...
##  $ UF       : Factor w/ 27 levels "Rondônia","Acre",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ V1022    : Factor w/ 2 levels "Urbana","Rural": 1 1 1 1 1 1 1 1 1 1 ...
##  $ V1023    : Factor w/ 4 levels "Capital","Resto da RM (Região Metropolitana, excluindo a capital)",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ V1032    : num [1:459273] 157 157 149 149 168 ...
##  $ V2007    : Factor w/ 2 levels "Masculino","Feminino": 2 1 2 1 2 1 2 1 1 2 ...
##  $ V2008    : chr [1:459273] "25" "99" "99" "14" ...
##  $ V20081   : chr [1:459273] "07" "99" "99" "09" ...
##  $ V20082   : chr [1:459273] "1976" "9999" "9999" "1997" ...
##  $ V2009    : num [1:459273] 38 24 22 17 27 28 58 34 41 33 ...
##  $ V2010    : Factor w/ 6 levels "Branca","Preta",..: 4 4 1 4 4 4 4 4 4 4 ...
##  $ V3001    : Factor w/ 2 levels "Sim","Não": 1 1 1 1 1 1 2 1 1 1 ...
##  $ V3002    : Factor w/ 2 levels "Sim","Não": 2 2 2 1 2 2 2 2 2 2 ...
##  $ V4009    : Factor w/ 3 levels "Um","Dois","Três ou mais": 1 1 1 NA NA 1 NA 1 1 NA ...
##  $ V4018    : Factor w/ 4 levels "1 a 5 pessoas",..: 1 1 1 NA NA 1 NA 1 3 NA ...
##  $ V40181   : chr [1:459273] "1" "2" "3" NA ...
##  $ V40182   : chr [1:459273] NA NA NA NA ...
##  $ V40183   : chr [1:459273] NA NA NA NA ...
##  $ V4029    : Factor w/ 2 levels "Sim","Não": NA 2 1 NA NA NA NA NA 1 NA ...
##  $ V4032    : Factor w/ 2 levels "Sim","Não": 2 2 NA NA NA 2 NA 2 NA NA ...
##  $ V4040    : Factor w/ 4 levels "Menos de 1 mês",..: 4 3 2 NA NA 3 NA 4 4 NA ...
##  $ V40401   : num [1:459273] NA NA 3 NA NA NA NA NA NA NA ...
##  $ V40402   : num [1:459273] NA 0 NA NA NA 0 NA NA NA NA ...
##  $ V40403   : num [1:459273] 2 NA NA NA NA NA NA 2 2 NA ...
##  $ V4071    : Factor w/ 2 levels "Sim","Não": NA NA NA 2 2 NA 2 NA NA 2 ...
##  $ V5001A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5001A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ V5002A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5002A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ V5003A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5003A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ V5004A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5004A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ V5005A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5005A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ V5006A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5006A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ V5007A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5007A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ V5008A   : Factor w/ 2 levels "Sim","Não": NA NA NA NA NA NA NA NA NA NA ...
##  $ V5008A2  : num [1:459273] NA NA NA NA NA NA NA NA NA NA ...
##  $ VD2002   : Factor w/ 17 levels "Pessoa responsável",..: 1 3 1 10 1 2 1 3 1 2 ...
##  $ VD2003   : num [1:459273] 2 2 2 2 2 2 2 2 6 6 ...
##  $ VD2004   : Factor w/ 4 levels "Unipessoal","Nuclear",..: 2 2 3 3 2 2 2 2 3 3 ...
##  $ VD3004   : Factor w/ 7 levels "Sem instrução e menos de 1 ano de estudo",..: 5 5 2 2 5 5 1 2 2 5 ...
##  $ VD3005   : Factor w/ 17 levels "Sem instrução e menos de 1 ano de estudo",..: 13 13 9 6 13 13 1 2 5 13 ...
##  $ VD4001   : Factor w/ 2 levels "Pessoas na força de trabalho",..: 1 1 1 2 2 1 2 1 1 2 ...
##  $ VD4002   : Factor w/ 2 levels "Pessoas ocupadas",..: 1 1 1 NA NA 1 NA 1 1 NA ...
##  $ VD4003   : Factor w/ 2 levels "Pessoas fora da força de trabalho e na força de trabalho potencial",..: NA NA NA 2 1 NA 2 NA NA 2 ...
##  $ VD4009   : Factor w/ 10 levels "Empregado no setor privado com carteira de trabalho assinada",..: 9 2 1 NA NA 9 NA 9 1 NA ...
##  $ VD4010   : Factor w/ 12 levels "Agricultura, pecuária, produção florestal, pesca e aquicultura",..: 4 10 6 NA NA 8 NA 3 5 NA ...
##  $ VD4011   : Factor w/ 11 levels "Diretores e gerentes",..: 5 5 9 NA NA 7 NA 7 8 NA ...
##  $ VD4012   : Factor w/ 2 levels "Contribuinte",..: 2 2 1 NA NA 2 NA 2 1 NA ...
##  $ VD4020   : num [1:459273] 1000 740 740 NA NA 1500 NA 1500 1500 NA ...
##  $ VD4035   : num [1:459273] 44 44 44 NA NA 40 NA 44 44 NA ...
glimpse(pnadc)
## Rows: 459,273
## Columns: 56
## $ Ano       <chr> "2015", "2015", "2015", "2015", "2015", "2015", "2015", "201~
## $ Trimestre <chr> "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", ~
## $ UF        <fct> Rondônia, Rondônia, Rondônia, Rondônia, Rondônia, Rondônia, ~
## $ V1022     <fct> Urbana, Urbana, Urbana, Urbana, Urbana, Urbana, Urbana, Urba~
## $ V1023     <fct> "Capital", "Capital", "Capital", "Capital", "Capital", "Capi~
## $ V1032     <dbl> 157.0057, 157.0057, 148.8620, 148.8620, 168.3272, 168.3272, ~
## $ V2007     <fct> Feminino, Masculino, Feminino, Masculino, Feminino, Masculin~
## $ V2008     <chr> "25", "99", "99", "14", "31", "22", "05", "29", "17", "08", ~
## $ V20081    <chr> "07", "99", "99", "09", "01", "02", "11", "10", "04", "09", ~
## $ V20082    <chr> "1976", "9999", "9999", "1997", "1988", "1987", "1956", "198~
## $ V2009     <dbl> 38, 24, 22, 17, 27, 28, 58, 34, 41, 33, 16, 14, 2, 18, 44, 8~
## $ V2010     <fct> Parda, Parda, Branca, Parda, Parda, Parda, Parda, Parda, Par~
## $ V3001     <fct> Sim, Sim, Sim, Sim, Sim, Sim, Não, Sim, Sim, Sim, Sim, Sim, ~
## $ V3002     <fct> Não, Não, Não, Sim, Não, Não, Não, Não, Não, Não, Sim, Sim, ~
## $ V4009     <fct> Um, Um, Um, NA, NA, Um, NA, Um, Um, NA, NA, NA, NA, Um, Um, ~
## $ V4018     <fct> 1 a 5 pessoas, 1 a 5 pessoas, 1 a 5 pessoas, NA, NA, 1 a 5 p~
## $ V40181    <chr> "1", "2", "3", NA, NA, "1", NA, "1", NA, NA, NA, NA, NA, "2"~
## $ 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, "20", NA, NA, NA, NA, NA, NA~
## $ V4029     <fct> NA, Não, Sim, NA, NA, NA, NA, NA, Sim, NA, NA, NA, NA, NA, S~
## $ V4032     <fct> Não, Não, NA, NA, NA, Não, NA, Não, NA, NA, NA, NA, NA, Não,~
## $ V4040     <fct> 2 anos ou mais, De 1 ano a menos de 2 anos, De 1 mês a menos~
## $ V40401    <dbl> NA, NA, 3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N~
## $ V40402    <dbl> NA, 0, NA, NA, NA, 0, NA, NA, NA, NA, NA, NA, NA, 0, NA, NA,~
## $ V40403    <dbl> 2, NA, NA, NA, NA, NA, NA, 2, 2, NA, NA, NA, NA, NA, 2, NA, ~
## $ V4071     <fct> NA, NA, NA, Não, Não, NA, Não, NA, NA, Não, Não, Não, NA, NA~
## $ V5001A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5001A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5002A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5002A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5003A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5003A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5004A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5004A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5005A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5005A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5006A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5006A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5007A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5007A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5008A    <fct> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ V5008A2   <dbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ~
## $ VD2002    <fct> "Pessoa responsável", "Filho(a)", "Pessoa responsável", "Irm~
## $ VD2003    <dbl> 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 2, 2, 3, 3, 3, 3, ~
## $ VD2004    <fct> Nuclear, Nuclear, Estendida, Estendida, Nuclear, Nuclear, Nu~
## $ VD3004    <fct> Médio completo ou equivalente, Médio completo ou equivalente~
## $ VD3005    <fct> 12 anos de estudo, 12 anos de estudo, 8 anos de estudo, 5 an~
## $ VD4001    <fct> Pessoas na força de trabalho, Pessoas na força de trabalho, ~
## $ VD4002    <fct> Pessoas ocupadas, Pessoas ocupadas, Pessoas ocupadas, NA, NA~
## $ VD4003    <fct> NA, NA, NA, Pessoas fora da força de trabalho e fora da forç~
## $ VD4009    <fct> Conta-própria, Empregado no setor privado sem carteira de tr~
## $ VD4010    <fct> "Comércio, reparação de veículos automotores e motocicletas"~
## $ VD4011    <fct> "Trabalhadores dos serviços, vendedores dos comércios e merc~
## $ VD4012    <fct> Não contribuinte, Não contribuinte, Contribuinte, NA, NA, Nã~
## $ VD4020    <dbl> 1000, 740, 740, NA, NA, 1500, NA, 1500, 1500, NA, NA, NA, NA~
## $ VD4035    <dbl> 44, 44, 44, NA, NA, 40, NA, 44, 44, NA, NA, NA, NA, 18, 44, ~
# foram retiradas as colunas referentes a características do domicilio por erro de filtragem

# regredindo primeiro somente as variaveis principais propostas no trabalho

# primeiro precisamos criar as macro_regiões a partir dos UFS

# Vetor com todas as UFs do Brasil
ufs_brasil <- c(
  "Acre", "Alagoas", "Amapá", "Amazonas", "Bahia", "Ceará", "Distrito Federal",
  "Espírito Santo", "Goiás", "Maranhão", "Mato Grosso", "Mato Grosso do Sul",
  "Minas Gerais", "Pará", "Paraíba", "Paraná", "Pernambuco", "Piauí", "Rio de Janeiro",
  "Rio Grande do Norte", "Rio Grande do Sul", "Rondônia", "Roraima", "Santa Catarina",
  "São Paulo", "Sergipe", "Tocantins"
)


# Tabela de correspondência entre UF e macroregião
correspondencia_macroregiao <- data.frame(
  UF = ufs_brasil,
  Macroregiao = c("Norte", "Nordeste", "Norte", "Norte", "Nordeste", "Nordeste", "Centro-Oeste", 
                  "Sudeste", "Centro-Oeste", "Nordeste", "Centro-Oeste", "Centro-Oeste", "Sudeste", 
                  "Norte", "Nordeste", "Sul", "Nordeste", "Sudeste", "Norte", "Nordeste", "Sul", 
                  "Norte", "Norte", "Sul", "Nordeste", "Nordeste", "Centro-Oeste")
)

## Seleção de dados e ajuste de nulos

dset <- pnadc %>% select(VD4020,VD3005,UF)
na_counts <- colSums(is.na(dset))
cbind(Column = names(na_counts), NA_Count = na_counts)
##        Column   NA_Count
## VD4020 "VD4020" "267767"
## VD3005 "VD3005" "30767" 
## UF     "UF"     "0"
dset <- dset %>% filter(!is.na(VD4020))

na_counts <- colSums(is.na(dset))
cbind(Column = names(na_counts), NA_Count = na_counts)
##        Column   NA_Count
## VD4020 "VD4020" "0"     
## VD3005 "VD3005" "0"     
## UF     "UF"     "0"
## estudo

ajuste_educ <- c(
  "Sem instrução e menos de 1 ano de estudo" = 0,
  "1 ano de estudo" = 1,
  "2 anos de estudo" = 2,
  "3 anos de estudo" = 3,
  "4 anos de estudo" = 4,
  "5 anos de estudo" = 5,
  "6 anos de estudo" = 6,
  "7 anos de estudo" = 7,
  "8 anos de estudo" = 8,
  "9 anos de estudo" = 9,
  "10 anos de estudo" = 10,
  "11 anos de estudo" = 11,
  "12 anos de estudo" = 12,
  "13 anos de estudo" = 13,
  "14 anos de estudo" = 14,
  "15 anos de estudo" = 15,
  "16 anos de estudo" = 16
)


dset <- dset %>%
  mutate(anos_estudados = ajuste_educ[VD3005])

# macro regiões

dset <- dset %>%
  left_join(correspondencia_macroregiao %>% select(UF, Macroregiao), by = "UF")

dset <- dset %>%
  rename(renda = VD4020)
## OLS

formula <- "renda ~ 0 + anos_estudados + Macroregiao"
ols <- lm(formula = formula, data = dset)
summary(ols)
## 
## Call:
## lm(formula = formula, data = dset)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -3081  -1057   -408    346 148115 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## anos_estudados           177.032      1.218 145.389  < 2e-16 ***
## MacroregiaoCentro-Oeste  248.484     19.625  12.661  < 2e-16 ***
## MacroregiaoNordeste     -239.774     14.304 -16.763  < 2e-16 ***
## MacroregiaoNorte         -66.271     17.406  -3.807 0.000141 ***
## MacroregiaoSudeste       -76.699     18.428  -4.162 3.15e-05 ***
## MacroregiaoSul           173.398     17.685   9.805  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2364 on 191500 degrees of freedom
## Multiple R-squared:  0.3813, Adjusted R-squared:  0.3813 
## F-statistic: 1.967e+04 on 6 and 191500 DF,  p-value: < 2.2e-16
print("Os resultados ocorreram de acordo com a literatura, anos de estudo aumentam salário e ser homem também, devemos agora investigar outras varíaveis que podem também explicar salário")
## [1] "Os resultados ocorreram de acordo com a literatura, anos de estudo aumentam salário e ser homem também, devemos agora investigar outras varíaveis que podem também explicar salário"
## Ols completa

dset <- pnadc %>% select(VD4020,VD3005,UF, V1022, V1023, V2007)

dset <- dset %>% filter(!is.na(VD4020))
na_counts <- colSums(is.na(dset))
cbind(Column = names(na_counts), NA_Count = na_counts)
##        Column   NA_Count
## VD4020 "VD4020" "0"     
## VD3005 "VD3005" "0"     
## UF     "UF"     "0"     
## V1022  "V1022"  "0"     
## V1023  "V1023"  "0"     
## V2007  "V2007"  "0"
#controles escolhidos

#V1022 - urbano ou rural

dset <- dset %>% mutate(urbana_ou_rural = ifelse(V1022 == "Urbana", 1, 0))

#V1023 -  se é capital

dset <- dset %>% mutate(se_capital = ifelse(V1023 == "Capital", 1, 0))

#V2007 - Sexo

dset <- dset %>% mutate(sexo = ifelse(V2007 == "Masculino", 1, 0))

## educação

dset <- dset %>%
  mutate(anos_estudados = ajuste_educ[VD3005])

## Macroregiao
dset <- dset %>%
  left_join(correspondencia_macroregiao %>% select(UF, Macroregiao), by = "UF")

## Rename
dset <- dset %>%
  rename(renda = VD4020)

# OLS completa

formula <- "renda ~ 0 + urbana_ou_rural + se_capital + sexo + anos_estudados + Macroregiao"
ols <- lm(formula = formula, data = dset)
summary(ols)
## 
## Call:
## lm(formula = formula, data = dset)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -3813   -995   -378    366 148051 
## 
## Coefficients:
##                         Estimate Std. Error t value Pr(>|t|)    
## urbana_ou_rural          145.526     13.836   10.52   <2e-16 ***
## se_capital               538.415     13.185   40.84   <2e-16 ***
## sexo                     743.541     11.111   66.92   <2e-16 ***
## anos_estudados           177.461      1.303  136.25   <2e-16 ***
## MacroregiaoCentro-Oeste -521.741     22.660  -23.02   <2e-16 ***
## MacroregiaoNordeste     -923.604     17.934  -51.50   <2e-16 ***
## MacroregiaoNorte        -859.949     20.853  -41.24   <2e-16 ***
## MacroregiaoSudeste      -725.942     21.408  -33.91   <2e-16 ***
## MacroregiaoSul          -453.927     20.950  -21.67   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2326 on 191497 degrees of freedom
## Multiple R-squared:  0.4011, Adjusted R-squared:  0.4011 
## F-statistic: 1.425e+04 on 9 and 191497 DF,  p-value: < 2.2e-16