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
<- c("UF","V2005","VD4002","V2010","V2009", "V2007","VD4016", "VD4019", "VD3005","V4040","V40401","V40402", "V40403", "V20082, VD4009, VD4008", "VD4031", "VD4035") varselec
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.
<- map(2020:2021, ~ {
dados_lista_20e21 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
<- readRDS("dados_lista1.rds")
dados_lista <- function(dados) {
processar_dados <- unique(dados$Ano)
ano
|>
dados select(Ano, Trimestre, UF, UPA, V1008, V1014, V2005, VD4002, V2010, V2009, V2007, VD4016,
|>
VD4019, VD3005, V4040, V40401, V40402, V40403, V20082, CO1) filter(
>= 1958,
V20082 != 9999
V20082 |>
) mutate(
# Faixas etárias com cut (mais eficiente)
= cut(2023 - V20082,
FaixasEtárias 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,
_sexos = ifelse(V2007 == 1, mean(Homem)*100, mean(Mulher)*100),
Média= ifelse(V2007 == 1, mean(Homem)*100, 0),
MédiaHomem = ifelse(V2007 == 1, 0, mean(Mulher)*100),
MédiaMulher
Branco = as.integer(V2010 == 1),
Branco = 1L - Branco,
ñ= ifelse(V2010 == 1, mean(Branco)*100, mean(ñBranco)*100),
Média_raças = ifelse(V2010 == 1, mean(Branco)*100, 0),
MédiaBranco Branco = ifelse(V2010 == 1, 0, mean(ñBranco)*100),
Média_ñ
Renda_nominal = dados$VD4019,
RendaReal = VD4019 * CO1,
#servidor_público = is.integer(VD4008 == 1),
#Média_publicoprivado = ifelse(VD4008 == 1, mean(servidor_publico)*100),
_norte = case_when(
região%in% c(11,12,13,14,15,16,17) ~ "1", FALSE ~ "0"),
UF _nordeste = case_when(
região%in% c(21,22,23,24,25,26,27,28,29) ~ "1", FALSE ~ "0"),
UF _sudeste = case_when(
região%in% c(31,32,33,35) ~ "1", FALSE ~ "0"),
UF _sul = case_when(
região%in% c(41,42,43) ~ "1", FALSE ~ "0"),
UF _centroOeste = case_when(
região%in% c(50,51,52,53) ~ "1", FALSE ~ "0")
UF |>
)group_by(Ano) |>
mutate(
# Médias calculadas uma vez por grupo
_GeralAno = mean(VD3005, na.rm = TRUE),
EscolariadeMédia_GeralAno = mean(VD4019, na.rm = TRUE),
RendaMédia_GeralAno = mean(RendaReal, na.rm = TRUE)
RendaRealMédia|>
) ungroup()
}
# Aplicar a todos os anos
<- map(dados_lista, processar_dados) dados_processados
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
<- map(dados_processados, ~ {
dados_finais |>
.x mutate(
= paste(UPA,V1008,V1014),
Domicílio |>
) 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,
#servidor_publico
ChefeFamilia, Conjuge, Escolaridade, Renda_nominal, RendaReal ~ 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
<- map(dados_finais, ~ {
dados_filtrados |>
.x filter(
== 1,
VD4002 - V20082) >= 20, # Idade >= 20
(Ano between(VD4016, 100, 100000)
)
})
# Unir todos os anos
<- bind_rows(dados_filtrados) dados_anuais
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) ----
<- dados_anuais |>
tabela_dadosgerais 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),
casados = sum(Casados == 0, na.rm = TRUE),
qtd_ñperc_casados = (qtd_casados / qtd_obs) * 100,
casados = (qtd_ñcasados / qtd_obs) * 100,
perc_ñqtd_brancos = sum(Branco == 1, na.rm = TRUE),
brancos = sum(Branco == 0, na.rm = TRUE),
qtd_ñperc_brancos = (qtd_brancos / qtd_obs) * 100,
brancos = (qtd_ñbrancos / qtd_obs) * 100,
perc_ñ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) ----
<- dados_anuais |>
tabela_escolaridade 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 ----
<- left_join(tabela_dadosgerais, tabela_escolaridade, by = "Ano")
tabela_final
# 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)
<- list(
regioes 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 ----
<- dados_anuais |>
analise_geral 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 ----
<- dados_anuais |>
analise_estado_civil mutate(
EstadoCivil = case_when(
== 1 ~ "Casados",
Casados == 1 ~ "Ñcasados",
ñcasados == 1 & CasadosComFilhoMenor == 1 ~ "CasadosComFilho",
Casados == 1 & CasadosComFilhoMenor == 0 ~ "CasadosSemFilho"
Casados
)|>
) group_by(Ano, EstadoCivil) |>
summarise(
RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
.groups = 'drop'
)
# 3. Por Faixa Etária ----
<- dados_anuais |>
analise_idade group_by(Ano, Idade = V2009) |>
summarise(
RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
.groups = 'drop'
)
# 4. Por Região ----
<- dados_anuais |>
analise_regioes mutate(
Regiao = case_when(
%in% regioes$Norte ~ "Norte",
UF %in% regioes$Nordeste ~ "Nordeste",
UF %in% regioes$Sudeste ~ "Sudeste",
UF %in% regioes$Sul ~ "Sul",
UF %in% regioes$CentroOeste ~ "CentroOeste"
UF
)|>
) group_by(Ano, Regiao) |>
summarise(
RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
.groups = 'drop'
)
<- analise_regioes |>
centro_oeste_data filter(Regiao == "CentroOeste")
<- analise_regioes |>
nordeste_data filter(Regiao == "Nordeste")
<- analise_regioes |>
norte_data filter(Regiao == "Norte")
<- analise_regioes |>
sudeste_data filter(Regiao == "Sudeste")
<- analise_regioes |>
sul_data filter(Regiao == "Sul")
# 5. Por Estado (dentro das regiões) ----
<- dados_anuais |>
analise_estados mutate(
Regiao = case_when(
%in% regioes$Norte ~ "Norte",
UF %in% regioes$Nordeste ~ "Nordeste",
UF %in% regioes$Sudeste ~ "Sudeste",
UF %in% regioes$Sul ~ "Sul",
UF %in% regioes$CentroOeste ~ "CentroOeste"
UF
)|>
) group_by(Ano, Regiao, UF) |>
summarise(
RendaMedia = mean(RendaReal, na.rm = TRUE) |> round(2),
.groups = 'drop'
)
<- function(df, titulo) {
formatar_tabela <- df |>
colunas_para_formatar 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
<- formatar_tabela(analise_geral, "Análise Geral da Renda Real")
tabela_geral <- formatar_tabela(analise_regioes, "Renda por Região")
tabela_regioes <- formatar_tabela(centro_oeste_data, "Renda Real Média da Região Centro Oeste por Ano")
tabela_centrooeste <- formatar_tabela(nordeste_data, "Renda Real Média da Região Nordeste por Ano")
tabela_nordeste <- formatar_tabela(norte_data, "Renda Real Média da Região Norte por Ano")
tabela_norte <- formatar_tabela(sudeste_data, "Renda Real Média da Região Sudeste por Ano")
tabela_sudeste <- formatar_tabela(sul_data, "Renda Real Média da Região Sul por Ano")
tabela_sul <- formatar_tabela(analise_estados, "Renda por Estado")
tabela_estados
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
<- analise_geral |>
graficor_renda_sexo 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