Bibliotecas

rm(list=ls())               # limpa os objetos da ultima execução
options(scipen = 9999,      # inibe exibição de resultaos em notação científica
        digits = 8,         # limita o número de digitos das saídas do programa
        max.print = 6)      # limita o tamanho da saída do programa

library(demography)         # pacote para manipulação de dados demográficos
library(sidrar)             # pacote para manipulação de dados do SIDRA
library(magrittr)           # pacote para operadores semânticos %>%, %$%
library(dplyr)              # pacote para manipulação de dados
library(tidyr)              # pacote para manipulação de dados
library(kableExtra)         # pacote para formatar tabelas
library(readxl)             # pacote para ler e manipular arquivos xlsx
library(ggplot2)            # pacote para elaboração de gráficos
library(MortalityTables)    # pacote para manipulação de tábuas biométricas
library(knitr)              # pacote para visualização 
library(DT)                 # pacote para formatar tabelas
library(janitor)            # pacote para limpeza de nomes de colunas
library(LexisPlotR)         # pacote para criar diagramas de Lexis

Questão 1

A partir dos dados de população do censo 2000 e 2010 e da Matriz de Migração de data fixa para o ano de 2010, calcule para o estado da Paraíba:

# Dados populacionais dos censos 2000 e 2010
pop_data <- list(
  pop_2000 <- get_sidra(x = 200, period = '2000', geo = 'State', geo.filter = 25),
  pop_2010 <- get_sidra(x = 200, period = '2010', geo = 'State', geo.filter = 25)
)

# Renomear colunas
pop_data <- lapply(pop_data, function(data) {
  data %>%
    clean_names()  # Remove caracteres problemáticos
})

process_population_data <- function(data) {
  data %>%
    filter(situacao_do_domicilio == "Total") %>%
    select(unidade_da_federacao, ano, sexo, grupo_de_idade, valor) %>%
    pivot_wider(
      names_from = sexo,
      values_from = valor
    ) %>%
    mutate(grupo_de_idade = factor(grupo_de_idade, levels = c(
      "0 a 4 anos", "1 a 4 anos", "5 a 9 anos", "10 a 14 anos", 
      "15 a 19 anos", "20 a 24 anos", "25 a 29 anos", "30 a 34 anos", "35 a 39 anos",
      "40 a 44 anos", "45 a 49 anos", "50 a 54 anos", "55 a 59 anos", "60 a 64 anos", 
      "65 a 69 anos", "70 a 74 anos", "75 a 79 anos", "80 a 84 anos", "85 a 89 anos", 
      "90 a 94 anos", "95 a 99 anos", "100 anos ou mais", "Total"))) %>%
    arrange(grupo_de_idade) %>%
    drop_na(grupo_de_idade)
}

# Aplicar a função a todos os conjuntos de dados
pop_data <- lapply(pop_data, process_population_data)
# Matriz de migração
uf <- read_excel("C:/Users/cleod/Downloads/Matriz_de_Migrao_-_Censo_2010.xlsx")
matriz <- read_excel("C:/Users/cleod/Downloads/Matriz_de_Migrao_-_Censo_2010.xlsx", 
                    sheet = 2, 
                    skip = 2)

a. O Saldo Migratório.

# Filtrar emigrações
emigracao <- matriz %>%
  filter(UF == "25") %>%
  select("Total")

# Filtrar imigrações
imigracao <- matriz %>%
  filter(UF == "Total") %>%
  select("25")

# Converter para numérico
imigracao <- as.numeric(imigracao)
emigracao <- as.numeric(emigracao)

# Saldo migratório
saldo_migratorio <- imigracao - emigracao

O saldo migratório é a diferença entre o número de pessoas que entram e saem de um determinado local em um determinado período de tempo. No caso da Paraíba, o saldo migratório no período foi de -29495 pessoas, dado que houve 96028 imigrantes e 125523 emigrantes, no período de estudo.

b. O Índice de Eficácia.

# Índice de eficácia
eficacia <- saldo_migratorio / (imigracao + emigracao)
eficacia <- round(eficacia, 2)

O índice de eficácia é uma medida que avalia a eficácia do processo migratório, sendo calculado pela razão entre o saldo migratório e o total de pessoas que entraram e saíram de um determinado local em um determinado período de tempo. No caso da Paraíba, o índice de eficácia foi de -0.13, indicando que a Paraíba foi uma área de baixa evasão migratória no período de estudo.

c. A Taxa de Crescimento Migratório.

