Definição

A análise de combinação é simples por definição e elegante em sua aplicação. O raciocínio epidemiológico da análise de combinação está presente em todo diagnóstico médico que envolve a presença de diferentes sintomas concomitantemente.

Estudo de caso

Vamos aplicar a análise de combinações em uma base de dados do Sistema de Informação de Agravos de Notificação (SINAN) utilizando dados públicos disponibilizados pelo DataSUS referentes a casos de dengue no Brasil ocorridos no ano de 2020.

Primeiro, precisamos compreender o contexto da informação. O documento Dengue: diagnóstico e manejo clínico1 informa que um caso suspeito de dengue envolve a presença de febre e pelo menos dois dos seguintes sintomas:

  1. Cefaleia,
  2. Dor retro-orbital
  3. Exantema
  4. Prostração
  5. Mialgia
  6. Artralgia

Agora precisamos saber se estas variáveis estão presentes no instrumento utilizado para coleta dos dados, a Ficha de Investigação2, pois dele vem as informações da base de dados que iremos utilizar. O campo 33 denominado Sinais Clínicos permite o preenchimento com a seguinte identificação:

  1. Presente (Sim)
  2. Ausente (Não)

O Ministério da Saúde também disponibiliza o Dicionário de Dados3 desta base e assim podemos descobrir como as variáveis foram codificadas. Aliás, este é um documento essencial para análise de dados do DataSUS. Observe que as nossas variáveis de interesse estarão no banco de dados assim representadas:

Sintoma Codificação
Febre FEBRE
Cefaleia CEFALEIA
Dor retro-orbital DOR_RETRO
Exantema EXANTEMA
Prostração não consta
Mialgia MIALGIA
Artralgia ARTRALGIA

Download dos dados

library(tidyverse, warn.conflicts = FALSE)

Agora faremos o download dos dados de dengue diretamente do FTP do DataSUS. O arquivo possui dados de todas as unidades da federação do Brasil e, por isso, possui um tamanho de 72.193 Kb e dependendo da velocidade da sua internet esta próxima etapa pode demorar alguns minutos.

temp <- tempfile()
download.file("ftp://ftp.datasus.gov.br/dissemin/publicos/SINAN/DADOS/FINAIS/DENGBR20.dbc", temp, mode = "wb")
dengue <- read.dbc::read.dbc(temp)
rm(temp)

O que o código acima está dizendo? Criamos um arquivo temporário que posteriormente recebeu os dados de dengue em um arquivo de extensão DBC baixado do DataSUS, depois criamos um vetor chamado dengue para receber e armazenar os dados provenientes do arquivo DBC utilizando o pacote read.dbc4.

Preparação

A base original contém 1.484.133 casos notificados e 119 variáveis.

rmarkdown::paged_table(dengue)

Iremos incluir em nossa análise apenas indivíduos com diagnóstico sorológico reagente para o marcador imunológico de fase aguda IgM e classificados como dengue clássica:

dengue <- dengue %>% filter(RESUL_SORO == 1, CLASSI_FIN == 10)

Agora iremos transformar os dados para o formato exigido para a análise de combinações, ou seja, o número 1 representando a presença do sintoma e o número 0 representando sua ausência.

dengue <- dengue %>% mutate(FEBRE = case_when(FEBRE == "1" ~ 1, TRUE ~ 0),
                            CEFALEIA = case_when(CEFALEIA == "1" ~ 1, TRUE ~ 0),
                            DOR_RETRO = case_when(DOR_RETRO == "1" ~ 1, TRUE ~ 0),
                            EXANTEMA = case_when(EXANTEMA == "1" ~ 1, TRUE ~ 0),
                            MIALGIA = case_when(MIALGIA == "1" ~ 1, TRUE ~ 0),
                            ARTRALGIA = case_when(ARTRALGIA == "1" ~ 1, TRUE ~ 0))

Análise de combinações

Aprendi a realizar esta análise com o ótimo livro The Epidemiologist R Handbook5, o qual recomendo para todos aqueles que desejem utilizar o R em pesquisas da área da saúde. Como exemplificado no capítulo 36 deste livro utilizaremos o pacote recomendado UpSetR6, adicionando argumentos para melhorar o visual do gráfico.

UpSetR::upset(select(dengue, FEBRE, CEFALEIA, DOR_RETRO, EXANTEMA, MIALGIA, ARTRALGIA),
              sets = c("FEBRE", "CEFALEIA", "DOR_RETRO", "EXANTEMA", "MIALGIA", "ARTRALGIA"),
              order.by = "freq",                  # Ordena o gráfico de barra
              empty.intersections = "on",         # Exibe conjuntos vazios
              text.scale = 1.5,                   # Tamanho do texto
              nintersects = 10,                   # Quantidade de combinações
              number.angles = 0,                  # Ângulo dos números no topo da barra
              point.size = 4,                     # Tamanho dos pontos no gráfico da matriz
              main.bar.color = "#21618C",         # Cor do gráfico de barra
              shade.color = "steelblue",          # Cor do sombreado da linha na matriz
              matrix.color = "#154360",           # Cor dos pontos de intersecção
              sets.bar.color = "#21618C",         # Cor do gráfico de barra de tamanho definido
              mainbar.y.label = "Frequência das combinações",    # Descrição do eixo Y
              sets.x.label = "Frequência por sintomas")        # Descrição do eixo X

O que podemos concluir com a análise deste gráfico?

  1. Febre, cefaleia e mialgia foram os sintomas mais frequentes, respectivamente, entre casos de dengue clássica IgM reagentes ocorridos em 2020.

  2. A febre esteve presente em combinação com todos os demais sinais e sintomas avaliados.

  3. A presença de febre, cefaleia e mialgia foi a combinação mais frequente e ocorreu em 17% dos casos.

Referências


  1. Ministério da Saúde. Dengue: Diagnóstico e manejo clínico adulto e criança. 4º edição, Brasília/DF, 2013. https://bvsms.saude.gov.br/bvs/publicacoes/dengue_diagnostico_manejo_clinico_adulto.pdf↩︎

  2. Ministério da Saúde. Ficha de investigação: Dengue e Ferbre de Chikungunya. 2016. https://portalsinan.saude.gov.br/images/documentos/Agravos/Dengue/Ficha_DENGCHIK_FINAL.pdf↩︎

  3. Ministério da Saúde. Dicionário de dados. 2015. http://portalsinan.saude.gov.br/images/documentos/Agravos/Dengue/DIC_DADOS_ONLINE.pdf↩︎

  4. Petruzalek D. Read.dbc - Um pacote para importação de dados do DataSUS na linguagem R. XV Congresso Brasileiro de Informática em Saúde. 2016. https://docs.bvsalud.org/biblioref/2018/07/906543/anais_cbis_2016_artigos_completos-601-606.pdf↩︎

  5. Batra N, Spina A, Blomquist P et al. The Epidemiologist R Handbook. 2021. Chapter 36 - Combination analysis: https://www.epirhandbook.com/en/combinations-analysis.html?q=upsetr#combinations-analysis↩︎

  6. UpSet Package. https://upset.app/↩︎