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

Author

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")
library(PNADcIBGE)
library(dplyr)
library(gt)

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")
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.

for (ano in 2020:2021) {
  assign(
    paste0("PNADC", ano),
    get_pnadc(
      year = ano,
      interview =  1,
      design = FALSE,
      labels = FALSE,
      deflator = TRUE,
      vars = varselec
    )
  )
}

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.

# criação do loop for
for (ano in 2022:2023) {
  
  dados_PNAD <- get(paste0("PNADC", ano))

  dados_PNAD <- dados_PNAD |> 
    # selecionando as variáveis desejadas
    select(
      Ano, Trimestre, UF, UPA, V1008, V1014, V2005, VD4002, V2010, V20082, 
      V2007, V2009, VD4016, VD4019, VD3005, V4040, V40401, V40402, V40403, CO1
    )|>
    # filtrando por data de nascimento
    filter(
      V20082 >= 1958 & 
      V20082 != 9999  
    )
  assign(paste0("1dados_PNAD", ano), dados_PNAD)
}

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.

for (ano in 2012:2023) {
  if (ano == 2020 || ano == 2021){
    next
  }
  dados_PNAD <- get(paste0("dados_PNAD", ano))

  dados_PNAD <- dados_PNAD |> 
    # Criando as colunas de Escolaridade Média Geral e Faixas Etárias
    mutate(
      EscolariadeMédia_GERAL = mean(as.numeric(VD3005), na.rm = TRUE), 
      FaixasEtárias = ifelse(V20082 >= 1960 & V20082 <= 1974, 4, ifelse(
                      V20082 >= 1975 & V20082 <= 1984, 3, ifelse(
                      V20082 >= 1985 & V20082 <= 1994, 2, ifelse(
                      V20082 >= 1995 & V20082 <= 2004, 1, NA))))
    )|> 
    # criando colunas de dummies e médias para cada sexo
    mutate(
      Homem = ifelse(V2007 == 1, 1, 0),
      Mulher = ifelse(V2007 == 1, 0, 1),
      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)
    )|> 
    # criando colunas de dummies e médias para brancos e não brancos
    mutate(
      Branco = ifelse(V2010 == 1, 1, 0),
      ñBranco = ifelse(V2010 == 1, 0, 1),
      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)
    )
  assign(paste0("2dados_PNAD", ano), dados_PNAD)
}
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.

for (ano in 2012:2023) {
if (ano == 2020 || ano == 2021){
  next
}  
  dados_PNAD <- get(paste0("2dados_PNAD", ano))
  
  dados_PNAD <- dados_PNAD |> 
    # criando coluna de média real
    mutate(
      VD4019real = VD4019 * CO1,
      RendaMédia_GERAL = mean(VD4019, na.rm = TRUE),
      RendaRealMédia_GERAL = mean(VD4019real, na.rm = TRUE),
      TempoMédioEmprego_GERAL = mean(V40403, na.rm = TRUE),
      #criando variável de domicílio com base nas 3 variáveis abaixo
      Domicílio = paste0(UPA, V1008, V1014)
    )|>
    # criando colunas de dummies pela condição de domicílio
    group_by(Domicílio) |>
    mutate(
      ChefeFamilia = ifelse(V2005 == 1, 1, 0),
      Conjuge = ifelse(V2005 == 2, 1, 0),
      Casados = ifelse(ChefeFamilia == 1 | (Conjuge == 1 & any(ChefeFamilia == 1)) & V2009 >= 18, 1, 0),
      ñcasados = ifelse(Casados == 0 & V2009 >= 18, 1, 0),
      Filhos_menores = ifelse(V2005 >= 4 & V2005 <= 6 & V2009 < 10, 1, 0),
      CasadosComFilhoMenor = ifelse(Casados == 1 & any(Filhos_menores == 1), 1, 0),
      CasadosSemFilhoMenor = ifelse(Casados == 1 & !any(Filhos_menores == 1), 1, 0)
    )|>
    ungroup() |> 
    mutate( #TODO corrigir a média estado civil(tem alguma coisa errada com esse code block pq os dados não estão batendo)
      média_estadocivil = ifelse(Casados == 1, mean(Casados, na.rm = TRUE)*100, mean(ñcasados, na.rm = TRUE)*100), 
      média_CasadosComFilhorMenor = ifelse(CasadosComFilhoMenor==1, mean(CasadosComFilhoMenor, na.rm = TRUE)*100, 
                                           mean(CasadosSemFilhoMenor, na.rm = TRUE)*100)
    )
assign(paste0("3dados_PNAD", ano), dados_PNAD)
}
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

