Este relatório apresenta uma análise das taxas de dengue, zika e chikungunya , baseada no conjunto de dados da Prefeitura do Recife.
A dengue causa sérios impactos na saúde pública e os dados disponíveis são frequentemente heterogêneos e inconsistentes, dificultando a análise dos seus padrões de ocorrência. Este projeto utiliza técnicas de data science para importar, limpar e explorar dados online de dengue, visando identificar tendências que subsidiem estratégias eficazes de prevenção e controle.
Utilizaremos os microdados do Recife disponibilizados pela Prefeitura do Recife. Os dados serão importados, limpos e transformados utilizando ferramentas de data science em R, para então explorá-los e identificar padrões temporais e espaciais na incidência da dengue.
A análise será realizada utilizando a linguagem R, empregando os pacotes do tidyverse para manipulação e transformação dos dados, e o ggplot2 para visualizações gráficas. Além disso, utilizaremos bibliotecas como o lubridate para tratamento de datas e o dplyr para filtragem e criação de variáveis derivadas. Essas variáveis facilitarão a análise temporal, permitindo identificar tendências, sazonalidades e padrões espaciais nos microdados do Recife. Gráficos e tabelas serão elaborados para apresentar os principais insights, garantindo uma comunicação clara dos resultados para subsidiar estratégias eficazes de controle da dengue.
O objetivo deste projeto é realizar uma análise dos dados de dengue de Recife, com foco na identificação de padrões temporais e espaciais que possam contribuir para estratégias de controle e prevenção mais eficientes. Por meio da aplicação de técnicas de data science em R, como a manipulação de dados e a criação de visualizações, espera-se fornecer insights importantes para entender a dengue em Recife no ano de 2024 e no aprofundamento de estudos acadêmicos sobre a doença.
library(readr) # Leitura eficiente de arquivos CSV
library(tidyverse) # Conjunto integrado para manipulação e visualização de dados
library(dplyr) # Funções intuitivas para transformação e agregação de data frames
library(lubridate) # Simplifica o tratamento e análise de datas
library(ggplot2) # Criação de gráficos customizados e dinâmicos
library(knitr) # Formatação de tabelas para inclusão em relatórios Markdown
library(kableExtra) # Extra funcionalidades para a formatação de tabelas
library(tidyr) # Manipulação e reorganização de dadosOs dados utilizados neste projeto foram obtidos do site oficial da Prefeitura do Recife, que disponibiliza os registros de casos de dengue. Esse banco de dados, referente a 2024, contêm informações detalhadas sobre a notificação dos casos, abrangendo dados clínicos, demográficos e geográficos essenciais para o monitoramento e controle da doença.
Os bancos de dados de dengue do Recife abrange o ano de 2024 e contêm registros individuais de casos notificados, incluindo variáveis como ID_Caso (identificador único), Data_Notificacao e Data_Sintomas (datas de registro e início dos sintomas), Idade, Sexo, Bairro (residência do paciente), Classificacao_Final (Dengue, Dengue Grave, Dengue com Sinais de Alarme ou Não Confirmado), Evolucao_Caso (Cura, Óbito, Óbito por Dengue ou por Outras Causas) e Hospitalizacao (Sim/Não). Os dados apresentam heterogeneidade típica de registros de saúde pública, com valores ausentes, formatos divergentes e nomenclaturas não padronizadas, exigindo etapas de limpeza e transformação, incluindo a criação da variável Semana_Epidemiologica para análise temporal conforme o calendário epidemiológico.
A seguir, as principais etapas para a preparação dos dados:Utilização da função read_csv() do pacote readr para importar os arquivos de dados de dengue dos anos e 2024.
#Importar os dados CSV com separador ponto e vírgula
recifedengue2024 <- read.csv("C:/Users/TemisWin10/Documents/dengon-2024.csv", sep = ";", stringsAsFactors = FALSE)Tratando colunas com muitos NAs
# Definir um limite de NAs (ex: 40% dos dados)
limite_na <- 0.40 * nrow(recifedengue2024)
# Identificar colunas com muitos NAs
colunas_com_muitos_nas <- colnames(recifedengue2024)[colSums(is.na(recifedengue2024)) > limite_na]
# Remover essas colunas do data frame
recifedengue2024 <- recifedengue2024[, !colnames(recifedengue2024) %in% colunas_com_muitos_nas]
Criando coluna de idade padrao
# Extrair os dois últimos dígitos e converter para número
recifedengue2024$idade <- as.numeric(substr(recifedengue2024$nu_idade_n, nchar(recifedengue2024$nu_idade_n) - 1, nchar(recifedengue2024$nu_idade_n)))Verificar o resultado
# Resumo das principais variaveis do dataset
resumo_variaveis <- data.frame(
Variavel = c("dt_notific", "nu_idade_n", "idade", "cs_sexo", "nm_bairro", "febre", "mialgia", "cefaleia", "classi_fin", "evolucao"),
Tipo = c("Data", "Numerica", "Numerica", "Categorica", "Categorica", "Binaria", "Binaria", "Binaria", "Categorica", "Categorica"),
Descricao = c(
"Data da notificacao do caso",
"Codigo numerico onde os dois ultimos digitos representam a idade do paciente",
"Idade do paciente em anos (extraida de nu_idade_n)",
"Sexo do paciente (M/F)",
"Bairro de residencia do paciente",
"Presenca de febre (1 = Sim, 2 = Nao)",
"Presenca de mialgia (1 = Sim, 2 = Nao)",
"Presenca de cefaleia (1 = Sim, 2 = Nao)",
"Classificacao final do caso",
"Evolucao do caso (1 = Cura, 2 = Obito, etc.)"
)
)
# Exibir a tabela formatada
knitr::kable(resumo_variaveis, caption = "Resumo das Variaveis do Conjunto de Dados")| Variavel | Tipo | Descricao |
|---|---|---|
| dt_notific | Data | Data da notificacao do caso |
| nu_idade_n | Numerica | Codigo numerico onde os dois ultimos digitos representam a idade do paciente |
| idade | Numerica | Idade do paciente em anos (extraida de nu_idade_n) |
| cs_sexo | Categorica | Sexo do paciente (M/F) |
| nm_bairro | Categorica | Bairro de residencia do paciente |
| febre | Binaria | Presenca de febre (1 = Sim, 2 = Nao) |
| mialgia | Binaria | Presenca de mialgia (1 = Sim, 2 = Nao) |
| cefaleia | Binaria | Presenca de cefaleia (1 = Sim, 2 = Nao) |
| classi_fin | Categorica | Classificacao final do caso |
| evolucao | Categorica | Evolucao do caso (1 = Cura, 2 = Obito, etc.) |
Nesta seção, serão realizadas análises para identificar padrões e tendências sobre a dengue no recife.
Objetivo:
Analisar como o número de casos de dengue evoluiu ao longo do tempo (por mês)
# Carregar pacotes necessarios
library(dplyr)
library(ggplot2)
# Extrair o mes da data de notificacao
recifedengue2024$mes_notific <- format(as.Date(recifedengue2024$dt_notific), "%Y-%m")
# Contar casos por mes
casos_por_mes <- recifedengue2024 %>%
group_by(mes_notific) %>%
summarise(Total_Casos = n())
# Exibir o resultado
print(casos_por_mes)
# Grafico de linhas (Casos por Mes)
ggplot(casos_por_mes, aes(x = mes_notific, y = Total_Casos, group = 1)) +
geom_line(color = "blue") + # Linha azul
geom_point(color = "red") + # Pontos vermelhos
labs(
title = "Evolucao dos Casos de Dengue por Mes (2024)",
x = "Mes",
y = "Numero de Casos"
) +
theme_minimal() + # Tema minimalista
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotacionar rotulos do eixo X
# Contagem de casos por bairro
casos_por_bairro <- recifedengue2024 %>%
group_by(nm_bairro) %>%
summarise(Total_Casos = n()) %>%
arrange(desc(Total_Casos)) # Ordenar do maior para o menor
# Exibir os 10 bairros com mais casos
print(head(casos_por_bairro, 10))
# Gráfico de barras dos 10 bairros com mais casos
ggplot(head(casos_por_bairro, 10), aes(x = reorder(nm_bairro, -Total_Casos), y = Total_Casos, fill = nm_bairro)) +
geom_bar(stat = "identity") +
labs(title = "Top 10 Bairros com Mais Casos de Dengue (2024)",
x = "Bairro",
y = "Numero de Casos") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotacionar rotulos do eixo X# Carregar pacotes necessarios
library(dplyr)
library(ggplot2)
# Criar a coluna de faixa etaria
recifedengue2024 <- recifedengue2024 %>%
mutate(faixa_etaria = case_when(
idade < 12 ~ "Crianca",
idade >= 12 & idade < 18 ~ "Adolescente",
idade >= 18 & idade < 60 ~ "Adulto",
idade >= 60 ~ "Idoso"
))
# Contagem de casos por faixa etaria
casos_faixa_etaria <- recifedengue2024 %>%
group_by(faixa_etaria) %>%
summarise(Total_Casos = n())
# Exibir o resultado
print(casos_faixa_etaria)
# Grafico de barras da distribuicao por faixa etaria
ggplot(casos_faixa_etaria, aes(x = faixa_etaria, y = Total_Casos, fill = faixa_etaria)) +
geom_bar(stat = "identity") +
labs(
title = "Distribuicao dos Casos por Faixa Etaria",
x = "Faixa Etaria",
y = "Numero de Casos"
) +
theme_minimal()
# Contagem de casos por sexo
casos_por_sexo <- recifedengue2024 %>%
group_by(cs_sexo) %>%
summarise(Total_Casos = n())
# Exibir o resultado
print(casos_por_sexo)
# Grafico de barras da distribuicao por sexo
ggplot(casos_por_sexo, aes(x = cs_sexo, y = Total_Casos, fill = cs_sexo)) +
geom_bar(stat = "identity") +
labs(
title = "Distribuicao dos Casos por Sexo",
x = "Sexo",
y = "Numero de Casos"
) +
theme_minimal()
# Contagem de casos por faixa etaria e sexo
casos_faixa_etaria_sexo <- recifedengue2024 %>%
group_by(faixa_etaria, cs_sexo) %>%
summarise(Total_Casos = n(), .groups = 'drop')
# Exibir o resultado
print(casos_faixa_etaria_sexo)
# Grafico de barras agrupadas (faixa etaria e sexo)
ggplot(casos_faixa_etaria_sexo, aes(x = faixa_etaria, y = Total_Casos, fill = cs_sexo)) +
geom_bar(stat = "identity", position = "dodge") +
labs(
title = "Distribuicao dos Casos por Faixa Etaria e Sexo",
x = "Faixa Etaria",
y = "Numero de Casos",
fill = "Sexo"
) +
theme_minimal()# Carregar pacotes necessários
library(ggplot2)
library(dplyr)
library(tidyr)
# Selecionar colunas de interesse (sintomas + faixa etária)
dados_sintomas_idade <- recifedengue2024 %>%
select(faixa_etaria, febre, mialgia, cefaleia, exantema, vomito, nausea, dor_costas,
conjuntvit, artrite, artralgia, petequia_n, leucopenia, laco, dor_retro) %>%
pivot_longer(cols = -faixa_etaria, names_to = "Sintoma", values_to = "Presenca") %>%
filter(Presenca == 1) %>% # Considera apenas os sintomas presentes
group_by(faixa_etaria, Sintoma) %>%
summarise(Frequencia = n(), .groups = "drop")
# Exibir a tabela com os dados agregados
print(dados_sintomas_idade)
# Criar gráfico de barras agrupado por faixa etária
ggplot(dados_sintomas_idade, aes(x = reorder(Sintoma, Frequencia), y = Frequencia, fill = faixa_etaria)) +
geom_bar(stat = "identity", position = "dodge") +
coord_flip() + # Rotaciona para facilitar a leitura
theme_minimal() +
labs(title = "Frequência dos Sintomas por Faixa Etária",
x = "Sintoma",
y = "Frequência",
fill = "Faixa Etária")Evolução Temporal dos Casos
Tendência Mensal:
Os casos de dengue apresentaram um aumento significativo nos meses de março a maio, possivelmente devido às condições climáticas favoráveis à proliferação do mosquito Aedes aegypti (chuvas e temperaturas elevadas).
Houve uma queda nos casos a partir de junho, o que pode estar relacionado a campanhas de prevenção ou à sazonalidade da doença.
Semana Epidemiológica:
As semanas epidemiológicas 12 a 20 (março a maio) concentraram o maior número de casos, indicando um pico de transmissão durante esse período.Distribuição Geográfica
Bairros Mais Afetados:
Os bairros Ibura, Varzea e Boa viagem foram os mais afetados, com um número significativamente maior de casos em comparação com outras regiões.
Esses bairros podem ter características que favorecem a proliferação do mosquito, como áreas com acúmulo de água parada ou densidade populacional elevada.Faixa Etária dos Pacientes
Distribuição por Faixa Etária:
A maioria dos casos ocorreu em adultos , representando aproximadamente 60% do total.
Crianças e idosos também foram afetados, mas em menor proporção.
Possíveis Razões:
Adultos podem estar mais expostos ao mosquito devido a atividades ao ar livre ou deslocamentos frequentes.
Crianças e idosos podem ter menor exposição ou maior cuidado preventivo.Distribuição por Sexo
Casos por Sexo:
A distribuição de casos entre homens e mulheres foi praticamente equilibrada, com uma ligeira predominância no sexo feminino.
Isso sugere que ambos os sexos estão igualmente expostos ao risco de contrair dengue.Sintomas Mais Comuns
Febre, Mialgia e Cefaleia:
A febre foi o sintoma mais relatado,seguido de Mialgia (dor muscular) e cefaleia (dor de cabeça).
Implicações:
Esses sintomas são típicos da dengue e podem ajudar no diagnóstico precoce da doença.Resumo das Estatísticas
Idade Média:
A faixa etária mais afetada foi a de adultos jovens .
Distribuição por Sexo:
51% dos casos foram em mulheres e 49% em homens.Conclusão Geral:
A dengue apresentou um pico de transmissão entre março e maio, com os bairros Ibura, Vazea e BoaViagem sendo os mais afetados.
Adultos jovens foram os mais acometidos, e os sintomas mais comuns foram febre, mialgia e cefaleia.
O objetivo deste estudo foi analisar os casos de dengue em 2024 para entender a distribuição temporal, geográfica e demográfica da doença, além de identificar fatores de risco e padrões de sintomas. A análise buscou fornecer insights que possam orientar ações de prevenção, controle e tratamento da dengue.
A análise foi realizada seguindo os seguintes passos:
Preparação dos Dados:
Limpeza e tratamento de valores ausentes ou inconsistentes.
Criação de novas variáveis, como idade , para facilitar a análise.
Análise Exploratória dos Dados (AED):
Distribuição temporal (evolução mensal e por semana epidemiológica).
Distribuição geográfica (casos por bairro).
Análise demográfica (faixa etária e sexo dos pacientes).
Frequência de sintomas e classificação final dos casos.
Visualização dos Dados:
Gráficos de linhas, barras e tabelas resumo para comunicar os resultados de forma clara e eficiente.
Os principais insights obtidos foram:
Evolução Temporal:
Pico de casos entre março e maio, com queda a partir de junho.
Distribuição Geográfica:
Bairros como Ibura, Vazea e Boa Viagem foram os mais afetados.
Perfil dos Pacientes:
A maioria dos casos ocorreu em adultos jovens (18 a 40 anos), com distribuição equilibrada entre homens e mulheres.
A análise dos casos de dengue em 2024 revela implicações importantes para a saúde pública. O pico de casos entre março e maio sugere a necessidade de intensificar as ações de prevenção e controle no início do ano, especialmente nos bairros mais afetados, como IBURA e VARZEA. A predominância de casos em adultos jovens indica que campanhas de conscientização devem ser direcionadas a essa faixa etária, destacando a importância de medidas preventivas, como eliminação de focos de água parada e uso de repelentes. Além disso, a distribuição equilibrada entre homens e mulheres reforça a importância de abordagens inclusivas e abrangentes. Esses insights podem orientar políticas públicas mais eficazes para reduzir a incidência da dengue e mitigar seus impactos na população.
Limitações: A análise foi restrita aos microdados disponíveis, que podem conter valores ausentes ou inconsistências.
Melhorias Futuras: Sugere-se a inclusão de variáveis socioeconômicas e regionais para uma análise mais abrangente.
O código foi organizado em etapas claras e bem definidas, seguindo boas práticas de programação em R. Cada etapa foi comentada para facilitar a compreensão e replicação da análise.
Foram incluídos comentários explicativos em cada bloco de código, descrevendo o propósito e a lógica das operações realizadas. Exemplo:
O projeto foi dividido em etapas simples: