terça-feira, 24 de março de 2020

Modelos matemáticos e contágios

Numa população, um elemento infectado pode provocar uma epidemia, ou não.
Se o contágio se fizer por contacto físico (social), os principais parâmetros a considerar serão o número de contactos (por dia) e a probabilidade de um contacto provocar um contágio.
Outros parâmetros importantes, serão o tempo da infecção, percentagem de casos letais, e se os sobreviventes ficam vacinados, ou não.
Numa população que se distribui de uma forma não uniforme, em comunidades com hábitos sociais variados, com distribuição geográfica variada, com dados de fiabilidade não comprovada, sugere um grande desafio de modelação e de previsão.
Num grupo uniforme, se, por exemplo, um infectado provocar 2 contágios por dia, aparentemente teremos um crescimento exponencial 1-2-4-8-16-32-64-128-... Será assim? Não parece.
O modelo exponencial só é válido numa população infinita, ou então, em grupos uniformes e enquanto o contágio não atinja valores significativos.
Nesta figura, o ajuste de uma curva exponencial a um caso real, a pandemia Coronavírus em Portugal na data de hoje: (ver código aqui)


Para estes números, parece aceitável a aproximação, que, basicamente, é um modelo recursivo, em que a população infectada no momento n depende apenas da população infectada momento n-1, ou seja, x(n)=Rx(n-1). No exemplo da figura, R=1.28.
Numa população finita, nomeadamente num grupo pequeno, o modelo exponencial tem limites, os valores atingidos não podem aproximar-se do total da população.
É aqui que surge o mapa logístico, mencionado noutro local deste blogue, também um modelo recursivo, mas que tenta reflectir a ideia de que a população infectada no momento n é proporcional à população infectada e à população não infectada no momento n-1, ou seja, x(n)=Rx(n-1)[N-x(n-1)].
Sem perda de generalidade, costuma considerar-se a população total ser 1 e x ser a fracção da população, e não o seu valor absoluto. Nesta figura, uma simulação com x(0)=0.0002 e R=1.28:


A população infectada cresceria muito rapidamente, abrandando para atingir o seu máximo em menos de 40 dias. Mas seriam catastróficos os valores atingidos.
Um modelo tem de ser mais elaborado, não se pode ficar pelo ponto de equilíbrio correspondente à exaustão da população. É necessário entrar em linha de conta com a percentagem de infectados que se tornam imunes, com o tempo de incubação, com a distribuição não uniforme da população, etc.
Curiosamente, estes modelos não andam muito longe dos modelos de influência, de contágio, de propagação de ideias nas redes sociais, desde a política à moda.
A revisitar noutro momento.

quarta-feira, 11 de março de 2020

O mapa logístico

O mapa logístico é a equação recursiva
     x(n) = rx(n-1)[1-x(n-1)]
com r no intervalo [0, 4] e condição inicial x(0) entre 0 e 1, e costuma ser usado para modelizar crescimentos exponenciais em que se considera a condição de a população ser finita.
A população total é 1 e r representa a taxa de crescimento. Neste exemplo, fizemos x(0) = 0.001 e r=1.04, isto é, um milésimo da população afectada e taxa de crescimento 4%.


Uma propriedade desta equação é que, para r no intervalo [1, 2], a população tende para (r-1)/r, independentemente do valor inicial x(0). Neste caso, aproximadamente 0.04.
Para outros valores de r, nomeadamente no intervalo [3,4], esta equação assume um comportamento caótico. Veja-se o caso em que r=3.6


Há muitas situações que podem ser modelizadas pelo mapa logístico, sempre que se misture quem escolhe de acordo com a maioria e quem escolhe de acordo com a minoria: eu escolho um curso porque muitos escolhem e eu não escolho um curso porque muitos escolhem, eu vou pelo caminho A porque a maioria vai e eu não vou pelo caminho A porque a maioria vai, etc.
Estes comportamentos são potencialmente geradores de situações caóticas.
Esta figura muito conhecida mostra o valor para que tende x(n) em função do valor de r


e revela aquele ponto de bifurcação a partir do qual o sistema se torna caótico. Ver, por exemplo, aqui.

terça-feira, 21 de janeiro de 2020

Placard

Estou a escrever uns minutos antes do Braga - Sporting, da Taça de Liga.
Lembrei-me - acho que pela primeira vez - de ir ver as apostas 1X2 no Placard, que estão em 1.97x, 3.70x e 3.70x, para a vitória do Braga, empate e vitória do Sporting, respectivamente.
Como é obvio, não há maneira garantida de ganhar num jogo destes.
Podemos distribuir o prejuízo, apostando por exemplo 100/1.97 no 1, 100/3.70 no X e também 100/3.70 no 2, e assim, qualquer que seja o resultado, ganhamos 100€.
Mas quanto é que teríamos de gastar para isso? 100/1.97 + 100/3.70 + 100/3.70 = 104.82€, mais do que os 100€, como seria de esperar. Estes 4.82€ seriam o lucro da organização...
Para ganhar, é preciso arriscar, como em tudo na vida...
O Placard não é um jogo de sorte pura, os conhecimentos futebolísticos do apostador têm uma palavra a dizer, o jogador pode apostar em acreditar mais ou menos num determinado resultado do que a média dos apostadores.
Vi agora que o Guimarães - Porto, de amanhã, paga 4.25x, 3.70x e 1.72x.
Se eu estivesse confiante em que o Guimarães não ganharia, poderia apostar 100/3.70 = 27.02€ no X e 100/1.72 = 58.14€ no 2, gastando 85.16€ e ganhando 100€ se um destes dois resultados se verificasse.
Claro que perderia os 85.16€ se o Guimarães ganhasse...