for (ano in 2012:2023) {
if (ano == 2020 || ano == 2021){
  next
}
dados_PNAD <- get(paste0("3dados_PNAD", ano))
  # Criando ID com ano de nascimento e sexo
  dados_PNAD$ID <- apply(dados_PNAD[, c("V20082", "V2007")], 1, paste, collapse = "")
    
  # Médias por ID
  dados_PNAD <- dados_PNAD |> 
    group_by(ID) |> 
    mutate(
      MédiaBranco_ID = mean(Branco, na.rm = TRUE),
      MédiaÑbranco_ID = mean(ñBranco, na.rm = TRUE),
      MédiaCasados_ID = mean(Casados, na.rm = TRUE),
      MédiaÑcasados_ID = mean(ñcasados, na.rm = TRUE),
      ComFilho_ID = mean(CasadosComFilhoMenor, na.rm = TRUE),
      SemFilho_ID = mean(CasadosSemFilhoMenor, na.rm = TRUE),
      MédiaConjuge_ID = mean(Conjuge, na.rm = TRUE),
      MédiaChefeFamilia_ID = mean(ChefeFamilia, na.rm = TRUE),
      EscolaridadeMédia_ID = mean(VD3005, na.rm = TRUE),
      RendaMédia_ID = mean(VD4019, na.rm = TRUE),
      RendaMédiaReal_ID = mean(VD4019real, na.rm = TRUE),
      TempoMédioEmprego_ID = mean(V40403, na.rm = TRUE)
      ) |>
    ungroup()|>
    group_by(
      FaixasEtárias
       )|>
    mutate(
      MédiaBranco_FaixaEtária = mean(Branco, na.rm = TRUE),
      MédiaÑbranco_FaixaEtária = mean(ñBranco, na.rm = TRUE),
      MédiaCasados_FaixaEtária = mean(Casados, na.rm = TRUE),
      MédiaÑcasados_FaixaEtária = mean(ñcasados, na.rm = TRUE),
      ComFilho_FaixaEtária = mean(CasadosComFilhoMenor, na.rm = TRUE),
      SemFilho_FaixaEtária = mean(CasadosSemFilhoMenor, na.rm = TRUE),
      MédiaConjuge_FaixaEtária = mean(Conjuge, na.rm = TRUE),
      MédiaChefeFamilia_FaixaEtária = mean(ChefeFamilia, na.rm = TRUE),
      EscolaridadeMédia_FaixaEtária = mean(VD3005, na.rm = TRUE),
      RendaMédia_FaixaEtária = mean(VD4019, na.rm = TRUE),
      RendaMédiaReal_FaixaEtária = mean(VD4019real, na.rm = TRUE),
      TempoMédioEmprego_FaixaEtária = mean(V40403, na.rm = TRUE)
       )|>
    ungroup()
assign(paste0("4dados_PNAD", ano), dados_PNAD)
}
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.

dados_lista <- list()
 
for (ano in 2012:2023) {
if (ano == 2020 || ano == 2021){
  next
}   
  dados_PNAD <- get(paste0("4dados_PNAD", ano))
  # Filtrando dados pela condição de ocupação, nascimento e renda
  dados_PNAD <- dados_PNAD |> 
    filter(
      VD4002 == 1 &
      V20082 <= 2003 &
      VD4019 <= 100000
    )
  # Adicionando os dados filtrados na lista
  dados_lista[[paste0("dadosfiltrados", ano)]] <- dados_PNAD
}


# Salvando os dados dos anos em um único objeto
dados_anuais <- bind_rows(dados_lista)

#unique(dados_anuais$Ano)

3. Estatística Descritiva

3.1. Estatística Descritiva Geral do Banco de Dados

#ESTATÍSTICA DESCRITIVA

#evitar notação científica nos resultados da estatística descritiva 
options(scipen = 9999)
options(max.print = 100000)

# DADOS GERAIS DAS OBSERVAÇÕES ----
# quantidade de observações
qtd_obs <- nrow(dados_anuais)

#quantidade de observações por ano
qtd_obsANO <- dados_anuais |>
select(
  Ano
)|>
group_by(
  Ano
)|>
summarise(
  qtd_obs = n(), .groups = 'drop'
)
# quantidades e porcentagem por sexo
dados_sexos <- dados_anuais |> 
  group_by(
    Ano, V2007
  ) |>    
  summarise(
    quantidade = n(), .groups = 'drop'
  ) |> 
  group_by(
    Ano
  ) |> 
  mutate(
    porcentagem = (quantidade/sum(quantidade))*100,
    sexo = ifelse(V2007==2,"Mulheres", "Homens")
  ) |> 
  ungroup()



dados_homens <- dados_sexos |> 
  filter(
    sexo == 'Homens'
  ) |> 
  select(
    -V2007
  )


qtd_homens <- dados_homens |> 
  select(
    -porcentagem, -sexo
  )|> 
  rename(
    qtd_homens = quantidade
  )

dados_mulheres <- dados_sexos |>  
  filter(
    sexo == 'Mulheres'
  )|> 
  select(
    -V2007
  )


qtd_mulheres <- dados_mulheres |> 
  select(
    -porcentagem, -sexo
  )|> 
  rename(
    qtd_mulheres = quantidade
  )
# quantidade e porcentagem por estado conjugal
dados_estadocivil <- dados_anuais |> 
    group_by(
      Ano, Casados
    )|>    
    summarise(
      quantidade = n(), .groups = 'drop'
    ) |> 
    group_by(
      Ano, Casados
    ) |> 
    mutate(
      porcentagem = (quantidade/sum(quantidade))*100,
      EstadoCivil = ifelse(Casados==1,"Casados", "Ñcasados")
    )|>
    ungroup()


casados <- dados_estadocivil|>
  filter(
    EstadoCivil == "Casados"
  )|> 
  select(
    -Casados
  )

qtd_casados <- casados |> 
  select(
    -porcentagem, -EstadoCivil
  )|> 
  rename(
    qtd_casados = quantidade
  )

ñcasados <-  dados_estadocivil|>
  filter(
    EstadoCivil == "Ñcasados"
  )|> 
  select(
    -Casados
  )

qtd_ñcasados <- ñcasados |> 
  select(
    -porcentagem, -EstadoCivil
  )|> 
  rename(
    qtd_ñcasados = quantidade
  )
# quantidade e porcentagem de brancos e ñbrancos
dados_raças <- dados_anuais |> 
    group_by(
      Ano, Branco
    ) |>    
    summarise(
      quantidade = n(), .groups = 'drop'
    ) |> 
    group_by(
      Ano
    ) |> 
    mutate(
      porcentagem = (quantidade/sum(quantidade))*100,
      Raça = ifelse(Branco==1,"Branco", "Ñbranco")
    ) |> 
    ungroup()


brancos <- dados_raças|>
  filter(
    Raça == "Branco"
  ) |> 
  select(
   -Branco,
  )

qtd_brancos <- brancos |> 
  filter(
    Raça == "Branco"
  ) |> 
  select(
    -Raça, -porcentagem
  ) |> 
  rename(
    qtd_brancos = quantidade
  )

ñbrancos <- dados_raças|>
  filter(
    Raça == "Ñbranco"
  )|> 
  select(
   -Branco
  )

qtd_ñbrancos <- ñbrancos |> 
  filter(
    Raça == "Ñbranco"
  ) |> 
  select(
    -Raça, -porcentagem
  )|> 
  rename(
    qtd_ñbrancos = quantidade
  )
# quantidade e porcentagem de chefes de familia
qtd_chefeFamilia <- dados_anuais|>
  filter(
    ChefeFamilia == 1
  ) |> 
  group_by(
    Ano
  )|>
  summarise(
    qtd_ChefesFamilia = n(), .groups = 'drop'
  )


# quantidade e porcentagem de conjuges
qtd_conjuges <- dados_anuais|>
  filter(
    Conjuge == 1
  )|>
  group_by(
    Ano
  )|>
  summarise(
    qtd_conjuges = n(), .groups = 'drop'
  )



# quantidade e porcentagem de filhos menores de 10 anos
qtd_filhosmenores <- dados_anuais |> 
  filter(
    Filhos_menores == 1
  ) |> 
  group_by(
    Ano
  ) |>
  summarise(
    qtd_filhosmenores = n(), .groups = 'drop' 
  ) 
  # quantidade e porcentagens de pessoas a dependar da escolaridade
qtd_escolaridade <- dados_anuais |> 
  group_by(
    Ano, VD3005
  ) |> 
  summarise(
    quantidade = n(), .groups = 'drop'  # Removendo os grupos após a sumarização
  ) |> 
  group_by(
    Ano
  ) |>  # Reagrupando por Ano para calcular a porcentagem corretamente
  mutate(
    porcentagem = (quantidade / sum(quantidade) * 100)
  )


# # Pivotando o dataframe para ter uma linha por Ano e as porcentagens das escolaridades como colunas
# qtd_escolaridade <- qtd_escolaridade |>
#   pivot_wider(
#     names_from = VD3005,  # As escolaridades vão virar o nome das colunas
#     values_from = porcentagem,  # A porcentagem será o valor nas novas colunas
#     names_prefix = "escolaridade_"  # Prefixo para o nome das colunas
#   )
#tabela dados gerais das observações
dfs_dadosgerais <- list(qtd_obsANO, qtd_homens, qtd_mulheres, qtd_casados,
                     qtd_ñcasados, qtd_brancos, qtd_ñbrancos, 
                     qtd_chefeFamilia, qtd_conjuges)

tabela_dadosgerais <- Reduce(function(x, y) full_join(x, y, by = "Ano"), dfs_dadosgerais)

# Arredondando todas as colunas numéricas para 2 casas decimais
tabela_dadosgerais <- tabela_dadosgerais |>
  mutate(across(where(is.numeric), ~ round(.x, 2))) 

tabela_dadosgerais |> 
  gt()
Ano qtd_obs qtd_homens qtd_mulheres qtd_casados qtd_ñcasados qtd_brancos qtd_ñbrancos qtd_ChefesFamilia qtd_conjuges
2012 149109 87890 61219 100015 49094 66468 82641 69045 34691
2013 154058 90600 63458 105557 48501 67396 86662 72689 36530
2014 156043 92171 63872 107825 48218 68381 87662 74217 37192
2015 155881 91824 64057 109340 46541 67562 88319 74877 37858
2016 149579 87959 61620 107726 41853 64020 85559 72560 38031
2017 150082 87609 62473 108777 41305 63326 86756 72341 39167
2018 146850 85247 61603 107393 39457 61277 85573 71009 38933
2019 151161 87667 63494 110851 40310 62116 89045 71618 41511
2022 127232 73169 54063 95214 32018 52740 74492 60969 35725
2023 133135 75990 57145 103301 29834 55260 77875 66206 38422

3.2. Estatística Descritiva Renda Real Média

# renda real total por ano

rendareal <- dados_anuais |> 
  select(
    Ano, VD4019real
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    SomaRendaReal = sum(VD4019real, na.rm = TRUE), .groups = 'drop'
  )


# renda real média por ano
RendaReal_Média_Ano <- dados_anuais |> 
  select(
    Ano, VD4019real
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    RendaReal_MédiaAno = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )

#mediana da renda real por ano
mediana_rendareal <- dados_anuais |> 
  select(
    Ano, VD4019real
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    mediana = median(VD4019real, na.rm = TRUE)
  )
#renda média real dos homens
RendaReal_Média_Homens <- dados_anuais |> 
  select(
    Ano, V2007, VD4019real
  ) |> 
  filter(
    V2007 == 1
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    RendaMédia_Homens = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )

#renda média real das mulheres
RendaReal_Média_Mulheres <- dados_anuais |> 
  select(
    Ano, V2007, VD4019real
  ) |> 
  filter(
    V2007 == 2
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    RendaMédia_Mulheres = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )


# renda real média anual por sexo
RendaRealMédia_sexos <- dados_anuais |> 
  select(
    Ano, V2007, VD4019real
  ) |> 
  group_by(
    Ano, 
    Sexo = case_when(
    V2007 == 1 ~ "Homens",
    V2007 == 2 ~ "Mulheres"
  )) |> 
  summarise(RendaMédia_sexos = mean(VD4019real, na.rm = TRUE), .groups = 'drop')
#renda real média por id

RendaReal_Média_ID <- dados_anuais |> 
  select(
    Ano, ID, VD4019real
  ) |> 
  group_by(
    Ano, ID
  ) |> 
  summarise(
    RendaMédiaReal_ID = mean(VD4019real, na.rm = TRUE), .groups = 'drop'
  )
# renda real média branco por ano
RendaReal_Média_Brancos <- dados_anuais |> 
  select(
    Ano, V2010, VD4019real
  ) |> 
  filter(
    V2010 == 1
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    RendaMédia_Brancos = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )


# renda real média não branco por ano
RendaReal_Média_ñBrancos <- dados_anuais |> 
  select(
    Ano, V2010, VD4019real
  ) |> 
  filter(
    V2010 != 1
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    RendaMédia_ñBrancos = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )
# renda real média anual por estado conjugal
RendaRealMédia_conjugal <- dados_anuais |> 
  select(
    Ano, Casados, CasadosComFilhoMenor, VD4019real
  ) |> 
  group_by(
    Ano, 
    Estado.Civil = case_when(
    Casados == 1 & CasadosComFilhoMenor == 1 ~ "CasadosComFilhoMenor",     # Casados com filho menor
    Casados == 1 & CasadosComFilhoMenor != 1 ~ "CasadosSemFilhoMenor",     # Casados sem filho menor
    Casados != 1 & CasadosComFilhoMenor == 1 ~ "ÑcasadosComFilhoMenor",    # Não casados com filho menor
    Casados != 1 & CasadosComFilhoMenor != 1 ~ "ÑcasadosSemFilhoMenor"    # não casados e sem filhos menor
  )) |> 
  summarise(RendaMédia_conjugal = mean(VD4019real, na.rm = TRUE), .groups = 'drop')
# renda real média anual chefe de familia 
RendaReal_Média_chefe <- dados_anuais |> 
  select(
    Ano, ChefeFamilia, VD4019real
  ) |> 
  filter(
    ChefeFamilia == 1
  ) |> 
  group_by(
    Ano
  ) |> 
  summarise(
    RendaMédia_Chefe = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )
# renda real média real por idade 
RendaReal_Média_idade <- dados_anuais |> 
  select(
    Ano, V2009, VD4019real
  ) |> 
  group_by(
    Ano, V2009
  ) |> 
  summarise(
    RendaMédia_idade = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )
# renda real média anual por regiões
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, 34, 35) 
sul <- c(41,42,43)
centro_oeste <- c(50,51,52,53)

regiões <- c(norte, nordeste, sudeste, sul, centro_oeste)
 
# renda real média anual por estados do norte
RendaReal_Média_UFnorte <- dados_anuais |> 
  select(
    Ano, UF, VD4019real
  ) |> 
  group_by(
    Ano, UF
  )|> 
  summarise(
    RendaMédia_UFnorte = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )|>
  filter(
    UF == norte
  )


# renda real média anual por estados do nordeste
RendaReal_Média_UFnordeste <- dados_anuais |> 
  select(
    Ano, UF, VD4019real
  ) |> 
  group_by(
    Ano, UF
  )|> 
  summarise(
    RendaMédia_UFnordeste = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )|>
  filter(
    UF == nordeste
  )


# renda real média anual por estados do sudeste
RendaReal_Média_UFsudeste <- dados_anuais |> 
  select(
    Ano, UF, VD4019real
  ) |> 
  group_by(
    Ano, UF
  )|> 
  summarise(
    RendaMédia_UFsudeste = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )|>
  filter(
    UF == sudeste
  )


# renda real média anual por estados do sul
RendaReal_Média_UFsul <- dados_anuais |> 
  select(
    Ano, UF, VD4019real
  ) |> 
  group_by(
    Ano, UF
  )|> 
  summarise(
    RendaMédia_UFsul = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )|>
  filter(
    UF == sul
  )


# renda real média anual por estados do centro oeste
RendaReal_Média_UFcentro.oeste <- dados_anuais |> 
  select(
    Ano, UF, VD4019real
  ) |> 
  group_by(
    Ano, UF
  )|> 
  summarise(
    RendaMédia_UFcentro.oeste = mean(VD4019real, na.rm = TRUE),  .groups = 'drop'
  )|>
  filter(
    UF == norte
  )


# Definir as regiões e seus respectivos estados
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, 34, 35),
  Sul = c(41,42,43),
  CentroOeste = c(50,51,52,53)
)

# Criar uma função para calcular a renda média por região
rendaReal_media_UF <- dados_anuais |>
  select(
    Ano, UF, VD4019real
    ) |>
  filter(
    UF %in% unlist(regioes)
    ) |>
  group_by(
    Ano, UF
    ) |>
  summarise(
    RendaMédia = mean(VD4019real, na.rm = TRUE), .groups = 'drop') |>
  mutate(
    Região = 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"
  ))
# tabelas renda real média

# tabela_renda_região <- renda_media_por_regiao |> 
#   mutate(across(where(is.numeric), ~ round(.x, 2)))
# 
# tabela_renda_região |> 
#   gt()

#criando tabela
dfs <- list(RendaReal_Média_Ano, mediana_rendareal,
            RendaReal_Média_Homens, RendaReal_Média_Mulheres,
            RendaReal_Média_Brancos, RendaReal_Média_ñBrancos,
            RendaReal_Média_chefe)

# Usando Reduce para juntar os data frames
tabela_rendareal <- Reduce(function(x, y) full_join(x, y, by = "Ano"), dfs)

# Arredondando todas as colunas numéricas para 2 casas decimais
tabela_rendareal <- tabela_rendareal |>
  mutate(across(where(is.numeric), ~ round(.x, 2)))



tabela_rendareal |> 
  gt()
Ano RendaReal_MédiaAno mediana RendaMédia_Homens RendaMédia_Mulheres RendaMédia_Brancos RendaMédia_ñBrancos RendaMédia_Chefe
2012 1301.88 804.92 1425.68 1124.15 1649.62 1022.20 1569.20
2013 1440.03 889.96 1588.93 1227.45 1832.73 1134.63 1715.71
2014 1565.77 993.44 1711.23 1355.85 1983.28 1240.08 1842.15
2015 1663.60 1032.54 1810.80 1452.59 2114.12 1318.97 1946.11
2016 1783.61 1124.16 1921.81 1586.33 2298.07 1398.66 2031.58
2017 1877.16 1197.41 2024.70 1670.26 2423.83 1478.13 2141.75
2018 2013.52 1218.99 2174.79 1790.35 2602.70 1591.61 2291.26
2019 2074.80 1286.93 2243.82 1841.44 2700.48 1638.34 2334.76
2022 2580.02 1538.04 2804.53 2276.17 3324.04 2053.26 2863.59
2023 2825.88 1779.38 3053.51 2523.19 3649.48 2241.45 3084.83
unique(dados_anuais$V20082)

3.3. Estatística Descritiva Gráfica

#instalando pacote para gerar os gráficos
#install.packages("ggplot2")
library(ggplot2)


# gráfico quantidades
# Transformar a tabela para o formato long
tabelalong_dadosgerais <- tabela_dadosgerais  |> 
  pivot_longer(cols = starts_with("qtd_"), 
               names_to = "Categoria", 
               values_to = "Quantidade")

# Criar o gráfico de linhas com várias linhas, uma para cada categoria
ggplot(tabelalong_dadosgerais, aes(x = Ano, y = Quantidade, color = Categoria, group = Categoria)) +
  geom_line() +
  labs(title = "Quantidade por Variáve ao Longo dos Anos",
       x = "Ano",
       y = "Quantidade") +
  theme_minimal() +
  scale_color_manual(values = c("blue", "red", "green", "purple", "orange", "brown", "pink", "cyan", "yellow"))

#gráfico tabela renda real

# Transformar a tabela tabela_rendareal para o formato long
tabelalong_rendareal <- tabela_rendareal |> 
  pivot_longer(cols = -Ano, 
               names_to = "Categoria", 
               values_to = "Quantidade")
# Criar o gráfico de linhas com várias linhas, uma para cada categoria
ggplot(tabelalong_rendareal, aes(x = Ano, y = Quantidade, color = Categoria, group = Categoria)) +
  geom_line() +
  labs(title = "Renda Real ao Longo dos Anos",
       x = "Ano",
       y = "Quantidade") +
  theme_minimal() +
  scale_color_manual(values = c("blue", "red", "green", "purple", "orange", "brown", "pink", "cyan", "yellow"))

3. Criando Pseudo Painel

