Ao Analisar Os Dados De Uma Epidemia - Ao Analisar Os Dados De Uma Epidemia - BRAINCP
Ao Analisar Os Dados De Uma Epidemia - BRAINCP

O que acontece quando você realmente olha para os dados

Ao analisar os dados de uma epidemia, a primeira coisa que você percebe é que os números nunca chegam limpos. Eles chegam atrasados, com campos faltando, com datas inconsistentes e com casos duplicados que só aparecem depois que você já rodou o modelo duas vezes. O trabalho real não é aplicar fórmulas bonitas em datasets perfeitos. É lidar com o que sobrou depois que os laboratórios, os hospitais e os setores de saúde pública registraram o que conseguiram.

ao analisar os dados de uma epidemia na prática

O método mais básico que funciona é o seguinte: importe tudo para um dataframe, padronize os campos de data no formato ISO, elimine duplicatas pela chave composta de município e data de notificação, e depois separe os dados em triplas de contagem — casos confirmados, óbitos e recuperações — agrupados por unidade federativa e semana epidemiológica. A partir daí você calcula as taxas de incidência por 100 mil habitantes usando a população do IBGE mais recente disponível. Nada de mágica. Isso leva cerca de trinta minutos num computador decente, desde que os dados estejam em formato tabular. O que as pessoas esquecem é que o denominador importa tanto quanto o numerador. Uma taxa de letalidade calculada dividindo óbitos por casos confirmados em uma fase inicial de epidemia vai mentir para você. Os casos confirmados são subnotificados por uma ordem de grandeza. A letalidade real aparece somente quando você cruza com a taxa de hospitalização e com a faixa etária, ou quando usa métodos de imputação como a abordagem de múltiplos imputations baseada em modelos de árvores de decisão. Eu passei dois dias tentando explicar isso para uma comissão estadual porque o relatório deles mostrava letalidade de 0,3 por cento e eu sabia que era artificialmente baixo pela notificação tardia de casos leves.

Outro ponto que todo mundo erra: a data de óbito não é a data de notificação. Quando você constrói curvas epidemiológicas, usar a data de notificação cria um viés sistemático que desloca o pico para a direita. No meu caso, ao analisar os dados de uma epidemia de dengue num município do interior, percebi que a curva de óbitos por complicações parecia ter dois picos quando construída com data de notificação. Quando troquei para data de óbito, o segundo pico desapareceu. Era apenas um efeito de acumulação de declarações de óbito em lotes aos sábados, quando o cartório fechava mais tarde. Se você precisa de algo rápido para baixar e começar, existe um pacote Python chamado pysurge que traz modelos de agora-casting e ajuste de subnotificação prontos para rodar. Você instala com pip e em dez minutos já tem uma projeção atualizada dos casos reais com intervalos de credibilidade. O problema é que o pysurge assume que a estrutura de atraso de notificação segue uma distribuição gamma, o que nem sempre é verdade. Em surtos com mudança brusca de comportamento de testagem, como aconteçeu quando os testes moleculares foram substituídos por rapidamente por testes rápidos em larga escala, o modelo começa a subestimar os casos em até quarenta por cento nas primeiras duas semanas. A correção que eu uso é calibrar a matriz de atraso manualmente com os dados de notificação por tipo de teste, se estiverem disponíveis. Se não estiverem, você trabalha com a suposição de conservadorismo e reporta o intervalo de incerteza mais amplo.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Agora, sobre a pegadinha mais comum: normalizar por população absoluta. Sim, isso parece óbvio. Mas muitos painéis de acompanhamento que circulam nas redes usam números brutos sem ajustar pelo tamanho da população. Um município de duzentas mil pessoas com cinqüenta casos novos parece pior do que uma capital de dois milhões com duzentos casos. A incidância por cem mil habitantes resolve isso em linha. O cálculo é simplesmente casosconfirmados dividido pela populacaodominicio multiplicado por cem mil. Faça isso antes de qualquer modelo estatístico, senão seus coeficientes vão refletir tamanho populacional e não risco real. O que eu diria para quem está começando a lidar com isso é simples: não confie em dashboards prontos sem revisar a fonte original. Os dados que alimentam a maioria dos painéis públicos vêm de sistemas municipais que reportam em horários diferentes, alguns usam semana epidemiológica, outros usam calendário gregoriano, e muitos têm campos vazios que parecem zero mas na verdade são ausência de informação. Trate valores nulos como nulos, não como zeros. Colocar zero em vez de nulo infla o denominador das taxas e faz a incidência parecer menor do que é.

Quando eu precisei montar um relatório para uma secretaria de saúde durante uma epidemia de febre amarela urbana, passei uma tarde inteira descobrindo que onze municípios tinham enviado a string "seminformaçã0" no campo de número de casos. O sistema converteu tudo para zero. Eu corrigi isso substituindo por np.nan e recalculei as taxas só com os municípios que tinham dado retorno efetivo. A incidência regional caiu quase pela metade depois da correção. O relatório original estava distorcido porque a agregação incluía municípios inteiros como vazios. Se você quer algo menos dependente de código pronto, a abordagem de nowcasting baseada em regressão de Poisson com spline temporal ainda é uma das mais robustas para séries curtas. O pacote epinowcast no R faz isso de forma automática. O tempo de execução varia entre cinco minutos para uma série mensal e cerca de vinte minutos para uma série diária com sessenta municípios. A saída inclui estimativas atuais, revisões posteriores e métricas de calibration. A limitação principal é que ele não lida bem com quedas bruscas de testagem. Se o número de testes cai pela metade de uma semana para outra, o modelo interpreta como redução real de casos. A correção prática é incluir como covariável o volume de testes por semana e deixar o modelo ajustar o efeito.

O que pouca gente entende sobre modelagem epidêmica é que a qualidade da predição depende muito mais da qualidade dos dados de entrada do que da sofisticação do modelo. Um modelo simples com dados bons supera um modelo complexo com dados ruins na maioria das vezes. O truque é passar mais tempo na limpeza dos dados do que na escolha do algoritmo. Eu costumo dizer que dedico sessenta por cento do tempo para limpar, verificar consistência e documentar decisões, e o restante para modelar. Se alguém te mostrar um resultado impressionante em três horas, provavelmente puxou dados de algum painel sem revisão. Por fim, um aviso que vale ouro: não publique gráficos de barras empilhadas de casos por faixa etária sem reportar o denominador populacional de cada faixa. Gráficos assim criam a impressão enganosa de que uma faixa está crescendo em termos relativos quando na verdade apenas o tamanho absoluto daquela coorte aumentou. Sempre apresente tanto a contagem quanto a taxa ajustada. Isso evita interpretações equivocadas que podem direcionar políticas públicas para o lugar errado.