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
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 |
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 |
Com base na figura abaixo, explique o significado de cada segmento de reta:
AB
CD
EF
Respostas
AB: Representa pessoas que têm 4 anos em 1º de janeiro do ano de 53.
CD: Representa pessoas que fazem 6 anos durante o ano de 55.
EF: Representa pessoas que têm 2, 3 ou 4 anos em 1º de janeiro do ano de 51.
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)
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.
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.
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.
Resposta
Probabilidade de morte para a coorte de 1999:
\[ \text{Probabilidade de morte} = \frac{10}{100} = 0,10 \]
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} \]
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.