| 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) |
A EVOLUÇÃO DO RENDIMENTO SALARIAL NO MERCADO DE TRABALHO
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
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