#Criando grupos por ID
{
  dados_anuais <- dados_anuais |>
    mutate(
      Grupo1 = case_when(
        ID == 19581 ~ 1,
        ID == 19582 ~ 2,
        ID == 19591 ~ 3,
        ID == 19592 ~ 4,
        ID == 19601 ~ 5,
        ID == 19602 ~ 6,
        ID == 19611 ~ 7,
        ID == 19612 ~ 8,
        ID == 19621 ~ 9,
        ID == 19622 ~ 10,
        ID == 19631 ~ 11,
        ID == 19632 ~ 12,
        ID == 19641 ~ 13,
        ID == 19642 ~ 14,
        ID == 19651 ~ 15,
        ID == 19652 ~ 16,
        ID == 19661 ~ 17,
        ID == 19662 ~ 18,
        ID == 19671 ~ 19,
        ID == 19672 ~ 20,
        ID == 19681 ~ 21,
        ID == 19682 ~ 22,
        ID == 19691 ~ 23,
        ID == 19692 ~ 24,
        ID == 19701 ~ 25,
        ID == 19702 ~ 26,
        ID == 19711 ~ 27,
        ID == 19712 ~ 28,
        ID == 19721 ~ 29,
        ID == 19722 ~ 30,
        ID == 19731 ~ 31,
        ID == 19732 ~ 32,
        ID == 19741 ~ 33,
        ID == 19742 ~ 34,
        ID == 19751 ~ 35,
        ID == 19752 ~ 36,
        ID == 19761 ~ 37,
        ID == 19762 ~ 38,
        ID == 19771 ~ 39,
        ID == 19772 ~ 40,
        ID == 19781 ~ 41,
        ID == 19782 ~ 42,
        ID == 19791 ~ 43,
        ID == 19792 ~ 44,
        ID == 19801 ~ 45,
        ID == 19802 ~ 46,
        ID == 19811 ~ 47,
        ID == 19812 ~ 48,
        ID == 19821 ~ 49,
        ID == 19822 ~ 50,
        ID == 19831 ~ 51,
        ID == 19832 ~ 52,
        ID == 19841 ~ 53,
        ID == 19842 ~ 54,
        ID == 19851 ~ 55,
        ID == 19852 ~ 56,
        ID == 19861 ~ 57,
        ID == 19862 ~ 58,
        ID == 19871 ~ 59,
        ID == 19872 ~ 60,
        ID == 19881 ~ 61,
        ID == 19882 ~ 62,
        ID == 19891 ~ 63,
        ID == 19892 ~ 64,
        ID == 19901 ~ 65,
        ID == 19902 ~ 66,
        ID == 19911 ~ 67,
        ID == 19912 ~ 68,
        ID == 19921 ~ 69,
        ID == 19922 ~ 70,
        ID == 19931 ~ 71,
        ID == 19932 ~ 72,
        ID == 19941 ~ 73,
        ID == 19942 ~ 74,
        ID == 19951 ~ 75,
        ID == 19952 ~ 76,
        ID == 19961 ~ 77,
        ID == 19962 ~ 78,
        ID == 19971 ~ 79,
        ID == 19972 ~ 80,
        ID == 19981 ~ 81,
        ID == 19982 ~ 82,
        ID == 19991 ~ 83,
        ID == 19992 ~ 84,
        ID == 20001 ~ 85,
        ID == 20002 ~ 86,
        ID == 20011 ~ 87,
        ID == 20012 ~ 88,
        ID == 20021 ~ 89,
        ID == 20022 ~ 90,
        ID == 20031 ~ 91,
        ID == 20032 ~ 92,
        TRUE ~ 0),
      Grupo2 = case_when(
        ID >= 19581 & ID <= 19582 ~ 1,
        ID >= 19591 & ID <= 19592 ~ 2,
        ID >= 19601 & ID <= 19602 ~ 3,
        ID >= 19611 & ID <= 19612 ~ 4,
        ID >= 19621 & ID <= 19622 ~ 5,
        ID >= 19631 & ID <= 19632 ~ 6,
        ID >= 19641 & ID <= 19642 ~ 7,
        ID >= 19651 & ID <= 19652 ~ 8,
        ID >= 19661 & ID <= 19662 ~ 9,
        ID >= 19671 & ID <= 19672 ~ 10,
        ID >= 19681 & ID <= 19682 ~ 11,
        ID >= 19691 & ID <= 19692 ~ 12,
        ID >= 19701 & ID <= 19702 ~ 13,
        ID >= 19711 & ID <= 19712 ~ 14,
        ID >= 19721 & ID <= 19722 ~ 15,
        ID >= 19731 & ID <= 19732 ~ 16,
        ID >= 19741 & ID <= 19742 ~ 17,
        ID >= 19751 & ID <= 19752 ~ 18,
        ID >= 19761 & ID <= 19762 ~ 19,
        ID >= 19771 & ID <= 19772 ~ 20,
        ID >= 19781 & ID <= 19782 ~ 21,
        ID >= 19791 & ID <= 19792 ~ 22,
        ID >= 19801 & ID <= 19802 ~ 23,
        ID >= 19811 & ID <= 19812 ~ 24,
        ID >= 19821 & ID <= 19822 ~ 25,
        ID >= 19831 & ID <= 19832 ~ 26,
        ID >= 19841 & ID <= 19842 ~ 27,
        ID >= 19851 & ID <= 19852 ~ 28,
        ID >= 19861 & ID <= 19862 ~ 29,
        ID >= 19871 & ID <= 19872 ~ 30,
        ID >= 19881 & ID <= 19882 ~ 31,
        ID >= 19891 & ID <= 19892 ~ 32,
        ID >= 19901 & ID <= 19902 ~ 33,
        ID >= 19911 & ID <= 19912 ~ 34,
        ID >= 19921 & ID <= 19922 ~ 35,
        ID >= 19931 & ID <= 19932 ~ 36,
        ID >= 19941 & ID <= 19942 ~ 37,
        ID >= 19951 & ID <= 19952 ~ 38,
        ID >= 19961 & ID <= 19962 ~ 39,
        ID >= 19971 & ID <= 19972 ~ 40,
        ID >= 19981 & ID <= 19982 ~ 41,
        ID >= 19991 & ID <= 19992 ~ 42,
        ID >= 20001 & ID <= 20002 ~ 43,
        ID >= 20011 & ID <= 20012 ~ 44,
        ID >= 20021 & ID <= 20022 ~ 45,
        ID >= 20031 & ID <= 20032 ~ 46,
        TRUE ~ 0))
}