# População em 2000 e 2010
pop_2000_total <- pop_data[[1]] %>%
  filter(grupo_de_idade == "Total") %>%
  select("Total") %>%
  pull()

pop_2010_total <- pop_data[[2]] %>%
  filter(grupo_de_idade == "Total") %>%
  select("Total") %>%
  pull()

# Taxa de crescimento migratório
taxa_crescimento_migratorio <- (saldo_migratorio / ((pop_2000_total + pop_2010_total) / 2)) * 1000

taxa_crescimento_migratorio <- round(taxa_crescimento_migratorio, 2)

A taxa de crescimento migratório é o quociente entre o saldo migratório e a média da população total de um determinado local em um determinado período de tempo, multiplicado por 1000. No caso da Paraíba, a taxa de crescimento migratório foi de -8.18 por mil habitantes, indicando que a Paraíba teve um crescimento migratório negativo no período de estudo.

d. A Taxa Líquida de Migração.

# Taxa líquida de migração
taxa_liquida_migracao <- (saldo_migratorio / pop_2010_total) * 1000

taxa_liquida_migracao <- round(taxa_liquida_migracao, 2)

A taxa líquida de migração é o quociente entre o saldo migratório e a população total de um determinado local em um determinado período de tempo. No caso da Paraíba, a taxa líquida de migração foi de -7.83 por mil habitantes, indicando que a Paraíba teve um saldo migratório negativo no período de estudo.

e. A Razão Intercensitária de Sobrevivência por faixa etária.

# Extrair os censos da lista
censo2000 <- pop_data[[1]]
censo2010 <- pop_data[[2]]

# Ordenar por faixa etária (ajuste os nomes das colunas se necessário)
censo2000 <- censo2000[order(censo2000$grupo_de_idade), ]
censo2010 <- censo2010[order(censo2010$grupo_de_idade), ]

# Calcular a RIS:
# - A população de 10-14 em 2010 divide pela de 0-4 em 2000
# - A população de 15-19 em 2010 divide pela de 5-9 em 2000
# - E assim por diante...

# Número de faixas a deslocar (10 anos = 2 faixas quinquenais)
deslocamento <- 2

ris <- data.frame(
  faixa_etaria_2000 = censo2000$grupo_de_idade[1:(nrow(censo2000)-deslocamento)],
  faixa_etaria_2010 = censo2010$grupo_de_idade[(deslocamento+1):nrow(censo2010)],
  pop_2000 = censo2000$Total[1:(nrow(censo2000)-deslocamento)],
  pop_2010 = censo2010$Total[(deslocamento+1):nrow(censo2010)],
  RIS = censo2010$Total[(deslocamento+1):nrow(censo2010)] / censo2000$Total[1:(nrow(censo2000)-deslocamento)]
)

# Eliminar a última linha
ris <- ris[-nrow(ris), ]

# Arredondar para 3 casas decimais
ris$RIS <- round(ris$RIS, 3)

# Exibir a tabela
library(knitr)
kable(ris, caption = "Razão Intercensitária de Sobrevivência (2000-2010)")
Razão Intercensitária de Sobrevivência (2000-2010)
faixa_etaria_2000 faixa_etaria_2010 pop_2000 pop_2010 RIS
0 a 4 anos 10 a 14 anos 338452 348584 1.030
5 a 9 anos 15 a 19 anos 355474 352858 0.993
10 a 14 anos 20 a 24 anos 389975 346131 0.888
15 a 19 anos 25 a 29 anos 389108 327346 0.841
20 a 24 anos 30 a 34 anos 323321 297548 0.920
25 a 29 anos 35 a 39 anos 260579 260648 1.000
30 a 34 anos 40 a 44 anos 242077 243874 1.007
35 a 39 anos 45 a 49 anos 219353 214391 0.977
40 a 44 anos 50 a 54 anos 176746 171256 0.969
45 a 49 anos 55 a 59 anos 151517 147494 0.973
50 a 54 anos 60 a 64 anos 134749 130083 0.965
55 a 59 anos 65 a 69 anos 113017 101058 0.894
60 a 64 anos 70 a 74 anos 103009 85782 0.833
65 a 69 anos 75 a 79 anos 73761 55279 0.749
70 a 74 anos 80 a 84 anos 65518 40403 0.617
75 a 79 anos 85 a 89 anos 50917 24112 0.474
80 a 84 anos 90 a 94 anos 32463 10068 0.310
85 a 89 anos 95 a 99 anos 17595 3575 0.203
90 a 94 anos 100 anos ou mais 5277 742 0.141