Como ler o atraso

            Cada caso de SRAG entra no SIVEP-Gripe dias ou semanas depois do início dos sintomas, e o resultado laboratorial chega ainda depois. Por isso as semanas mais recentes estão sempre incompletas.

            • Volume. O painel mostra as hospitalizações já notificadas e uma estimativa corrigida pelo atraso (nowcast). Cada caso notificado recebe peso 1/p, onde p é a probabilidade, estimada por um GBDT com local, população e idade, de um caso como ele já ter sido digitado. A validação retrospectiva ao lado recalibra, para cada semana de atraso, a parte faltante estimada e a largura dos intervalos de 95%.
            • Proporções. A distribuição dos vírus entre positivos é muito menos sensível ao atraso do que as contagens. No artigo, o erro cai rapidamente nas primeiras semanas e se estabiliza após cerca de 3 a 5 semanas para os principais vírus. Como no aplicativo original, as duas semanas mais recentes não são exibidas e as semanas com menos de 5 semanas de atraso aparecem como provisórias.

            Reading the delay

            Each SARI case enters SIVEP-Gripe days or weeks after symptom onset, and lab results arrive later still, so the most recent weeks are always incomplete.

            • Volume. The dashboard shows the hospitalizations already reported and a delay-corrected estimate (nowcast). Each reported case gets weight 1/p, where p is the probability, estimated by a GBDT using place, population and age, that a case like it has already been entered. The retrospective validation shown here recalibrates, for each week of delay, the estimated missing part and the width of the 95% intervals.
            • Shares. The virus distribution among positives is far less sensitive to delays than counts. In the paper, error drops quickly in the first weeks and stabilises after about 3–5 weeks for the main viruses. As in the original app, the two most recent weeks are not shown and weeks with less than 5 weeks of delay are flagged as provisional.

            O que este painel mostra

            O painel acompanha os vírus respiratórios entre as hospitalizações por Síndrome Respiratória Aguda Grave (SRAG) notificadas no SIVEP-Gripe. Os dados vêm das bases abertas do Ministério da Saúde (OpenDataSUS) e são reprocessados a cada nova liberação.

            Como o painel está organizado

            O painel produz dois tipos de estimativa, e cada um tem sua aba.

            • Panorama (agregado): quantas hospitalizações ocorreram numa área (notificadas e nowcast), quantas por vírus e a composição de vírus entre os casos. São contagens, e contagens semanais só são informativas onde há casos. A maioria dos municípios tem, em média, menos de uma hospitalização por SRAG por semana. Por isso o Panorama só mostra áreas e faixas etárias com média de pelo menos 5 hospitalizações por semana nas últimas 52 semanas exibidas (). Quando se escolhe uma área menor, o painel mostra a menor área que a contém e atinge esse volume: região de saúde, macrorregião de saúde e, por fim, estado. Regiões e macrorregiões seguem a divisão oficial do SUS publicada pelo DATASUS. As faixas etárias são fixas: menos de 2 anos, 2 a 4, 5 a 14, 15 a 59 e 60 anos ou mais.
            • Paciente (individual): a distribuição de vírus de um paciente de determinada idade, internado num município numa semana (NViDAS). É uma probabilidade condicional, não uma contagem. Para faixas etárias, use o Panorama. O modelo a estima em qualquer município e idade usando informação de locais, idades e semanas semelhantes, e o card “Por que esta estimativa?” mostra em quais municípios ele se apoia.

            O Mapa e ranking compara áreas nas últimas 4 semanas, pelo município do hospital ou de residência, com todas as idades (taxa bruta ou padronizada por idade) ou por faixa etária. Áreas com poucos casos ficam hachuradas.

            1. Distribuição dos vírus (ViDAS)

            A proporção de cada vírus entre os casos com vírus identificado é modelada como uma probabilidade condicional, P(vírus | local, população, idade, semana). O modelo é um Gradient Boosting Decision Tree multiclasse com perda log-loss e softmax. A base não registra testes negativos por vírus, exceto influenza, e por isso o alvo é a composição entre positivos, não a positividade. Coinfecções geram uma linha por vírus.

            • NViDAS (idade exata): a probabilidade estimada para um paciente com a idade escolhida, no município e semana. É o gráfico do aplicativo original.
            • ANViDAS (estado, região, região de saúde e país): a média das probabilidades da NViDAS sobre os casos notificados nessas áreas, ponderada pela chance de cada caso ser positivo.

            Os modelos rodam no próprio navegador, a partir das árvores exportadas do LightGBM. A estimativa existe mesmo em municípios sem casos recentes: o modelo usa observações semelhantes em local, população, idade e período.

            2. Volume de hospitalizações

            A proporção não informa o volume. Por isso o painel também mostra quantas hospitalizações por SRAG ocorreram em cada semana de início dos sintomas, com correção do atraso de notificação (nowcast). Em cada caso já notificado, um GBDT estima p, a probabilidade de o caso ter sido digitado até a data da base, a partir do atraso observado nas semanas já completas. O total estimado é a soma de 1/p, com variância Σ(1−p)/p². Uma validação retrospectiva recalibra a parte faltante e a variância a cada semana de atraso (aba “Atraso dos dados”).

            3. Hospitalizações estimadas por vírus

            No Panorama, o card “Hospitalizações por vírus” tem um painel por vírus. As barras são as detecções do vírus confirmadas por exame. A linha é a estimativa do número de hospitalizações com o vírus, que soma três partes:

            • as detecções observadas nos casos com exame conclusivo;
            • os casos notificados sem exame conclusivo;
            • os casos ainda não notificados (nowcast, peso 1/p − 1 de cada caso).

            Nas duas últimas partes, a probabilidade de o vírus k ser detectado é π·gk·m. Aqui π vem de um GBDT de positividade e gk vem da NViDAS. Como a NViDAS é treinada com uma linha por vírus detectado, gk é uma fração das detecções. O fator m é o número médio de vírus detectados por caso positivo, estimado por estado, faixa etária e ano, com encolhimento para a média nacional. Em 2026, ele fica perto de 1,05 em adultos e de 1,2 em menores de 2 anos (de 1,0 a 1,3, conforme o estado) e vem crescendo com o uso de painéis multiplex. Um caso com coinfecção conta em cada vírus, então a soma dos painéis passa do total de positivos. Como o vírus observado é usado sempre que existe, a estimativa nunca fica abaixo das confirmações.

            O IC 95% soma duas variâncias: a do nowcast (calibrada pela validação retrospectiva) e a incerteza sobre qual vírus têm os casos ainda sem resultado. O erro dos modelos de positividade e da NViDAS não entra no IC. Além disso, a estimativa supõe que os casos sem exame se parecem com os testados com as mesmas características. O mapa de “hospitalizações por vírus” usa a mesma conta.

            O gráfico de proporções continua sendo a ANViDAS, que usa a NViDAS também nos casos com vírus identificado. Por isso, proporção × positivos estimados não reproduz exatamente as contagens por vírus.

            No Panorama, embaixo do gráfico de vírus, as barras cinza mostram os casos positivos já observados na área. Nas semanas com menos de 8 semanas de atraso, a barra clara acima mostra quantos positivos ainda se espera observar. Esse valor é o total de positivos esperados (resultados conclusivos, modelo de positividade para os demais casos e nowcast dos não notificados), multiplicado pela fração de positivos confirmados por exame nas semanas já completas do mesmo local e faixa etária, menos os já observados.

            4. Tendência

            A tendência de uma série (SRAG ou um vírus) é a variação por semana das hospitalizações estimadas nas últimas 6 semanas exibidas. O ajuste é log-linear, por mínimos quadrados ponderados: o logaritmo da estimativa semanal (+0,5) contra a semana, com variância (v + y + 0,5)/(y + 0,5)². Aqui v é a variância da estimativa (o nowcast e, por vírus, a incerteza sobre o vírus dos casos sem exame) e y é o termo de Poisson. Quando os resíduos variam mais do que isso (curvatura ou variação extra-Poisson), o erro-padrão é inflado pela dispersão de Pearson, e a probabilidade de alta vem de uma distribuição t com 4 graus de liberdade. “Em alta” e “em queda” exigem probabilidade de pelo menos 90%; nos demais casos, a tendência é estável ou incerta. Ela substitui a comparação entre as últimas 4 semanas e as 4 anteriores, que não tinha incerteza, e só aparece com pelo menos 10 hospitalizações estimadas em 4 semanas. No Panorama, o card “O que está mudando” mostra a tendência de cada série na área e lista as subáreas em alta (todas as idades). A tendência também aparece nos painéis, no mapa e no ranking. A semana mais recente tende a subestimar os vírus, porque a positividade dos resultados já liberados é menor nela, e isso puxa as tendências por vírus para baixo.

            5. Mapa: residência, faixas etárias e padronização

            As taxas e tendências do mapa podem usar o município do hospital (notificação) ou o de residência do paciente. Pela residência, os polos regionais deixam de concentrar os casos dos vizinhos; casos sem residência conhecida no Brasil (cerca de 2%) ficam de fora. Por faixa etária, até o nível de região de saúde, o denominador é a população da faixa no Censo 2022 (IBGE, tabela SIDRA 9514). A taxa padronizada por idade usa padronização direta em 13 faixas, com a população do Brasil no Censo 2022 como padrão, e permite comparar áreas com pirâmides etárias diferentes. No Brasil, ela coincide com a taxa bruta.

            6. Influenza A por subtipo

            No Panorama, um card separado divide as detecções de influenza A confirmadas por exame segundo o subtipo informado no RT-PCR: A(H1N1)pdm09 ou A(H3N2). “Não subtipado” reúne testes de antígeno (que não dão subtipo), amostras não subtipadas ou não subtipáveis e resultados inconclusivos. Resultados “outro” com o subtipo escrito por extenso (como “H3 sazonal”) são reclassificados pelo texto. São contagens observadas, sem nowcast: só parte das amostras é subtipada, e o subtipo costuma chegar depois da detecção.

            Cuidados de interpretação

            • As proporções refletem os vírus detectados sob as práticas de testagem vigentes. Comparar locais ou períodos supõe que a testagem foi semelhante; por exemplo, um hospital que testa só SARS-CoV-2 distorce a composição.
            • O perfil é o das infecções graves (hospitalizadas), não da circulação na comunidade.
            • No Panorama, o local é o município de notificação, ou seja, do hospital, não o de residência. No mapa, dá para escolher a residência.
            • Em locais com poucos casos, as estimativas dependem mais de informações de locais e períodos semelhantes.

            Referências

            • Silva, J.F.A., Soares, G.P., Bastos, L.S., Gomes, M.F.C., Izbicki, R. ViDAS: Timely and Granular Estimation of Respiratory Virus Distributions in SARI Surveillance in Brazil.
            • Silva, J.F.A., Soares, G.P., Bastos, L.S., Izbicki, R. (2024). Monitoring Viral Infections in Severe Acute Respiratory Syndrome Patients in Brazil. IWSM 2024, Springer. doi:10.1007/978-3-031-65723-8_12
            • Pacote Python PySRAG · Aplicativo original PySRAG_web

            What this dashboard shows

            The dashboard tracks respiratory viruses among Severe Acute Respiratory Infection (SARI) hospitalizations reported to SIVEP-Gripe. Data come from the Ministry of Health open data (OpenDataSUS) and are reprocessed with every new release.

            How the dashboard is organised

            The dashboard produces two kinds of estimate, and each has its own tab.

            • Overview (aggregate): how many hospitalizations occurred in an area (reported and nowcast), how many by virus, and the virus mix among its cases. These are counts, and weekly counts are only informative where there are cases. Most municipalities average less than one SARI hospitalization per week. The Overview therefore only shows areas and age groups averaging at least 5 hospitalizations per week over the last 52 weeks shown (). When a smaller area is chosen, the dashboard shows the smallest area containing it that reaches this volume: health region, then health macro-region, then state. Health regions and macro-regions follow the official SUS division published by DATASUS. Age groups are fixed: under 2, 2–4, 5–14, 15–59 and 60+.
            • Patient (individual): the virus distribution for a patient of a given age, hospitalized in a municipality in a given week (NViDAS). It is a conditional probability, not a count. For age groups, use the Overview. The model estimates it for any municipality and age by drawing on similar places, ages and weeks, and the “Why this estimate?” card shows which municipalities it leans on.

            Map & ranking compares areas over the last 4 weeks, by the hospital’s or the patient’s municipality, for all ages (crude or age-standardized rate) or by age group. Areas with too few cases are hatched.

            1. Virus distribution (ViDAS)

            The share of each virus among cases with an identified virus is modelled as a conditional probability, P(virus | place, population, age, week). The model is a multiclass Gradient Boosting Decision Tree with log-loss and softmax. Negative tests are not recorded per virus (except influenza), so the target is the composition among positives, not positivity. Co-detections create one row per virus.

            • NViDAS (exact age): the estimated probability for a patient of the chosen age, in that municipality and week. This is the original app's chart.
            • ANViDAS (state, region, health region and country): the average of NViDAS probabilities over the cases reported in those areas, weighted by each case's chance of being positive.

            Models run in the browser, from trees exported from LightGBM. Estimates exist even for municipalities without recent cases: the model draws on observations that are similar in place, population, age and period.

            2. Hospitalization volume

            Shares say nothing about volume, so the dashboard also shows SARI hospitalizations by week of symptom onset, corrected for reporting delay (nowcast). For each reported case, a GBDT estimates p, the probability that the case was already entered by the release date, learned from weeks whose reporting is complete. The estimated total is the sum of 1/p, with variance Σ(1−p)/p². A retrospective validation recalibrates the missing part and the variance at each week of delay (see “Reporting delay”).

            3. Estimated hospitalizations by virus

            In the Overview, the “Hospitalizations by virus” card has one panel per virus. Bars are detections of the virus confirmed by a test. The line estimates the number of hospitalizations with the virus as the sum of three parts:

            • detections observed in cases with a conclusive test;
            • reported cases without a conclusive test;
            • cases not yet reported (nowcast, weight 1/p − 1 of each case).

            In the last two parts, the probability that virus k is detected is π·gk·m. Here π comes from a positivity GBDT and gk from NViDAS. NViDAS is trained with one row per detected virus, so gk is a share of detections. The factor m is the mean number of viruses detected per positive case, estimated by state, age group and year and shrunk towards the national mean. In 2026 it is close to 1.05 in adults and 1.2 under 2 years of age (1.0 to 1.3 depending on the state), and it has been rising with the use of multiplex panels. A coinfected case counts for each virus, so the panels add up to more than the total of positives. Because the observed virus is used whenever there is one, the estimate never falls below the confirmed detections.

            The 95% CI adds two variances: the nowcast's (calibrated by the retrospective validation) and the uncertainty about which virus the cases still without a result have. The error of the positivity model and of NViDAS is not in the CI. The estimate also assumes untested cases resemble tested cases with the same characteristics. The map of “hospitalizations by virus” uses the same computation.

            The share chart is still ANViDAS, which uses NViDAS even for cases with an identified virus. Share × estimated positives therefore does not exactly reproduce the counts by virus.

            In the Overview, below the virus chart, grey bars show the positive cases already observed in the area. For weeks with less than 8 weeks of delay, the light bar on top shows how many positives are still expected. It is the expected total of positives (conclusive results, the positivity model for the remaining cases and the nowcast of unreported ones), multiplied by the share of positives confirmed by a test in already complete weeks of the same place and age range, minus those already observed.

            4. Trend

            The trend of a series (SARI or one virus) is the weekly change in estimated hospitalizations over the last 6 weeks shown. It is a log-linear weighted least-squares fit: the log of the weekly estimate (+0.5) against the week, with variance (v + y + 0.5)/(y + 0.5)². Here v is the variance of the estimate (the nowcast and, by virus, the uncertainty about the virus of untested cases) and y is the Poisson term. When residuals vary more than that (curvature or extra-Poisson variation), the standard error is inflated by the Pearson dispersion, and the probability of a rise comes from a t distribution with 4 degrees of freedom. “Rising” and “falling” require a probability of at least 90%; otherwise the trend is stable or uncertain. It replaces the comparison of the last 4 weeks with the previous 4, which had no uncertainty, and it is shown only with at least 10 estimated hospitalizations in 4 weeks. In the Overview, the “What is changing” card shows the trend of each series in the area and lists the sub-areas that are rising (all ages). Trends also appear in the panels, on the map and in the ranking. The most recent week tends to underestimate viruses, because positivity among results already returned is lower there, and this pulls virus trends down.

            5. Map: residence, age groups and standardization

            Map rates and trends can use the hospital’s municipality (notification) or the patient’s municipality of residence. By residence, regional hubs no longer absorb their neighbours’ cases; cases without a known residence in Brazil (about 2%) are left out. By age group, down to health regions, the denominator is the population of that age group in the 2022 Census (IBGE, SIDRA table 9514). The age-standardized rate uses direct standardization over 13 age bands, with Brazil’s 2022 Census population as the standard, so areas with different age pyramids can be compared. For Brazil it equals the crude rate.

            6. Influenza A by subtype

            In the Overview, a separate card splits the influenza A detections confirmed by a test by the subtype reported by RT-PCR: A(H1N1)pdm09 or A(H3N2). “Not subtyped” groups antigen tests (which give no subtype), samples not subtyped or not subtypeable and inconclusive results. “Other” results with the subtype written out (such as “seasonal H3”) are reclassified from the text. These are observed counts, without a nowcast: only part of the samples is subtyped, and the subtype usually arrives after the detection.

            Caveats

            • Shares reflect viruses detected under current testing practices. Comparing places or periods assumes similar testing; for example, a hospital testing only for SARS-CoV-2 distorts the mix.
            • The profile is that of severe (hospitalized) infections, not community circulation.
            • In the Overview, place means the notifying municipality (the hospital's), not the patient's residence. The map can use the residence instead.
            • Where cases are scarce, estimates lean more on information from similar places and periods.

            References

            • Silva, J.F.A., Soares, G.P., Bastos, L.S., Gomes, M.F.C., Izbicki, R. ViDAS: Timely and Granular Estimation of Respiratory Virus Distributions in SARI Surveillance in Brazil.
            • Silva, J.F.A., Soares, G.P., Bastos, L.S., Izbicki, R. (2024). Monitoring Viral Infections in Severe Acute Respiratory Syndrome Patients in Brazil. IWSM 2024, Springer. doi:10.1007/978-3-031-65723-8_12
            • Python package PySRAG · Original app PySRAG_web