segunda-feira, abril 13, 2020

Mais modelos.

Em abstracto, um modelo matemático é um conjunto de operações sobre parâmetros ajustáveis. Conforme o que queremos fazer, seja separar exemplos em classes, estimar distribuições ou aproximar uma curva a um conjunto de pontos, mexemos nesses parâmetros até ficar como queremos. A popularidade da curva logística na modelação amadora da COVID-19, a tal curva que maltratei no post anterior (1), deve-se à facilidade com que aproxima qualquer coisa que pareça um “S”, seja o acumulado de infectados seja os casos novos por dia. No entanto, para o problema concreto de analisar os dados, o modelo não é uma mera abstracção matemática. É uma ferramenta que deve servir para ajudar a esclarecer o que se passa ou ajudar a prever o que ainda não sabemos. Há modelos que ajudam a prever mesmo sem se perceber o que fazem mas isso só funciona quando os dados aos quais se ajusta o modelo vêm da mesma distribuição daquilo que queremos prever. Com a COVID-19 em Portugal não dá para fazer isso porque não temos um lote de Portugais onde treinar e validar os modelos que depois serviriam para fazer previsões acerca deste Portugal em que vivemos. Portanto a abordagem tem de ser a outra. Precisamos de modelos cujos parâmetros correspondam a algum aspecto da realidade, que nos ajudem a perceber o que se passa e, se os parâmetros estiverem correctos, permitam prever o que pode acontecer a seguir. É isso que os epidemiologistas tentam fazer.

Eu não sou epidemiologista mas, aproveitando que se sabe poucos dos parâmetros necessários para um modelo a sério, vou atalhar com um modelo simplificado. O meu é assim:



Dos susceptíveis, no início quase toda a gente, vão saindo todos os dias uma fracção proporcional aos contagiosos. Esta fracção aumenta os infectados, que mais tarde se tornam contagiosos. Os valores nas arestas do grafo são as fracções por dia. Os contagiosos podem tornar-se sintomáticos ou assintomáticos, podem mais tarde curar-se e deixar de contagiar, ou ir parar ao hospital e ter mais azar com a doença. Assumo que no hospital já não vão contagiar muita gente pelo que quem contagia, neste modelo, são os contagiosos, os assintomáticos e os sintomáticos. Estes últimos são quem tem sintomas suficientes para ir ao hospital, ser declarado suspeito e eventualmente testado confirmando a doença. Por isso, é o total dos sintomáticos que comparo com o total de casos confirmados em Portugal para ajustar o modelo.

O parâmetro que ajusto é apenas o primeiro, a taxa de contágio*. Aquele valor de 0.522 resulta de ajustar a curva à fase inicial de crescimento exponencial. Depois, a partir do dia 31 da simulação (é o dia que optimiza o ajuste aos dados da DGS), o valor é reajustado para ter em conta as medidas de mitigação. Na curva que obtive fica a 0.031. Ou seja, cerca de 3% de probabilidade por dia, em média, de alguém com COVID-19 contagiar outra pessoa neste momento. Os restantes parâmetros são inventados com base no que parece ser o tempo de incubação e duração da doença, mas são muito questionáveis e, por isso, repeti o ajuste mil vezes variando aleatoriamente os outros parâmetros até ±30% do seu valor original. Estas são as curvas cujo ajuste foi pelo menos tão bom quanto o original:



Primeiro, as más notícias. É mais fácil prever o passado do que o futuro e se bem que todas as curvas se aproximem dos dados a dispersão das previsões é enorme, dependendo muito de parâmetros cujo valor desconhecemos. E uma percentagem significativa dispara para valores muito altos, com dois terços das simulações prevendo até 50 mil confirmados nos próximos 3 meses, mesmo mantendo as medidas de mitigação. Julgo que na DGS também sabem disto e é por isso que estão a apertar com medidas adicionais. Não estamos safos ainda. Mas também há boas notícias. Primeiro, parece que o tal pico já passou. Na verdade, ocorreu logo quando se impôs as medidas de mitigação, iniciando o decaimento da fracção de infectados e, por isso, de contagiosos. O problema é que esse decaimento pode ser ainda lento e demorar a reflectir-se nos casos que observamos, os sintomáticos, que só surgem mais tarde com o progredir da doença. Segundo, mesmo nas simulações mais pessimistas é óbvio que as medidas que se tem tomado tiveram um impacto grande na propagação da doença. Mais importante ainda, apesar da curva com os parâmetros que escolhi estar no limite optimista da distribuição das simulações, o meu modelo em si é pessimista. Eu estou a assumir que a população é homogénea e a aplicar a toda a população os parâmetros que ajustam a curva aos casos confirmados. Mas a população é heterogénea, algumas pessoas resistem melhor que outras, e os casos que temos até agora são tendencialmente de pessoas mais susceptíveis. Não consigo estimar essa heterogeneidade mas é um factor importante e é provável que a curva real seja mais favorável do que a minha.

Adianta de pouco ajustar modelos arbitrários aos dados que temos ou tentar descobrir “o pico” porque o que importa é o que vem a seguir e isso depende de muitos parâmetros desconhecidos. Mais importantes ainda do que os parâmetros biológicos da doença são os factores psicológicos e económicos das pessoas. O bicho não está morto. Mexe-se pouco porque lhe pusemos um pé em cima e levantar o pé agora seria um desastre. Para evitar esse desastre é preciso resolver com urgência os problemas de quem não tem meios para ficar em casa à espera da vacina. Se bem que geralmente os problemas dos pobres sejam os menos prioritários, desta vez tenho esperança que lhes dêem a devida importância porque, situação rara, desta vez a saúde e a vida dos ricos depende das condições em que vivem os pobres. É preciso agora que todos percebam o perigo que correm se não colaborarem.

