A EVOLUÇÃO DO RENDIMENTO SALARIAL NO MERCADO DE TRABALHO

Autor

Hercilio Almeida Barbosa

1. Introdução

Análise e manipulação dos microdados da Pesquisa Nacional por Amostra de Domicílios Contínua(PNADC). Passo a passo de como fazer o download dos microdados anuais da PNAD contínua de 2012 a 2023, criar médias e dummies das variáveis e gráficos e tabelas dos dados.

1.1 Dicionário

Dicionário de variáveis utilizadas na análise
Variável Descrição
UF estados
V2005 condição no domicílio
VD4002 condição de ocupação (1 = ocupado 2 = desocupado)
V2010 raça
V20082 ano de nascimento
V2009 idade (0 a 130)
V2007 sexo (1 = homem 2 = mulher)
VD3005 anos de estudo
VD4016 rendimento mensal habitual no trabalho principal (em reais)
VD4019 rendimento mensal habitual em todos os trabalhos (em reais)
V4040 tempo de emprego (categorias: 1 mês, menos de 1 ano, menos de 2 anos e 2 anos ou mais)
V40401 tempo de emprego (categorias 1 a 11, 01 mês a 11 meses)
V40402 tempo de emprego (de 1 ano a 2 anos, categorias: 00 a 11)
V40403 tempo de emprego (2 a 98 = 2 anos ou mais)


1.2 Passos iniciais

Limpando enviroment, instalando e carregando pacotes
#Limpando o environment
#rm(list = ls())


#instalando e carregando pacotes
#install.packages("PNADcIBGE")
#install.packages("dplyr")
#install.packages("gt")
#install.packages("tidyr")
#install.packages("purrr")
#install.packages("ggplot2")
library(PNADcIBGE)
library(dplyr)
library(gt)
library(tidyr)
library(purrr)
library(ggplot2)

2. Extração, Filtragem e Manipulação dos dados

2.1. Extração

Selecionando variáveis baseado no dicionário da PNAD
#selecionado as variáveis
varselec <-  c("UF","V2005","VD4002","V2010","V2009", "V2007","VD4016", "VD4019", "VD3005","V4040","V40401","V40402", "V40403", "V20082, VD4009, VD4008", "VD4031", "VD4035")
Baixando base de dados de 2012 a 2023

O código abaixo faz download e armazena os dados de todos os anos de 2012 a 2023 baixados com a função get_pnadc e realiza um loop for para não precisar ficar repetindo o código para todos os anos. O paramêtro Deflator = TRUE serve para inserir a variável para deflacionamento dos dados de remuneração.

dados_lista_20e21 <- map(2020:2021, ~ {
  get_pnadc(
    year = .x,
    interview = 5,
    design = FALSE,
    labels = FALSE,
    deflator = TRUE,
    vars = varselec
  )
}) |> set_names(paste0("PNADC", 2020:2021))

2.1. Filtragem

Utilizando novamente um loop for, para que não seja preciso repetir o mesmo código para todos os anos, porém, no caso abaixo foram utilizados vários loops for pela necessidade de criar alguns blocos de códigos e explicados, o mesmo poderia ter sido feito apenas com um loop. Os blocos abaixo estão interligados por pipes( |> ). Atenção aos # comentários nos blocos de código para entender o que acontece em cada um deles. CO1 é a variável inserida para deflacionamento quando deflator = TRUE.

# 2.1 Filtragem e Manipulação

dados_lista <- readRDS("dados_lista1.rds")
processar_dados <- function(dados) {
  ano <- unique(dados$Ano)
  
  dados |>
    select(Ano, Trimestre, UF, UPA, V1008, V1014, V2005, VD4002, V2010, V2009, V2007, VD4016, 
           VD4019, VD3005, V4040, V40401, V40402, V40403, V20082, CO1) |>
    filter(
      V20082 >= 1958, 
      V20082 != 9999
          ) |>
    mutate(
      # Faixas etárias com cut (mais eficiente)
      FaixasEtárias = cut(2023 - V20082, 
                          breaks = c(20, 29, 39, 49, 65),
                          labels = 1:4,
                          right = FALSE),
      # Dummies simplificadas
      Escolaridade = as.integer(dados$VD3005),
      Idade = as.integer(dados$V2009),
      
      Homem = as.integer(V2007 == 1),
      Mulher = 1L - Homem,
      Média_sexos = ifelse(V2007 == 1, mean(Homem)*100, mean(Mulher)*100),
      MédiaHomem = ifelse(V2007 == 1, mean(Homem)*100, 0),
      MédiaMulher = ifelse(V2007 == 1, 0, mean(Mulher)*100),
      
      Branco = as.integer(V2010 == 1),
      ñBranco = 1L - Branco,
      Média_raças = ifelse(V2010 == 1, mean(Branco)*100, mean(ñBranco)*100),
      MédiaBranco = ifelse(V2010 == 1, mean(Branco)*100, 0),
      Média_ñBranco = ifelse(V2010 == 1, 0, mean(ñBranco)*100),
      
      Renda_nominal = dados$VD4019,
      RendaReal = VD4019 * CO1,
      #servidor_público = is.integer(VD4008 == 1),
      #Média_publicoprivado = ifelse(VD4008 == 1, mean(servidor_publico)*100),
      região_norte  = case_when(
        UF %in% c(11,12,13,14,15,16,17) ~ "1", FALSE ~ "0"),
      região_nordeste  = case_when(
        UF %in% c(21,22,23,24,25,26,27,28,29) ~ "1", FALSE ~ "0"),
      região_sudeste  = case_when(
        UF %in% c(31,32,33,35) ~ "1", FALSE ~ "0"),
      região_sul  = case_when(
        UF %in% c(41,42,43) ~ "1", FALSE ~ "0"),
      região_centroOeste  = case_when(
        UF %in% c(50,51,52,53) ~ "1", FALSE ~ "0") 
    )|>
    group_by(Ano) |>
    mutate(
      # Médias calculadas uma vez por grupo
      EscolariadeMédia_GeralAno = mean(VD3005, na.rm = TRUE),
      RendaMédia_GeralAno = mean(VD4019, na.rm = TRUE),
      RendaRealMédia_GeralAno = mean(RendaReal, na.rm = TRUE)
    ) |>
    ungroup()
    }

# Aplicar a todos os anos
dados_processados <- map(dados_lista, processar_dados)

2.2. Manipulação(Criação de Dummies e Médias)

Criação das colunas de escolaridade média geral e de faixas etárias geral do banco de dados, além disso, criação de dummies e médias por sexos e por raça(branco e não branco)

Neste bloco de código é calculado a escolaridade geral do banco de dados, é criadas as faixas etárias, sendo 20 a 29 anos faixa 1, 30 a 39 faixa 2, 40 a 49 faixa 3 e 50 a 65 anos faixas 4. Também são criadas colunas dummies onde, por exemplo, na coluna homem 1 significa que aquela observação é de um indivíduo do sexo masculino e 0, o contrário. O mesmo serve para dummues com base navariável de raça.

# 2.2 Manipulação - Criação de IDs e Médias
dados_finais <- map(dados_processados, ~ {
  .x |>
    mutate(
      Domicílio = paste(UPA,V1008,V1014),
    ) |>
    group_by(Domicílio) |>
    mutate(
      ChefeFamilia = as.integer(V2005 == 1),
      Conjuge = as.integer(V2005 == 2),
      Casados = as.integer(ChefeFamilia == 1 | (Conjuge == 1 & any(ChefeFamilia == 1)) & V2009 >= 18),
      ñcasados = ifelse(Casados == 0 & V2009 >= 18, 1, 0),
      Filhos_menores = as.integer(V2005 %in% 4:6 & V2009 < 10),
      domicilio_tem_filho_menor = as.integer(any(Filhos_menores == 1)),
      CasadosComFilhoMenor = as.integer(Casados == 1 & domicilio_tem_filho_menor == 1),#TODO casados com filhos não ta funcionando
      CasadosSemFilhoMenor = as.integer(Casados == 1 & domicilio_tem_filho_menor == 0)
    ) |>
    ungroup() |>
    mutate(
      ID = interaction(V20082, V2007, sep = "_") # Mais eficiente que paste()
    ) |> 
    group_by(ID) |>
    mutate(across(c(Branco, ñBranco, Casados, ñcasados, CasadosComFilhoMenor, CasadosSemFilhoMenor,
                    ChefeFamilia, Conjuge, Escolaridade, Renda_nominal, RendaReal #servidor_publico
                    ), ~ mean(., na.rm = TRUE), .names = "Média_{.col}_ID")) |>
    ungroup()
})
Criação da colunas de renda

Na primeira parte do bloco abaixo, com variável VD4019, renda habitual dos indivíduos, é possível criar a coluna de renda média geral, renda real, multiplicando VD4019 por CO1, e também, a renda real média geral, além disso, ainda é calculado o tempo médio de emprego geral do banco de dados. Na segundo parte do bloco, são criadas as colunas dummies com base na condição de domicílio, chefe de família, conjuge, casados, não casados, filhos menores de 10 anos e casados com e sem filhos.

# Filtro final com operação vetorizada
dados_filtrados <- map(dados_finais, ~ {
  .x |>
    filter(
      VD4002 == 1,
      (Ano - V20082) >= 20, # Idade >= 20
      between(VD4016, 100, 100000)
    )
})

# Unir todos os anos
dados_anuais <- bind_rows(dados_filtrados)
Criação de ID, médias por ID e médias por faixa etária

No bloco abaixo é criada a ID com base na data de nascimento e sexo, ou seja, se um indivíduo do sexo masculino nasceu em 1990 sua ID será 19901, o mesmo exemplo para uma mulher seria a ID 19902. Com isso, é possível criar as médias por ID de todas as variáveis, como raça, estado civil, ser chefe de familia, escolaridade, renda e entre outras. Além disso, são calculadas as médias, das mesmas variáveis, mas dessa vez por faixas etárias

Resolvendo o problema da falta de dados de remuneração e ocupação de pessoas menores de 14 anos

Foi preciso primeiramente separar as pessoas menores de 14 do banco de dados principal porque ao fazer a filtragem por condição de ocupação e remuneração esses indivíduos seriam excluídos, visto que essas variáveis só captam indivíduos com 14 anos ou mais. Por fim, foi feita a filtragem de dados final do bancos de dados para indivíduos ocupados, maiores de 20 anos e renda até 100 mil.

3. Estatística Descritiva

3.1. Estatística Descritiva Geral do Banco de Dados

# DADOS GERAIS - ESTATÍSTICAS CONSOLIDADAS (VERSÃO FUNCIONAL) ----
tabela_dadosgerais <- dados_anuais |>
  group_by(Ano) |>
  summarise(
    qtd_obs = n(),
    qtd_homens = sum(V2007 == 1, na.rm = TRUE),
    qtd_mulheres = sum(V2007 == 2, na.rm = TRUE),
    perc_homens = (qtd_homens / qtd_obs) * 100,
    perc_mulheres = (qtd_mulheres / qtd_obs) * 100,
    qtd_casados = sum(Casados == 1, na.rm = TRUE),
    qtd_ñcasados = sum(Casados == 0, na.rm = TRUE),
    perc_casados = (qtd_casados / qtd_obs) * 100,
    perc_ñcasados = (qtd_ñcasados / qtd_obs) * 100,
    qtd_brancos = sum(Branco == 1, na.rm = TRUE),
    qtd_ñbrancos = sum(Branco == 0, na.rm = TRUE),
    perc_brancos = (qtd_brancos / qtd_obs) * 100,
    perc_ñbrancos = (qtd_ñbrancos / qtd_obs) * 100,
    qtd_ChefesFamilia = sum(ChefeFamilia == 1, na.rm = TRUE),
    qtd_conjuges = sum(Conjuge == 1, na.rm = TRUE),
    qtd_filhosmenores = sum(Filhos_menores == 1, na.rm = TRUE),
    .groups = 'drop'
  ) |>
  mutate(across(contains("perc"), ~ round(., 2)))

# ESCOLARIDADE (TRATAMENTO SEPARADO) ----
tabela_escolaridade <- dados_anuais |>
  count(Ano, VD3005) |>
  group_by(Ano) |>
  mutate(porcentagem = (n / sum(n)) * 100) |>
  select(-n) |>
  pivot_wider(
    names_from = VD3005,
    values_from = porcentagem,
    names_prefix = "Esc_"
  ) |>
  mutate(across(where(is.numeric), ~ round(., 2)))

# JUNÇÃO FINAL ----
tabela_final <- left_join(tabela_dadosgerais, tabela_escolaridade, by = "Ano")

# FORMATACÃO COM gt() ----
tabela_final |>
  gt() |>
  # Formatar quantidades (separador de milhar)
  fmt_number(
    columns = starts_with("qtd"),
    decimals = 0,
    sep_mark = ".",
    dec_mark = ","
  ) |>
  # Formatar porcentagens (2 decimais com %)
  fmt_number(
    columns = starts_with("perc"),
    decimals = 2,
    sep_mark = "",       # Sem separador de milhar
    dec_mark = ",",      # Vírgula como decimal
    pattern = "{x}%"     # Adiciona o símbolo de %
  ) |>
  # Formatar escolaridade (se necessário)
  fmt_number(
    columns = starts_with("Esc_"),
    decimals = 2,
    sep_mark = "",
    dec_mark = ",",
    pattern = "{x}%"
  )
Ano qtd_obs qtd_homens qtd_mulheres perc_homens perc_mulheres qtd_casados qtd_ñcasados perc_casados perc_ñcasados qtd_brancos qtd_ñbrancos perc_brancos perc_ñbrancos qtd_ChefesFamilia qtd_conjuges qtd_filhosmenores Esc_0 Esc_1 Esc_2 Esc_3 Esc_4 Esc_5 Esc_6 Esc_7 Esc_8 Esc_9 Esc_10 Esc_11 Esc_12 Esc_13 Esc_14 Esc_15 Esc_16
2012 137.308 81.123 56.185 59,08% 40,92% 92.599 44.709 67,44% 32,56% 62.055 75.253 45,19% 54,81% 67.598 33.348 0 3,05% 2,45% 1,27% 2,16% 3,15% 8,25% 5,56% 3,26% 3,41% 10,83% 2,64% 2,85% 31,29% 2,26% 2,25% 2,43% 12,89%
2013 142.922 84.204 58.718 58,92% 41,08% 97.781 45.141 68,42% 31,58% 63.316 79.606 44,30% 55,70% 71.370 35.353 0 2,96% 2,37% 1,26% 2,12% 3,04% 8,15% 5,46% 3,22% 3,57% 10,75% 2,72% 2,84% 31,31% 2,21% 2,27% 2,41% 13,35%
2014 145.780 86.082 59.698 59,05% 40,95% 99.928 45.852 68,55% 31,45% 64.626 81.154 44,33% 55,67% 72.984 36.136 0 2,86% 2,26% 1,33% 2,09% 2,82% 8,05% 5,35% 3,16% 3,39% 10,54% 2,61% 2,72% 31,43% 2,23% 2,34% 2,47% 14,34%
2015 146.364 86.245 60.119 58,93% 41,07% 101.046 45.318 69,04% 30,96% 64.056 82.308 43,76% 56,24% 73.750 36.872 0 2,91% 1,99% 1,24% 2,16% 2,85% 7,67% 5,15% 3,13% 3,45% 10,29% 2,79% 2,83% 31,24% 2,40% 2,52% 2,56% 14,82%
2016 142.001 83.379 58.622 58,72% 41,28% 98.282 43.719 69,21% 30,79% 61.341 80.660 43,20% 56,80% 71.491 37.229 0 3,02% 2,24% 1,19% 2,00% 2,57% 7,44% 4,98% 3,17% 3,41% 9,23% 2,71% 2,82% 31,73% 2,70% 2,55% 2,47% 15,76%
2017 142.842 83.236 59.606 58,27% 41,73% 98.664 44.178 69,07% 30,93% 60.837 82.005 42,59% 57,41% 71.276 38.480 0 2,61% 1,47% 1,18% 1,87% 2,68% 7,32% 5,12% 3,29% 3,61% 8,72% 2,98% 2,96% 31,55% 2,82% 2,51% 2,47% 16,85%
2018 140.122 81.324 58.798 58,04% 41,96% 96.941 43.181 69,18% 30,82% 59.073 81.049 42,16% 57,84% 69.904 38.253 0 2,20% 1,02% 1,18% 1,87% 2,49% 7,31% 4,89% 3,23% 3,64% 8,23% 2,97% 2,76% 31,87% 2,96% 2,62% 2,63% 18,13%
2019 144.612 83.850 60.762 57,98% 42,02% 98.548 46.064 68,15% 31,85% 60.008 84.604 41,50% 58,50% 70.427 40.803 0 2,14% 1,05% 1,20% 1,77% 2,49% 6,81% 4,65% 3,10% 3,52% 8,07% 2,97% 2,85% 32,56% 2,89% 2,71% 2,57% 18,65%
2022 124.761 71.802 52.959 57,55% 42,45% 84.410 40.351 67,66% 32,34% 51.925 72.836 41,62% 58,38% 60.395 35.450 0 2,62% 1,27% 1,06% 1,56% 2,16% 5,93% 4,28% 2,86% 3,17% 7,33% 2,71% 2,93% 33,48% 3,07% 2,71% 2,62% 20,24%
2023 132.511 75.733 56.778 57,15% 42,85% 91.721 40.790 69,22% 30,78% 55.142 77.369 41,61% 58,39% 65.840 38.271 0 2,43% 1,40% 0,96% 1,48% 1,96% 5,35% 4,03% 2,62% 3,07% 7,00% 2,74% 2,84% 34,46% 3,26% 2,70% 2,51% 21,20%

3.2. Estatística Descritiva Renda Real Média —-

# Definir regiões (será usado posteriormente)
regioes <- list(
  Norte = c(11,12,13,14,15,16,17),
  Nordeste = c(21,22,23,24,25,26,27,28,29),
  Sudeste = c(31,32,33,35),
  Sul = c(41,42,43),
  CentroOeste = c(50,51,52,53)
)

# 1. Métricas Gerais ----
analise_geral <- dados_anuais |> 
  group_by(Ano) |> 
  summarise(
    # Métricas básicas
    RendaMedia_Ano = mean(RendaReal, na.rm = TRUE),
    RendaMediana_Ano = median(RendaReal, na.rm = TRUE),
    
    # Por sexo
    Renda_Homens = mean(RendaReal[V2007 == 1], na.rm = TRUE),
    Renda_Mulheres = mean(RendaReal[V2007 == 2], na.rm = TRUE),
    
    # Por raça
    Renda_Brancos = mean(RendaReal[V2010 == 1], na.rm = TRUE),
    Renda_NaoBrancos = mean(RendaReal[V2010 != 1], na.rm = TRUE),
    
    # Chefes de família
    Renda_Chefes = mean(RendaReal[ChefeFamilia == 1], na.rm = TRUE),
    
    .groups = 'drop'
  ) |> 
  mutate(across(where(is.numeric), ~ round(., 2)))

# 2. Por Estado Civil ----
analise_estado_civil <- dados_anuais |> 
  mutate(
    EstadoCivil = case_when(
      Casados == 1 ~ "Casados",
      ñcasados == 1 ~ "Ñcasados",
      Casados == 1 & CasadosComFilhoMenor == 1 ~ "CasadosComFilho",
      Casados == 1 & CasadosComFilhoMenor == 0 ~ "CasadosSemFilho"
    )
  ) |> 
  group_by(Ano, EstadoCivil) |> 
  summarise(
    RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
    .groups = 'drop'
  )