# Desenvolvendo o Pseudo-Painel para 2023

# ## Médias por ID das Unidades Federativas
# {
#   dados_anuais <- dados_anuais |>
#     mutate(
#       MédiaIDNorte = case_when(
#         UF >= 11 & UF <= 17 & Grupo1 == 1 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 1,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 1, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 2 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 2, 
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 2, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 3 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 3,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 3, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 4 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 4,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 4, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 5 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 5,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 5, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 6 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 6,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 6, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 7 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 7,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 7, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 8 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 8,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 8, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 9 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 9,
#                                                  na.rm = TRUE)/ (sum(Grupo1 == 9, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 10 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 10,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 10, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 11 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 11,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 11, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 12 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 12,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 12, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 13 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 13,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 13, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 14 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 14,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 14, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 15 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 15,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 15, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 16 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 16,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 16, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 17 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 17,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 17, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 18 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 18,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 18, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 19 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 19,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 19, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 20 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 20,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 20, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 21 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 21,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 21, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 22 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 22,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 22, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 23 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 23,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 23, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 24 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 24,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 24, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 25 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 25,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 25, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 26 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 26,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 26, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 27 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 27,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 27, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 28 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 28,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 28, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 29 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 29,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 29, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 30 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 30,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 30, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 31 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 31,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 31, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 32 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 32,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 32, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 33 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 33,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 33, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 34 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 34,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 34, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 35 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 35,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 35, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 36 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 36,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 36, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 37 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 37,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 37, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 38 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 38,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 38, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 39 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 39,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 39, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 40 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 40,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 40, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 41 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 41,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 41, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 42 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 42,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 42, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 43 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 43,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 43, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 44 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 44,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 44, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 45 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 45,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 45, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 46 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 46,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 46, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 47 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 47,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 47, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 48 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 48,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 48, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 49 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 49,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 49, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 50 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 50,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 50, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 51 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 51,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 51, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 52 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 52,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 52, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 53 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 53,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 53, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 54 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 54,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 54, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 55 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 55,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 55, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 56 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 56,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 56, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 57 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 57,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 57, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 58 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 58,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 58, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 59 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 59,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 59, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 60 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 60,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 60, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 61 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 61,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 61, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 62 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 62,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 62, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 63 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 63,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 63, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 64 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 64,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 64, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 65 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 65,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 65, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 66 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 66,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 66, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 67 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 67,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 67, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 68 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 68,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 68, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 69 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 69,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 69, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 70 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 70,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 70, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 71 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 71,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 71, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 72 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 72,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 72, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 73 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 73,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 73, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 74 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 74,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 74, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 75 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 75,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 75, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 76 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 76,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 76, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 77 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 77,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 77, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 78 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 78,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 78, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 79 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 79,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 79, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 80 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 80,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 80, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 81 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 81,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 81, na.rm = TRUE))),
#         UF >= 11 & UF <= 17 & Grupo1 == 82 ~ (sum(UF >= 11 & UF <= 17 & Grupo1 == 82,
#                                                   na.rm = TRUE)/ (sum(Grupo1 == 82, na.rm = TRUE))),
#         TRUE ~ 0))

  # 
  # dados_anuais <- dados_anuais |>
  # group_by(UF, Grupo1) |>
  # mutate(
  #   MédiaIDNorte = case_when(
  #     UF >= 11 & UF <= 17 ~ sum(UF >= 11 & UF <= 17 & Grupo1 == Grupo1, na.rm = TRUE) / sum(Grupo1 == Grupo1, na.rm = TRUE),
  #     TRUE ~ 0
  #   )
  # ) |>
  # ungroup()