Trabalho de Graduação (2019-2021)

ZDB: utilizando banco de dados para gerenciamento, análise e conscientização sobre zoonoses no Brasil

Discente: Liandra Ayumi Federizi Yoshida

Orientadora: Fernanda Nascimento Almeida


Baixe o arquivo de dados:

Download


Estatísticas descritivas em linguagem R:

#limpa dados
rm(list = ls())

# definir diretório
setwd("insira o diretorio em que seu arquivo foi armazenado")

# verificar diretório
getwd()
## [1] "diretorio"
# carrega pacotes gráficos
library("ggplot2")
## Warning: package 'ggplot2' was built under R version 3.6.3
library("data.table")
## Warning: package 'data.table' was built under R version 3.6.3
library("dplyr")
## Warning: package 'dplyr' was built under R version 3.6.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:data.table':
## 
##     between, first, last
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#carrega dados
tabela <- read.csv("tabela.csv",sep=";")

Ocorrências totais ao longo dos anos:

ocor_ano = tapply(tabela$ocorrencia,tabela$ano,sum)
bp <- barplot(ocor_ano, border = F, names.arg = names(ocor_ano), las=2, ylim = c(0,180000), xlab = "Ano", ylab = "Ocorrências", main = "Zoonoses no Brasil ao longo dos anos", col = "DeepSkyBlue", cex.names = 0.6, cex.axis = 0.6, cex.main = 1.0, cex.lab = 0.7)
grid(ny = 6, nx = NA) #linhas de grade
text(x=as.vector(bp),y=ocor_ano+2, labels = ocor_ano, pos=3, offset = 0.3, cex = 0.5) #rótulos
abline(lsfit(1:length(ocor_ano),ocor_ano), col = "darkgreen") #linha de tendência

    De acordo com o gráfico, com o passar dos anos houve diminuição da quantidade de ocorrências notificadas. No entanto, os últimos dois anos (2018 e 2019) podem estar com um número reduzido devido a divulgação dos registros oficiais com grande atraso. Portanto a redução pode ser decorrente tanto de ações de prevenção quanto da ausência de dados totais disponíveis até o momento. A última atualização em massa do DATASUS ocorreu em Março de 2020, sendo que muitas doenças ainda estão sem dados de 2019 e em nota ressalta-se que os dados ainda precisam de revisão.


Ocorrências totais por região:

reg = tapply(tabela$ocorrencia,tabela$cod_regiao,sum)
names(reg) = c("Norte","Nordeste","Sudeste","Sul","Centro-Oeste")
reg = sort(reg, decreasing = TRUE) #para visualizar do maior para o menor
bp <- barplot(reg, border = F, names.arg = names(reg), las=2, ylim = c(0,120000), ylab = "Ocorrências", main = "Zoonoses no Brasil por região de 2015 a 2019", col = "DeepSkyBlue", cex.sub = 0.6, cex.names = 0.6, cex.axis = 0.6, cex.main = 1.0, cex.lab = 0.7)
text(x=as.vector(bp), y=reg+2, labels = reg, pos=3, offset = 0.1, cex = 0.6)
grid(ny = 6, nx = NA)

    Dentre as 15 zoonoses inclusas nesta análise, as ocorrências registradas na região sul do Brasil apresentam um menor número. Isto pode ser indicativo de boas ações de prevenção e controle das autoridades e da própria população do local e/ou outros fatores associados ao clima mais frio, por exemplo, pois este reduz a incidência de alguns vetores de grandes doenças zoonóticas.

    Pode-se direcionar as ações de conscientização, controle e prevenção para, principalmente, as regiões Nordeste, Centro-Oeste e Sudeste.


Por tipo de zoonose:

zoo = tapply(tabela$ocorrencia,tabela$cod_zoo,sum)
names(zoo) = c("Botulismo","Dengue","Doença de Chagas","Esquistossomose","Febre Maculosa","Febre Tifóide","Hantavirose","Leishmaniose Visceral","Leishmaniose Tegumentar","Leptospirose","Malária","Raiva Humana","Tétano Acidental","Tétano Neonatal","Tuberculose")
zoo = sort(zoo, decreasing = TRUE)
bp <- barplot(zoo, border = F, names.arg = names(zoo), las=2, ylim = c(0,160000), ylab = "Ocorrências", main = "Registros de zoonoses no Brasil de 2015 a 2019", col = "DeepSkyBlue", cex.names = 0.4, cex.axis = 0.5, cex.main = 1.0, cex.lab = 0.7)
text(x=as.vector(bp), y=zoo+2, labels = zoo, pos=3, offset = 0.3, cex = 0.5)
grid(ny = 6, nx = NA)

    Em um período de 5 anos as ocorrências de dengue e tuberculose se destacam das demais zoonoses analisadas. Deve-se levar em consideração que em análises individuais, muitas zoonoses, aparentemente menos relevantes, como a malária ou a raiva humana, vêm demonstrando elevação nos índices de ocorrência.

    Portanto é preciso atuar para redução das zoonoses mais recorrentes no país, ao mesmo tempo que realizam-se ações para impedir que os índices das demais doenças cresçam com o tempo.


