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

Segundo o Censo Demográfico, em 2000, João Pessoa tinha uma população de 597.934 habitantes, e em 2010, a população era de 723.515 habitantes. Com base nos dados de estatísticas vitais disponíveis no site do Datasus, e utilizando o modelo geométrico, calcule a Taxa Bruta de Natalidade (TBN) e a Taxa Bruta de Mortalidade (TBM) de João Pessoa para o ano de 2018.

# Dados
pop2000 <- 597934
pop2010 <- 723515
nasc_2018 <- 12404
obitos_2018 <- 4992

# Taxa geométrica
tx_crec_geo <- (pop2010/pop2000)^(1/10) - 1

# Definição das datas
data_2010 <- as.Date("2010-08-01", format="%Y-%m-%d")
data_2018 <- as.Date("2018-07-01", format="%Y-%m-%d")

# Diferença em anos
dif_anos <- as.numeric(difftime(data_2018, data_2010, units = "days")) / 365.25
dif_anos1 <- format(dif_anos, digits = 4, decimal.mark = ",")

# Projeção da população 2018
pop2018 <- pop2010 * (1 + tx_crec_geo)^dif_anos
pop2018_1 <- format(round(pop2018), big.mark = ".", decimal.mark = ",")

# Taxa bruta de natalidade
tbn <- (nasc_2018/pop2018) * 1000

# Taxa bruta de mortalidade
tbm <- (obitos_2018/pop2018) * 1000

# Tabela com Resultados
tabela_geo <- data.frame(
  "Pessoas-ano em 2018" = pop2018_1,
  "Nascidos Vivos" = format(nasc_2018, big.mark = ".", decimal.mark = ","),
  "Óbitos" = format(obitos_2018, big.mark = ".", decimal.mark = ","),
  "Taxa Bruta de Natalidade (por 1.000)" = format(round(tbn, digits = 2), decimal.mark = ","),
  "Taxa Bruta de Mortalidade (por 1.000)" = format(round(tbm, digits = 2), decimal.mark = ",")
)
Pessoas.ano.em.2018 Nascidos.Vivos Óbitos Taxa.Bruta.de.Natalidade..por.1.000. Taxa.Bruta.de.Mortalidade..por.1.000.
841.357 12.404 4.992 14,74 5,93

Questão 2

Repita o exercício 1 com o modelo exponencial.

# Projeção da população 2018 - Modelo Exponencial
pop2018_exp <- pop2010 * exp(tx_crec_geo * dif_anos)
pop2018_exp_1 <- format(round(pop2018_exp), big.mark = ".", decimal.mark = ",")

# Taxa bruta de natalidade - Modelo Exponencial
tbn_exp <- (nasc_2018/pop2018_exp) * 1000

# Taxa bruta de mortalidade - Modelo Exponencial
tbm_exp <- (obitos_2018/pop2018_exp) * 1000

# Tabela com Resultados - Modelo Exponencial
tabela_exp <- data.frame(
  "Pessoas-ano em 2018" = pop2018_exp_1,
  "Nascidos Vivos" = format(nasc_2018, big.mark = ".", decimal.mark = ","),
  "Óbitos" = format(obitos_2018, big.mark = ".", decimal.mark = ","),
  "Taxa Bruta de Natalidade (por 1.000)" = format(round(tbn_exp, digits = 2), decimal.mark = ","),
  "Taxa Bruta de Mortalidade (por 1.000)" = format(round(tbm_exp, digits = 2), decimal.mark = ",")
)
Pessoas.ano.em.2018 Nascidos.Vivos Óbitos Taxa.Bruta.de.Natalidade..por.1.000. Taxa.Bruta.de.Mortalidade..por.1.000.
842.576 12.404 4.992 14,72 5,92

Questão 3

Com base na figura abaixo, explique o significado de cada segmento de reta:

  1. AB

  2. CD

  3. EF

Respostas

  1. AB: Representa pessoas que têm 4 anos em 1º de janeiro do ano de 53.

  2. CD: Representa pessoas que fazem 6 anos durante o ano de 55.

  3. EF: Representa pessoas que têm 2, 3 ou 4 anos em 1º de janeiro do ano de 51.

Questão 4

Construa um Diagrama de Lexis e nele disponha as seguintes informações:

● Em 1998, houve 100 nascimentos.

● Em 1999, houve 100 nascimentos.

● Em 2000, houve 120 nascimentos.

● Em 2001, houve 150 nascimentos.

● Em 2002, houve 200 nascimentos.

● Em 2003, houve 150 nascimentos.

● Em 2004, houve 100 nascimentos.

Adicionalmente, considere as seguintes informações:

● Entre as idades exatas 0 e 1 ano, no ano de 1999, ocorreram 8 óbitos, exclusivamente da coorte de nascimentos de 1999.

● À exata idade de 1 ano, no ano de 2000, havia 90 crianças.

● À exata idade de 1 ano, no ano de 2001, havia 100 crianças.

● No dia 01/01/2001, havia 106 crianças com idades entre 0 e 1 ano exato.

● No dia 01/01/2001, havia 160 crianças com um ano completo.

● Entre as idades exatas de 0 e 1 ano, em 2002, ocorreram 10 óbitos. Seis desses óbitos são originários da coorte de nascimento de 2002.

# Criar um gráfico base do Diagrama de Lexis
lexis <- lexis_grid(year_start = 1996, year_end = 2005, age_start = 0, age_end = 8)

# Dados de nascimentos por ano
nascimentos <- data.frame(
  ano = c(1998, 1999, 2000, 2001, 2002, 2003, 2004),
  quantidade = c(100, 100, 120, 150, 200, 150, 100)
)

# Criar datas no meio do segmento (1º de julho do mesmo ano)
nascimentos$posicao_x <- as.Date(ISOdate(nascimentos$ano, 7, 1))

# Adicionar os rótulos ao diagrama no meio dos segmentos
lexis <- lexis +
  geom_text(data = nascimentos, aes(x = posicao_x, y = 0.12, label = quantidade), 
            color = "blue", size = 3.5, fontface = "bold")

# Adicionar informações sobre óbitos e populações
# 1. Entre as idades exatas 0 e 1 ano, no ano de 1999, ocorreram 8 óbitos
lexis <- lexis +
  # Desenhar o triângulo superior (coorte de 1999)
  annotate("polygon", 
           x = c(as.Date("1999-01-01"), as.Date("1999-12-31"), as.Date("1999-12-31")), 
           y = c(0, 1, 0), 
           fill = "red", alpha = 0.3) +
  # Adicionar o número "8" no centro do triângulo
  annotate("text", x = as.Date("1999-09-01"), y = 0.35, label = "8", 
           color = "red", size = 3.5, fontface = "bold")

# 2. À exata idade de 1 ano, no ano de 2000, havia 90 crianças
lexis <- lexis +
  annotate("text", x = as.Date("2000-07-01"), y = 1, label = "90", 
           color = "darkgreen", size = 3.5)

# 3. À exata idade de 1 ano, no ano de 2001, havia 100 crianças
lexis <- lexis +
  annotate("text", x = as.Date("2001-07-01"), y = 1, label = "100", 
           color = "darkgreen", size = 3.5)

# No dia 01/01/2001, havia 106 crianças com idades entre 0 e 1 ano exato
lexis <- lexis +
  annotate("text", x = as.Date("2001-01-01"), y = 0.5, label = "106", 
           color = "darkgreen", size = 3.5, angle = 90, hjust = 0.5, vjust = 0.5)

# No dia 01/01/2001, havia 160 crianças com um ano completo
lexis <- lexis +
  annotate("text", x = as.Date("2001-01-01"), y = 1.5, label = "160", 
           color = "darkgreen", size = 3.5, angle = 90, hjust = 0.5, vjust = 0.5)

# Entre as idades exatas de 0 e 1 ano, em 2002, ocorreram 10 óbitos. Seis desses óbitos são originários da coorte de nascimento de 2002
lexis <- lexis +
  # Desenhar o triângulo inferior (coorte de 2002)
  annotate("polygon", 
           x = c(as.Date("2002-01-01"), as.Date("2002-12-31"), as.Date("2002-12-31")), 
           y = c(0, 1, 0), 
           fill = "red", alpha = 0.3) +
  # Desenhar o triângulo superior (coorte de 2001)
  annotate("polygon", 
           x = c(as.Date("2002-01-01"), as.Date("2002-12-31"), as.Date("2001-12-31")), 
           y = c(0, 1, 1), 
           fill = "red", alpha = 0.3) +
  # Adicionar o número "10" no centro do triângulo
  annotate("text", x = as.Date("2002-05-01"), y = 0.75, label = "4", 
           color = "red", size = 3.5, fontface = "bold") +
  # Adicionar o número "6" no centro do triângulo
  annotate("text", x = as.Date("2002-09-01"), y = 0.35, label = "6", 
           color = "red", size = 3.5, fontface = "bold")

# Mostrar o diagrama final
print(lexis)

Perguntas

  1. Quantas crianças morreram da coorte de 1999 no ano de 2000, entre as idades 0 e 1 exatos?

Resposta

Das 100 crianças nascidas em 1999, 8 morreram no ano de 1999. Portanto, 92 crianças sobreviveram até o ano de 2000. Dessas 92, 90 completaram um ano durante 2000, portanto 2 morreram durante o ano de 2000 antes de completar um ano.

  1. Quantas crianças morreram da coorte de 2000 entre 0 e 1 ano exato?

Resposta

Das 120 crianças nascidas em 2000, 100 sobreviveram até a idade de 1 ano exato. Portanto, 20 crianças morreram entre as idades de 0 e 1 ano exato.

  1. Quantos são os óbitos originários da coorte de nascimento de 2001 no ano de 2002?

Resposta

Segundo os dados fornecidos ocorreram no ano de 2002 10 óbitos entre as idades de 0 e 1 ano exato, sendo 6 são originários da coorte de nascimento de 2002. Portanto, 4 óbitos são originários da coorte de nascimento de 2001.

  1. Calcule a probabilidade de morte para a coorte de 1999 para crianças abaixo de um ano exato.

Resposta

Probabilidade de morte para a coorte de 1999:

\[ \text{Probabilidade de morte} = \frac{10}{100} = 0,10 \]

  1. Calcule a taxa de específica de mortalidade para menores de 1 ano (não é a taxa de mortalidade infantil) para o ano de 2000.

Resposta

Taxa de mortalidade específica para menores de 1 ano em 2000:

\[ \text{Taxa de mortalidade específica} = \frac{2 + 14}{\frac{92+106}{2}} \times 1000 = 161,62 \text{ mortes por 1.000} \]

  1. O que acontece se a experiência de mortalidade e natalidade perdurar por períodos sucessivos?

Resposta

Caso a experiência de mortalidade e natalidade permaneça inalterada por longos períodos, a população atingirá um estado estacionário, se houver equilíbrio entre as taxas, ou caminhará para crescimento ou declínio, dependendo do diferencial entre as taxas.