# 3. Por Faixa Etária ----
analise_idade <- dados_anuais |> 
  group_by(Ano, Idade = V2009) |> 
  summarise(
    RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
    .groups = 'drop'
  )
# 4. Por Região ----
analise_regioes <- dados_anuais |> 
  mutate(
    Regiao = case_when(
      UF %in% regioes$Norte ~ "Norte",
      UF %in% regioes$Nordeste ~ "Nordeste",
      UF %in% regioes$Sudeste ~ "Sudeste",
      UF %in% regioes$Sul ~ "Sul",
      UF %in% regioes$CentroOeste ~ "CentroOeste"
    )
  ) |> 
  group_by(Ano, Regiao) |> 
  summarise(
    RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
    .groups = 'drop'
  )

centro_oeste_data <- analise_regioes |>
  filter(Regiao == "CentroOeste")

nordeste_data <- analise_regioes |>
  filter(Regiao == "Nordeste")

norte_data <- analise_regioes |>
  filter(Regiao == "Norte")

sudeste_data <- analise_regioes |>
  filter(Regiao == "Sudeste")

sul_data <- analise_regioes |>
  filter(Regiao == "Sul")

# 5. Por Estado (dentro das regiões) ----
analise_estados <- dados_anuais |> 
  mutate(
    Regiao = case_when(
      UF %in% regioes$Norte ~ "Norte",
      UF %in% regioes$Nordeste ~ "Nordeste",
      UF %in% regioes$Sudeste ~ "Sudeste",
      UF %in% regioes$Sul ~ "Sul",
      UF %in% regioes$CentroOeste ~ "CentroOeste"
    )
  ) |> 
  group_by(Ano, Regiao, UF) |> 
  summarise(
    RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
    .groups = 'drop'
  )
formatar_tabela <- function(df, titulo) {
  colunas_para_formatar <- df |>
    select(
      where(is.numeric),
      -any_of(c("Ano", "UF"))
    ) |>
    names()
  
  df |>
    gt() |>
    tab_header(title = titulo) |>
    fmt_number(
      columns = all_of(colunas_para_formatar),
      decimals = 2,
      sep_mark = ".",
      dec_mark = ","
    ) |>
    tab_style(
      style = cell_text(weight = "bold"),
      locations = cells_column_labels()
    )
}



# Gerar tabelas
tabela_geral <- formatar_tabela(analise_geral, "Análise Geral da Renda Real")
tabela_regioes <- formatar_tabela(analise_regioes, "Renda por Região")
tabela_centrooeste <- formatar_tabela(centro_oeste_data, "Renda Real Média da Região Centro Oeste por Ano")
tabela_nordeste <- formatar_tabela(nordeste_data, "Renda Real Média da Região Nordeste por Ano")
tabela_norte <- formatar_tabela(norte_data, "Renda Real Média da Região Norte por Ano")
tabela_sudeste <- formatar_tabela(sudeste_data, "Renda Real Média da Região Sudeste por Ano")
tabela_sul <- formatar_tabela(sul_data, "Renda Real Média da Região Sul por Ano")
tabela_estados <- formatar_tabela(analise_estados, "Renda por Estado")