Por escolaridade:

esc = tapply(tabela$ocorrencia,tabela$escolaridade,sum)
esc = sort(esc, decreasing = TRUE)
bp <- barplot(esc, border = F, las=2, ylim = c(0,130000), ylab = "Ocorrências", main = "Registros de zoonoses no Brasil de 2015 a 2019 por escolaridade", col = "DeepSkyBlue", cex.names = 0.4, cex.axis = 0.5, cex.main = 1.0, cex.lab = 0.7)
text(x=as.vector(bp), y=esc+2, labels = esc, pos=3, offset = 0.3, cex = 0.5)
grid(ny = 6, nx = NA)

    Há uma presença muito elevada de dados não preenchidos nas fichas de notificação. Estes aparecem como “Em branco/Ignorado” e analisando em termos de escolaridade dos casos, este fator torna mais difícil a elaboração de estratégias adequadas de prevenção.

    Nesse sentido, entende-se que as ações para conscientização da população não devem envolver apenas a apresentação de cuidados necessários para prevenção das doenças, mas também alertas sobre o impacto negativo que registros de notificação mal preenchidos pode causar, considerando também que a categorização por escolaridade não representa a idade (muitos adultos possuem apenas o ensino fundamental completo, por exemplo). Portanto as ações devem ser bem pensadas para garantir o entendimento de toda população a respeito da seriedade no processo de notificação de ocorrências.


Por município de extrema pobreza:

muex = tapply(tabela$ocorrencia,tabela$mun_extr_pobreza,sum)
names(muex) = c("Sem pobreza extrema","Extrema pobreza")
muex = sort(muex, decreasing = TRUE)
bp <- barplot(muex, border = F, las=1, ylim = c(0,360000), ylab = "Ocorrências", main = "Zoonoses (2015-2019) de acordo com status do município", col = "DeepSkyBlue", cex.names = 0.6, cex.axis = 0.6, cex.main = 1.0, cex.lab = 0.7)
text(x=as.vector(bp), y=muex+2, labels = muex, pos=3, offset = 0.3, cex = 0.6)
grid(ny = 6, nx = NA)


Por classificação etária:

cla = tapply(tabela$ocorrencia,tabela$classif_etaria,sum)
cla = sort(cla, decreasing = TRUE)
bp <- barplot(cla, border = F, las=2, ylim = c(0,180000), ylab = "Ocorrências", main = "Registros de zoonoses no Brasil de 2015 a 2019 por faixa etária", col = "DeepSkyBlue", cex.names = 0.6, cex.axis = 0.6, cex.main = 1.0, cex.lab = 0.7)
text(x=as.vector(bp), y=cla+2, labels = cla, pos=3, offset = 0.3, cex = 0.5)
grid(ny = 6, nx = NA)

#tabela com as faixas de idade de cada classificação:
faixas <- data.table(categoria = c("bebês", "crianças",
                            "adolescentes", "jovens",                                     "adultos", "idosos"),  
                   idade = c("0-4 anos", "5-14 anos", "15-19 anos", "20-39 anos", "40-59 anos", "a partir de 60 anos"))
faixas
##       categoria               idade
## 1:        bebês            0-4 anos
## 2:     crianças           5-14 anos
## 3: adolescentes          15-19 anos
## 4:       jovens          20-39 anos
## 5:      adultos          40-59 anos
## 6:       idosos a partir de 60 anos

Por gênero:

sexo = tapply(tabela$ocorrencia,tabela$sexo,sum)
sexo = sort(sexo, decreasing = TRUE)
bp <- barplot(sexo, border = F, las=1, ylim = c(0,250000), ylab = "Ocorrências", main = "Registros de zoonoses no Brasil de 2015 a 2019 por gênero", col = "DeepSkyBlue", cex.names = 0.6, cex.axis = 0.6, cex.main = 1.0, cex.lab = 0.7)
text(x=as.vector(bp), y=sexo+2, labels = sexo, pos=3, offset = 0.3, cex = 0.6)
grid(ny = 6, nx = NA)