terça-feira, 19 de novembro de 2019

Aqui há mesmo informática...

Há quem considere ser este o mais curto grande artigo científico de sempre:
Não sei se é mesmo assim, mas o curioso é só seria possível escrevê-lo recorrendo a um computador e a uma linguagem de programação.
O computador foi o CDC 6600, da Control Data Corporation, o computador mais veloz do mundo de 1964 até 1969, e a linguagem de programação muito possivelmente terá sido Fortran.

terça-feira, 20 de novembro de 2018

Geometrias eleitorais...

A propósito das eleições midterm nos EUA falou-se por lá muito dos arranjos dos círculos eleitorais que elegem os membros do Congresso...
A ideia é sempre, círculo a círculo, "ganhar por pouco ou perder por muito", e para isso as vilas e comunidades são deslocadas entre círculos, de modo a maximizar o número de representantes eleitos.
Neste exemplo simples, há 100 alunos, divididos por 5 turmas de 20, e cada turma elege o seu representante. Supondo que desses 100, 40 são de uma côr e 60 de outra, o mais esperado seria haver dois representantes da côr minoritária e 3 da côr maioritária, mas nem sempre acontece...
Nestes exemplos,

temos um caso em que os vermelhos não elegem um único representante, um caso em que elegem 2 e um caso em que elegem 3, ou seja a maioria!
Esta observação leva a que se pense por vezes que a representação seria melhor por listas para as 5 turmas, em que a lista vermelha elegeria 2 representantes e a azul 3. O problema é que neste caso as turmas não ficariam representadas, não saberiam qual é o seu representante, e o sistema ficaria desvirtuado.
Os ingleses preferem os círculos uninominais, porque valorizam a relação entre eleitos e eleitores, sem a interferência dos partidos, e mantendo o poder sempre na mão dos eleitores.
Eu também!

segunda-feira, 2 de abril de 2018

O problema do coleccionador de cartas

Os supermercados têm o hábito de, em certas alturas, oferecer aos (filhos dos) seus clientes umas cartas para coleccionar. As cartas são oferecidas aleatóriamente, não podendo os clientes escolhê-las.
A questão consiste em saber quantas cartas terá um coleccionador de acumular, em média, para completar a sua colecção.
É um problema semelhante àquele de saber quantos lançamentos de um dado deve uma pessoa fazer, em média, para obter as seis faces. A resposta a esta questão é
que é a soma dos inversos das probabilidades de sair a primeira, a segunda, a terceira, a quarte, a quinta e a sexta faces, respectivamente.
No caso geral de N cartas,
que pode ser um número "assustadoramente" grande. Por exemplo, para 100 cartas, o número é 518.7, ou seja, em média, seria necessário recolher mais de 518 cartas para completar a colecção.
Este processo aleatório caracteriza-se por ter uma cauda longa, isto é, pode acontecer ser necessário esperar um tempo estranhamente longo para obter todos os resultados...
O gráfico seguinte corresponde a 1100 milhões de simulações do jogo dos dados, e houve uma vez em que foram necessários 127 lançamentos para saírem as seis faces!
Entretanto, a moda, o valor mais frequente, foi 11, bem inferior à média de 14.7!
(recordo aqui uma simulação em NetLogo que há uns tempos propus)

terça-feira, 27 de março de 2018

Enganos e confusões

Gosto de vez em quando dos Desafios do Público de domingo. Como este:
A Mafalda pediu a dois amigos que lhe calculassem o produto de dois números. A Carlota obteve 41891 e o Alessandro obteve 42168! E porquê? Porque por um lado o primeiro número terminava em 1 mas a Carlota confundiu-o com um 7, e por outro o segundo terminava em 3 mas o Alessandro viu lá um 8.
Quais seriam os números da Isabel?
Se x e y forem os números procurados, sabemos então que
     (x + 6) y = 41891
     x (y + 5) = 42168.
Uma boa tentativa de resolver este problema pode passar por olhar para decomposições em factores destes dois resultados. Começando pelo menor
     41891 = 163 . 257 (única!)
ficamos com duas possibilidades (163, 251) ou (157, 257), e como
     251 . 168 = 42168
concluímos que x = 251 e y = 163.
Resta-nos aguardar pelo veredicto dos autores do desafio...