* Ajusto também o número inicial de infectados para dar certo com os dados da DGS a partir do 10º dia da simulação

Actualizei o código na pasta partilhada. Mas aviso que cada vez tem mais tralha feita cada vez com menos tempo e com código cada vez mais confuso.

1- Inflexão

quinta-feira, abril 09, 2020

Inflexão.

Tenho implicado regularmente com quem usa a curva logística para prever quando a epidemia estará controlada. Em parte é feitio. Gosto de implicar. Mas, neste caso, tenho outras razões para isso.

Se pusermos um pouco de iogurte em leite morno, os bacilos começam a reproduzir-se. Cada um divide-se em dois, esses dois em quatro, oito, dezasseis, e assim por diante. A isto chama-se crescimento exponencial porque o número depende de uma constante elevada ao tempo e que, por isso, tem o tempo em expoente. Mas é mais fácil perceber a curva exponencial como sendo em cada instante proporcional ao que era no instante anterior. Seja a crescer seja a diminuir. Por exemplo, o pneu furado perde, a cada instante, uma fracção constante da pressão que tinha, num decaimento exponencial também.

Mas voltemos ao iogurte. Como o leite morno não é infinito, eventualmente os bacilos terão menos alimento e o seu crescimento irá abrandar até ficar tudo em iogurte. Assim, por causa desta limitação, o número de bacilos em função do tempo não dispara para o infinito mas faz uma curva em “S”, eventualmente estabilizando. A função logística é um bom modelo para estes casos em que o crescimento exponencial encrava no limite rígido da capacidade do sistema. É também isto que acontece quando um vírus se propaga tanto pela população que começa a ser difícil encontrar vítimas por infectar. Eventualmente há tanta gente doente ou imune que a infecção pára de crescer. Uma propriedade simpática da curva logística é que o ponto em que a taxa de crescimento deixa de aumentar e começa a diminuir (o famoso ponto de inflexão) corresponde a metade do valor máximo. Diz-nos logo onde a curva vai parar. Por isso muita gente procura o ponto de inflexão da COVID-19 para prever o patamar. Não é boa ideia.

O gráfico abaixo mostra o número de casos confirmados na Coreia do Sul contando a partir do dia em que houve pelo menos 100. Ajustando a curva logística aos dados até ao dia 15, até ao dia 16, e assim por diante até ao dia 20, o resultado é bastante consistente. Tendo passado o ponto de inflexão no dia 10, o abrandamento do crescimento a seguir sugere a tal curva em “S” que pára por volta dos oito mil casos. O problema é que não pára. E a razão para isto é que o “S”, neste caso, não tem nada que ver com o iogurte ou a infecção descontrolada. Com cinquenta milhões de habitantes, não é por ter oito mil infectados que o vírus fica com falta de espaço para crescer. O abrandamento deveu-se apenas à redução na taxa de novas infecções por causa das medidas tomadas e o crescimento a seguir depende do valor em que ficou essa taxa. E isso não dá para ver com a curva logística.



Para explorar isto corri umas simulações. Considero que uma pessoa infectada demora alguns dias até contagiar os outros, depois tem 50% de probabilidade de não ter sintomas, continuando a contagiar os outros até se curar. Se tiver sintomas acaba por ser testada*. São essas pessoas que notamos no número de confirmados. O gráfico abaixo mostra dois casos. Em ambos os casos, a infecção começa com 200 infectados, que uns dias depois se tornam contagiosos e começam a passar a doença a outra pessoa com 20% de probabilidade por dia. Isto dá o tal crescimento exponencial. Ao dia 40, nesta simulação, o governo toma medidas extraordinárias e a taxa de contágio cai abruptamente. Pode ver-se um efeito imediato no grupo das pessoas contagiosas. Mas isto só se vê na simulação. Na realidade, não sabemos o que se passa com essas pessoas porque só vemos o sub-conjunto que tem sintomas. Neste, o efeito surge gradualmente e aparenta chegar ao tal ponto de inflexão no dia 50, aproximadamente, quando a curva parece afastar-se da exponencial. Mas isto não é por ter chegado a meio caminho do máximo. Não é uma curva logística. É apenas o efeito da taxa de contágio ter diminuído por causa das medidas tomadas.



Isto também mostra como o resultado depende crucialmente da eficácia das medidas. O gráfico da direita mostra a simulação em que a probabilidade de contágio caiu para 1.2% por dia. Neste caso**, a propagação baixou o suficiente para a epidemia ficar controlada. Mas se as medidas tomadas baixarem a taxa de contágio dos 20% originais para 2.2% em vez de 1.2%, ficando aquém só um ponto percentual, a doença continua descontrolada. É por isso que me preocupa a travagem na queda da taxa de crescimento dos casos de COVID-19 em Portugal, que podemos ver no gráfico abaixo. Se chegarmos a 1 sabemos que o problema está controlado, pelo menos enquanto mantivermos as medidas de mitigação que temos agora em vigor. Mas até lá não adianta andar à procura do “ponto de inflexão” ou a fazer previsões de patamares com modelos logísticos. A curva logística é o modelo errado porque estamos muito longe de atingir o máximo de capacidade do vírus infectar a população. E o progresso futuro, mesmo mantendo as condições como estão agora, depende muito de diferenças demasiado pequenas para se detectar por enquanto olhando para os pontos.



* Na pasta partilhada incluí o código para estes gráficos e simulação. Estão lá os parâmetros para estas probabilidades para quem quiser ver, e simulo também os casos críticos, mortos e recuperados, mas esses detalhes não são importantes para este post. Está tudo aqui.
** A simulação é estocástica e não dá sempre exactamente os mesmos resultados. Mas corri várias vezes e, com estes valores, dá isto em geral.