tabela_geral
Análise Geral da Renda Real
Ano RendaMedia_Ano RendaMediana_Ano Renda_Homens Renda_Mulheres Renda_Brancos Renda_NaoBrancos Renda_Chefes
2012 1.377,89 835,21 1.504,82 1.194,62 1.730,00 1.087,53 1.597,67
2013 1.515,58 931,98 1.669,39 1.295,00 1.913,51 1.199,08 1.741,88
2014 1.639,93 1.003,71 1.792,27 1.420,26 2.061,88 1.303,91 1.867,86
2015 1.736,92 1.089,30 1.889,33 1.518,28 2.193,37 1.381,69 1.970,46
2016 1.848,97 1.186,64 1.993,19 1.643,84 2.367,96 1.454,28 2.057,40
2017 1.943,62 1.202,71 2.098,21 1.727,73 2.493,42 1.535,73 2.169,03
2018 2.082,87 1.281,10 2.249,34 1.852,63 2.672,03 1.653,46 2.322,78
2019 2.142,13 1.316,27 2.315,91 1.902,31 2.768,53 1.697,83 2.368,87
2022 2.613,79 1.582,90 2.838,92 2.308,55 3.359,05 2.082,49 2.885,61
2023 2.838,62 1.787,66 3.063,36 2.538,86 3.656,77 2.255,52 3.101,52
#tabela_regioes
tabela_centrooeste
Renda Real Média da Região Centro Oeste por Ano
Ano Regiao RendaMedia
2012 CentroOeste 1.708,63
2013 CentroOeste 1.865,43
2014 CentroOeste 2.022,34
2015 CentroOeste 2.139,63
2016 CentroOeste 2.257,13
2017 CentroOeste 2.370,07
2018 CentroOeste 2.466,55
2019 CentroOeste 2.527,44
2022 CentroOeste 3.230,42
2023 CentroOeste 3.508,62
tabela_norte
Renda Real Média da Região Norte por Ano
Ano Regiao RendaMedia
2012 Norte 1.297,20
2013 Norte 1.346,59
2014 Norte 1.457,21
2015 Norte 1.580,07
2016 Norte 1.612,21
2017 Norte 1.655,48
2018 Norte 1.794,13
2019 Norte 1.797,09
2022 Norte 2.171,13
2023 Norte 2.436,04
tabela_nordeste
Renda Real Média da Região Nordeste por Ano
Ano Regiao RendaMedia
2012 Nordeste 943,92
2013 Nordeste 1.064,74
2014 Nordeste 1.144,73
2015 Nordeste 1.205,05
2016 Nordeste 1.282,18
2017 Nordeste 1.339,14
2018 Nordeste 1.422,65
2019 Nordeste 1.461,89
2022 Nordeste 1.750,60
2023 Nordeste 1.890,85
tabela_sudeste
Renda Real Média da Região Sudeste por Ano
Ano Regiao RendaMedia
2012 Sudeste 1.527,16
2013 Sudeste 1.698,92
2014 Sudeste 1.844,15
2015 Sudeste 1.974,14
2016 Sudeste 2.077,12
2017 Sudeste 2.198,99
2018 Sudeste 2.360,13
2019 Sudeste 2.434,79
2022 Sudeste 2.931,42
2023 Sudeste 3.219,83
tabela_sul
Renda Real Média da Região Sul por Ano
Ano Regiao RendaMedia
2012 Sul 1.635,42
2013 Sul 1.786,76
2014 Sul 1.964,98
2015 Sul 2.034,85
2016 Sul 2.217,99
2017 Sul 2.345,70
2018 Sul 2.485,48
2019 Sul 2.587,28
2022 Sul 3.203,65
2023 Sul 3.383,29
tabela_estados
Renda por Estado
Ano Regiao UF RendaMedia
2012 CentroOeste 50 1.451,13
2012 CentroOeste 51 1.487,02
2012 CentroOeste 52 1.505,09
2012 CentroOeste 53 2.659,07
2012 Nordeste 21 790,41
2012 Nordeste 22 894,63
2012 Nordeste 23 891,59
2012 Nordeste 24 1.013,61
2012 Nordeste 25 970,98
2012 Nordeste 26 1.114,93
2012 Nordeste 27 919,94
2012 Nordeste 28 1.046,28
2012 Nordeste 29 975,75
2012 Norte 11 1.365,30
2012 Norte 12 1.367,02
2012 Norte 13 1.310,46
2012 Norte 14 1.638,43
2012 Norte 15 1.124,07
2012 Norte 16 1.394,47
2012 Norte 17 1.252,10
2012 Sudeste 31 1.345,75
2012 Sudeste 32 1.426,82
2012 Sudeste 33 1.523,17
2012 Sudeste 35 1.750,05
2012 Sul 41 1.570,94
2012 Sul 42 1.642,31
2012 Sul 43 1.689,03
2013 CentroOeste 50 1.562,46
2013 CentroOeste 51 1.639,10
2013 CentroOeste 52 1.614,73
2013 CentroOeste 53 3.022,22
2013 Nordeste 21 877,21
2013 Nordeste 22 1.094,81
2013 Nordeste 23 1.006,13
2013 Nordeste 24 1.140,86
2013 Nordeste 25 1.053,45
2013 Nordeste 26 1.268,07
2013 Nordeste 27 1.015,72
2013 Nordeste 28 1.254,88
2013 Nordeste 29 1.075,97
2013 Norte 11 1.422,16
2013 Norte 12 1.363,49
2013 Norte 13 1.367,23
2013 Norte 14 1.739,38
2013 Norte 15 1.136,35
2013 Norte 16 1.641,30
2013 Norte 17 1.315,85
2013 Sudeste 31 1.488,62
2013 Sudeste 32 1.633,70
2013 Sudeste 33 1.674,01
2013 Sudeste 35 1.950,35
2013 Sul 41 1.801,52
2013 Sul 42 1.779,21
2013 Sul 43 1.779,57
2014 CentroOeste 50 1.790,49
2014 CentroOeste 51 1.794,23
2014 CentroOeste 52 1.768,27
2014 CentroOeste 53 3.093,95
2014 Nordeste 21 893,37
2014 Nordeste 22 1.132,26
2014 Nordeste 23 1.044,17
2014 Nordeste 24 1.214,11
2014 Nordeste 25 1.234,77
2014 Nordeste 26 1.492,91
2014 Nordeste 27 1.124,65
2014 Nordeste 28 1.275,73
2014 Nordeste 29 1.151,08
2014 Norte 11 1.520,53
2014 Norte 12 1.510,24
2014 Norte 13 1.457,54
2014 Norte 14 1.654,92
2014 Norte 15 1.262,70
2014 Norte 16 1.718,09
2014 Norte 17 1.531,85
2014 Sudeste 31 1.564,58
2014 Sudeste 32 1.775,00
2014 Sudeste 33 1.834,71
2014 Sudeste 35 2.154,92
2014 Sul 41 2.005,28
2014 Sul 42 1.916,49
2014 Sul 43 1.978,04
2015 CentroOeste 50 1.774,70
2015 CentroOeste 51 1.815,94
2015 CentroOeste 52 1.797,52
2015 CentroOeste 53 3.567,63
2015 Nordeste 21 965,06
2015 Nordeste 22 1.238,50
2015 Nordeste 23 1.144,77
2015 Nordeste 24 1.360,48
2015 Nordeste 25 1.392,35
2015 Nordeste 26 1.415,20
2015 Nordeste 27 1.167,05
2015 Nordeste 28 1.279,02
2015 Nordeste 29 1.184,48
2015 Norte 11 1.678,65
2015 Norte 12 1.708,01
2015 Norte 13 1.566,09
2015 Norte 14 1.883,08
2015 Norte 15 1.299,07
2015 Norte 16 1.975,84
2015 Norte 17 1.597,89
2015 Sudeste 31 1.675,75
2015 Sudeste 32 1.908,56
2015 Sudeste 33 1.992,67
2015 Sudeste 35 2.276,76
2015 Sul 41 1.982,32
2015 Sul 42 2.061,63
2015 Sul 43 2.056,07
2016 CentroOeste 50 2.040,64
2016 CentroOeste 51 2.009,52
2016 CentroOeste 52 1.899,12
2016 CentroOeste 53 3.465,09
2016 Nordeste 21 1.073,89
2016 Nordeste 22 1.310,02
2016 Nordeste 23 1.201,58
2016 Nordeste 24 1.411,30
2016 Nordeste 25 1.378,35
2016 Nordeste 26 1.521,77
2016 Nordeste 27 1.246,73
2016 Nordeste 28 1.480,56
2016 Nordeste 29 1.243,09
2016 Norte 11 1.679,61
2016 Norte 12 1.648,82
2016 Norte 13 1.508,31
2016 Norte 14 2.068,01
2016 Norte 15 1.387,70
2016 Norte 16 2.081,50
2016 Norte 17 1.646,32
2016 Sudeste 31 1.708,30
2016 Sudeste 32 2.017,24
2016 Sudeste 33 2.124,51
2016 Sudeste 35 2.428,44
2016 Sul 41 2.195,77
2016 Sul 42 2.174,71
2016 Sul 43 2.290,31
2017 CentroOeste 50 2.066,42
2017 CentroOeste 51 2.144,92
2017 CentroOeste 52 2.072,26
2017 CentroOeste 53 3.709,38
2017 Nordeste 21 1.131,09
2017 Nordeste 22 1.329,02
2017 Nordeste 23 1.316,30
2017 Nordeste 24 1.389,73
2017 Nordeste 25 1.556,21
2017 Nordeste 26 1.545,46
2017 Nordeste 27 1.238,61
2017 Nordeste 28 1.475,22
2017 Nordeste 29 1.297,82
2017 Norte 11 1.865,85
2017 Norte 12 1.671,02
2017 Norte 13 1.561,64
2017 Norte 14 1.987,33
2017 Norte 15 1.433,48
2017 Norte 16 2.152,10
2017 Norte 17 1.637,92
2017 Sudeste 31 1.846,01
2017 Sudeste 32 2.164,95
2017 Sudeste 33 2.268,69
2017 Sudeste 35 2.509,42
2017 Sul 41 2.320,11
2017 Sul 42 2.373,04
2017 Sul 43 2.338,79
2018 CentroOeste 50 2.250,26
2018 CentroOeste 51 2.291,69
2018 CentroOeste 52 2.051,59
2018 CentroOeste 53 3.752,98
2018 Nordeste 21 1.213,75
2018 Nordeste 22 1.459,10
2018 Nordeste 23 1.332,47
2018 Nordeste 24 1.486,61
2018 Nordeste 25 1.589,08
2018 Nordeste 26 1.595,40
2018 Nordeste 27 1.427,29
2018 Nordeste 28 1.593,87
2018 Nordeste 29 1.389,71
2018 Norte 11 2.070,38
2018 Norte 12 1.932,96
2018 Norte 13 1.402,16
2018 Norte 14 2.146,61
2018 Norte 15 1.656,03
2018 Norte 16 2.041,72
2018 Norte 17 2.042,13
2018 Sudeste 31 1.928,38
2018 Sudeste 32 2.190,75
2018 Sudeste 33 2.525,58
2018 Sudeste 35 2.693,27
2018 Sul 41 2.469,90
2018 Sul 42 2.414,60
2018 Sul 43 2.577,72
2019 CentroOeste 50 2.332,13
2019 CentroOeste 51 2.253,51
2019 CentroOeste 52 2.100,91
2019 CentroOeste 53 3.856,25
2019 Nordeste 21 1.235,77
2019 Nordeste 22 1.456,36
2019 Nordeste 23 1.488,12
2019 Nordeste 24 1.561,05
2019 Nordeste 25 1.655,32
2019 Nordeste 26 1.644,67
2019 Nordeste 27 1.366,75
2019 Nordeste 28 1.479,53
2019 Nordeste 29 1.408,27
2019 Norte 11 1.985,34
2019 Norte 12 1.898,80
2019 Norte 13 1.591,06
2019 Norte 14 2.095,30
2019 Norte 15 1.555,97
2019 Norte 16 2.058,82
2019 Norte 17 2.054,28
2019 Sudeste 31 1.950,06
2019 Sudeste 32 2.336,21
2019 Sudeste 33 2.639,72
2019 Sudeste 35 2.766,64
2019 Sul 41 2.592,80
2019 Sul 42 2.594,13
2019 Sul 43 2.574,83
2022 CentroOeste 50 2.896,59
2022 CentroOeste 51 3.025,81
2022 CentroOeste 52 2.796,24
2022 CentroOeste 53 4.701,83
2022 Nordeste 21 1.606,30
2022 Nordeste 22 1.820,49
2022 Nordeste 23 1.612,44
2022 Nordeste 24 1.898,39
2022 Nordeste 25 2.039,25
2022 Nordeste 26 1.913,29
2022 Nordeste 27 1.678,33
2022 Nordeste 28 1.908,84
2022 Nordeste 29 1.626,71
2022 Norte 11 2.455,05
2022 Norte 12 2.312,55
2022 Norte 13 1.979,26
2022 Norte 14 2.261,46
2022 Norte 15 1.955,21
2022 Norte 16 2.180,83
2022 Norte 17 2.585,44
2022 Sudeste 31 2.458,38
2022 Sudeste 32 2.738,86
2022 Sudeste 33 3.316,55
2022 Sudeste 35 3.256,36
2022 Sul 41 3.002,54
2022 Sul 42 3.320,19
2022 Sul 43 3.271,16
2023 CentroOeste 50 3.084,78
2023 CentroOeste 51 3.415,58
2023 CentroOeste 52 3.116,97
2023 CentroOeste 53 4.807,98
2023 Nordeste 21 1.678,09
2023 Nordeste 22 1.925,85
2023 Nordeste 23 1.759,41
2023 Nordeste 24 2.296,49
2023 Nordeste 25 2.147,22
2023 Nordeste 26 1.943,81
2023 Nordeste 27 1.973,90
2023 Nordeste 28 1.926,28
2023 Nordeste 29 1.795,73
2023 Norte 11 2.795,73
2023 Norte 12 2.293,27
2023 Norte 13 2.182,27
2023 Norte 14 2.716,31
2023 Norte 15 2.214,05
2023 Norte 16 2.861,48
2023 Norte 17 2.709,34
2023 Sudeste 31 2.748,28
2023 Sudeste 32 3.051,33
2023 Sudeste 33 3.524,60
2023 Sudeste 35 3.520,32
2023 Sul 41 3.235,12
2023 Sul 42 3.429,67
2023 Sul 43 3.469,97

3.3. Estatística Descritiva Gráfica

# Gráfico usando ggplot2
graficor_renda_sexo <- analise_geral |> 
  pivot_longer(
    cols = c(Renda_Homens, Renda_Mulheres),
    names_to = "Sexo",
    values_to = "RendaReal"
  ) |> 
  mutate(Sexo = factor(Sexo, 
                       levels = c("Renda_Homens", "Renda_Mulheres"),
                       labels = c("Homens", "Mulheres"))) |> 
  ggplot(aes(x = Ano, y = Renda, color = Sexo, group = Sexo)) +
  geom_line(size = 1.2) +
  geom_point(size = 3) +
  scale_y_continuous(labels = scales::label_number(big.mark = ".", decimal.mark = ",", prefix = "R$ ")) +
  labs(title = "Evolução da Renda Anual por Sexo",
       x = "Ano",
       y = "Renda Real Média",
       color = "Sexo") +
  theme_minimal() +
  theme(
    legend.position = "top",
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text = element_text(size = 10),
    axis.title = element_text(size = 12)
  )
# Gráfico por regiões
analise_regioes |> 
  drop_na(Regiao) |>  # Remove eventuais valores não categorizados
  mutate(Regiao = factor(Regiao, 
                        levels = c("Norte", "Nordeste", "Sudeste", "Sul", "CentroOeste"),
                        labels = c("Norte", "Nordeste", "Sudeste", "Sul", "Centro-Oeste"))) |> 
  ggplot(aes(x = Ano, y = RendaMedia, color = Regiao, group = Regiao)) +
  geom_line(size = 1.2) +
  geom_point(size = 3) +
  scale_y_continuous(labels = scales::label_number(big.mark = ".", decimal.mark = ",", prefix = "R$ ")) +
  scale_color_brewer(palette = "Dark2") +  # Paleta de cores diferenciada
  labs(title = "Evolução da Renda Média por Região",
       x = "Ano",
       y = "Renda Média",
       color = "Região") +
  theme_minimal() +
  theme(
    legend.position = "top",
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text = element_text(size = 10),
    axis.title = element_text(size = 12),
    legend.title = element_text(face = "bold")
  ) +
  guides(color = guide_legend(nrow = 1))  # Legenda em linha única

4. Análise Econométrica