Por evolução do caso:

evlc = tapply(tabela$ocorrencia,tabela$evolucao,sum)
names(evlc) = c("cura","óbito")
evlc = sort(evlc, decreasing = TRUE)
bp <- barplot(evlc, border = F, las=1, ylim = c(0,430000), ylab = "Ocorrências", main = "Zoonoses no Brasil de 2015 a 2019 por evolução do caso", col = "DeepSkyBlue", cex.names = 0.6, cex.axis = 0.6, cex.main = 1.0, cex.lab = 0.7)
text(x=as.vector(bp), y=evlc+2, labels = evlc, pos=3, offset = 0.1, cex = 0.6)
grid(ny = 6, nx = NA)


Outros gráficos com combinação de dados:

Status do município + evolução do caso:

tabela %>%
 filter(!(mes %in% "Em branco/Ignorado")) %>%
 filter(!(escolaridade %in% 
    "Em Branco/Ignorado")) %>%
 ggplot() +
 aes(x = mun_extr_pobreza, weight = ocorrencia) +
 geom_bar(fill = "#41ab5d") +
 labs(x = "Status do município [Extrema pobreza (sim) ou não]", y = "Ocorrências de zoonoses", title = "Ocorrências de zoonoses por evolução do caso de acordo com município", subtitle = "Sem levar em consideração os dados classificados como \"Ignorado/Em branco\"", caption = "ZDB: Zoonozis DataBase") +
 theme_gray() +
 facet_wrap(vars(evolucao))


Região + escolaridade:

tabela %>%
 filter(!(mes %in% "Em branco/Ignorado")) %>%
 filter(!(escolaridade %in% 
    "Em Branco/Ignorado")) %>%
 ggplot() +
 aes(x = cod_regiao, y = ocorrencia, fill = escolaridade, colour = escolaridade) +
 geom_area(size = 1L) +
 scale_fill_viridis_d(option = "viridis") +
  scale_color_viridis_d(option = "viridis") +
 labs(x = "Região [1-Norte, 2-Nordeste, 3-Sudeste, 4-Sul, 5-Centro-Oeste]", y = "Ocorrências de zoonoses", title = "Ocorrências de zoonoses por região e escolaridade", subtitle = "Sem levar em consideração os dados cadastrados como \"Ignorado/Em branco\"", caption = "ZDB: Zoonosis DataBase", fill = "Escolaridade:", color = "Escolaridade:") +
 theme_gray()


Classificação etária + gênero:

tabela %>%
 filter(!(mes %in% "Em branco/Ignorado")) %>%
 filter(!(escolaridade %in% 
    "Em Branco/Ignorado")) %>%
 ggplot() +
 aes(x = classif_etaria, weight = ocorrencia) +
 geom_bar(fill = "#41ab5d") +
 labs(x = "Classificação etária", y = "Ocorrências de zoonoses", title = "Ocorrências de zoonoses por gênero e classificação etária", subtitle = "Não foram considerados os dados cadastrados como \"Ignorado/Em branco\"", caption = "ZDB: Zoonosis DataBase") +
 theme_gray() +
 facet_wrap(vars(sexo))


Meses e anos:

tabela %>%
 filter(!(mes %in% "Em branco/Ignorado")) %>%
 filter(!(escolaridade %in% 
    "Em Branco/Ignorado")) %>%
 ggplot() +
 aes(x = ano, y = ocorrencia, fill = mes, colour = mes) +
 geom_area(size = 1L) +
 scale_fill_viridis_d(option = "viridis") +
 scale_color_viridis_d(option = "viridis") +
 labs(x = "Ano", y = "Ocorrências", title = "Ocorrências de zoonoses por meses no perídodo de 2015 a 2019", subtitle = "Não foram considerados os dados cadastrados como \"Ignorado/Em branco\"", caption = "ZDB: Zoonosis DataBase", fill = "Mês:", color = "Mês:") +
 theme_gray()

    Fazendo uma avaliação por mês é possível verificar os meses mais influentes na ocorrência de zoonoses, para, em seguida, identificar os possíveis motivos para isso, como mudança de clima, estação, chuvas, eventos e fluxo de pessoas, entre outros. Com uma avaliação anual ficará mais fácil predizer possíveis surtos e preparar a população e o sistema de saúde pública adequadamente.


Baixe o arquivo e as análises em R dos dados gerais (2001 a 2019):

Download


    Para dúvidas ou mais informações entrar em contato através do endereço de email: