sexta-feira, 1 de janeiro de 2021

Epidemias e Redes [2]

O vírus que causa a CoVid-19 transmite-se principalmente através das gotículas que são geradas quando uma pessoa infetada tosse, espirra ou expira. É um facto.
Estas gotículas acabam por se depositar nos pavimentos ou superfícies, se entretanto não entrarem no corpo de outra pessoa, ou através da respiração, ou através de gestos como levar a mão à boca.
A propagação da doença é uma questão de probabilidade: numa população, quantos contactos se verificam num determinado intervalo de tempo, em quantos desses contactos intervém um infectado, e qual a probabilidade de haver uma transmissão.

fonte: https://thespinoff.co.nz/

Se, durante o tempo em que está infectado, cada pessoa contactar outras pessoas, pode acontecer que o número de infectados aumente, ou não.
O muito falado índice de transmissibilidade Rt resume, para um país, ou para uma região, como evolui a doença: se num determinado dia houver N infectados, no dia seguinte haverá N.Rt, depois N.Rt^2, etc, num crescimento exponencial


que, como esta figura demonstra, é extremamente sensível ao valor de Rt. Uma pequena variação de Rt pode ter efeitos catastróficos no número de infectados.
Reduzir o número de contactos, ou o tempo de cada contacto, ou a facilidade com que o vírus se transmite entre duas pessoas, por exemplo usando uma máscara adequada, reduzem o valor de Rt, e uma pequena redução de Rt pode ter um grande efeito da propagação da doença.
Por outro lado, a letalidade de cada extirpe do vírus, a percentagem de infectados que não sobrevive à doença, sendo um índice muito importante da sua perigosidade, não tem este efeito exponencial. Na realidade, o número de vítimas cresce linearmente com este índice.

terça-feira, 8 de dezembro de 2020

As transferências de jogadores de futebol

Encontrei há uns tempos um dataset com as 250 transferências de jogadores de futebol mais caras, cada ano, entre 2000 e 2018.
São 615 os clubes envolvidos, e achei curioso estudar esta rede.
Comecei por fazer um ranking dos clubes pelo número total de transferências


e registando também o grau In (total de jogadores recebidos) e o grau Out (total de jogadores transferidos).
São os tubarões de costume, uns com saldo positivo e outros com saldo negativo entre o In e o Out, tudo com o seu significado.
A rede de transferências que envolve estes clubes mostra a existência de um certo número de "comunidades" de clubes e alguma subtis diferenças quando se consideram os jogadores recebidos


ou os jogadores transferidos


As comunidades detectadas representam conjuntos de clubes em que há mais transferências intra comunidade do que entre comunidades.
Todo um "mundo" a explorar...

sábado, 11 de abril de 2020

Epidemias e redes [1]

As epidemias transmitem-se pelas redes de contactos físicos dos humanos. Assim, para estudar epidemias é necessário saber como os humanos se movimentam, dentro das suas comunidades homogéneas, entre comunidades geograficamente vizinhas, e entre comunidades distantes usando meios de transporte como o avião.
A difusão de epidemias não será muito diferente da difusão de ideias, ou de comportamentos, só que aqui também estes se podem movimentar entre comunidades distantes através de um simples WhatsApp ou um programa de televisão, por exemplo.
Num modelo altamente simplificado, supomos que a infecção dura um dia, e que todos ficam curados, mas não imunizados, e que só intervêm dois factores, k, o número de indivíduos que um indivíduo pode infectar, e que tem a ver com o seu isolamento pessoal, e p, a probabilidade de um indivíduo ser infectado, que depende das suas vulnerabilidades próprias e do uso de dispositivos de protecção individual.
Neste modelo simples, numa população homogénea surge um indivíduo infectado, que vai contactar com k indivíduos, que infecta com uma probabilidade p e tudo depende deste valor R0=kp.


Se R0 for menor que 1 a infecção vai eventualmente extinguir-se e se R0 for maior que 1 vai eventualmente propagar-se a toda a população, ao fim de algum tempo.
Sem esquecer que se trata de probabilidades, e que, portanto, se os números forem pequenos os resultados podem parecer inesperados, aquele factor R0 é determinante para a propagação da epidemia.
Qualquer que seja o valor de R0 > 1, o crescimento será inicialmente exponencial, mas não crescerá indefinidamente, pois à medida que se aproxima da população total começa a ser difícil encontrar indivíduos disponíveis para infectar.


Nesta figura, começamos com um único infectado no dia inicial, e vê-se que o crescimento da epidemia é muito sensível ao valor de R0.
Analisaremos em próxima publicação os efeitos da imunidade e do esgotamento da população não infectada.
Uma boa referência é este capítulo do livro Networks, Crowds, and Markets: Reasoning about a Highly Connected World, de David Easley e Jon Kleinberg, Cambridge University Press, 2010.

sexta-feira, 8 de novembro de 2019

Um ranking ATP

Estabelecer o ranking dos jogadores profissionais de ténis ao logo de uma época ou de um conjunto de épocas é uma tarefa complexa.
Não jogando todos contra todos, pode pontuar-se mais os resultados em torneios mais valiosos, com os pontos crescendo de eliminatória para eliminatória, como actualmente é feito, ou pode considerar-se cada resultado como uma interacção entre dois jogadores (direccionada, do vencido para o vencedor, por exemplo) e usar uma métrica de ranking da rede de resultados (PageRank ou eigenvector) para o ranking global, valorizando mais as vitórias sobre jogadores melhor classificados.
No sítio data.world encontramos um ficheiro muito completo com todos os resultados de todos os torneios de ténis ATP desde 2000-01-31 até 2019-10-27 (54846 jogos, ao longo de quase 20 anos), do qual extraímos facilmente uma lista de pares ordenados (vencido, vencedor) que abrimos na ferramenta Gephi.
Nesta figura, onde só constam os jogadores com mais de 100 vitórias, temos os vértices da redes e etiquetas com tamanho proporcional ao PageRank e usamos o algoritmo fornecido para descobrir comunidades, que acabou por agrupar os jogadores de acordo com as gerações a que pertencem e também com os continente em que mais vezes jogam:


Sem surpresas, Federer, Nadal e Djokovic lideram este ranking.
O que fica patente é que seria possível aprofundar este estudo, ver as dinâmicas das classificações ano a ano, ver a influência dos pisos dos courts, etc.
Deixo a sugestão...

terça-feira, 13 de agosto de 2019

Os TopColegas

Nada como um pequeno desafio para estudar um assunto qualquer.
Tenho vindo a estudar algumas packages muito interessantes de Python, nomeadamente Requests: HTTP for Humans, que simplifica os acessos a páginas Web, e NetworkX, para redes complexas e grafos.
Para me ajudar neste estudo, coloquei a mim próprio um pequeno desafio, que consistiu em utilizar uma plataforma muito interessante sobre jogadores de futebol - ForaDeJogo - e nomeadamente uma funcionalidade designada por TopColegas, que, para cada jogador, indica quais os outros jogadores que foram seus colegas o maior número de épocas.
Estudando a estrutura das páginas dos jogadores, e começando por um jogador, não é difícil descobrir uma forma de se extrair a informação necessária, e repetir sucessivamente a operação para cada colega, colega de colega, etc.
O meu pequeno programa produz os ficheiros csv de vértices e arestas que podem ser abertos directamente pela ferramenta Gephi, permitindo a obtenção de redes como esta:


Utilizei o algoritmo Force Atlas para o posicionamento dos vértices da rede.
Fico a aguardar reacções...

segunda-feira, 8 de julho de 2019

Todos os números vão dar a um

Uma conjectura conhecida - Collatz - diz que, tomando um número inteiro positivo e aplicando sucessivamente a seguinte regra
 - se o número for par, divido-o por 2,
 - se o número for ímpar, multiplico-o por 3 e somo 1,
chego inevitavelmente ao número 1.
Procurei as sequências para todos os números entre 1 e 100, e interpretei-as como uma rede de números, em que cada um aponta para o seguinte, segundo a regra anterior.
No total, passei por 251 números, e encontrei todo o tipo de percursos, desde o rápido até ao muito trabalhoso, como esta figura mostra


O caso mais interessante é o do número 97, que é aquele que requere mais iterações para se chegar finalmente ao número 1...
E o número maior por onde passei foi o 9232.
(coloquei aqui uma imagem de maior resolução)

terça-feira, 21 de maio de 2019

Geo-política da Eurovisão

Os dados das votações no Festival da Eurovisão revelam aspectos muito interessantes das relações entre os países, desde a simples simpatia entre eles até trocas obscuras de votos, como ainda se viu no último festival em Israel.
Esses dados estão disponibilizados por exemplo no site data.world, voto a voto, país a país, de 1975 a 2019.
Neste pequeno estudo, utilizei apenas as votações dos júris nas finais (ultimamente passou a haver duas meias finais, e voto popular), considerando todos os votos que cada país atribuiu a cada um dos outros, tendo obtido o grafo seguinte:


Neste grafo, o tamanho de cada vértice é proporcional ao número de votos recebido por cada país, e o seu posicionamento foi obtido utilizando um algoritmo de forças disponível no programa Gephi, que aproxima os vértices entre os quais as relações são mais intensas.
A Suécia foi o país que mais votos acumulou nestes 45 anos, e Andorra nunca recebeu um único voto...
As cores correspondem às três classes de modularidade descobertas pelo programa Gephi, que curiosamente dão uma leitura geo-política interessante: a laranja a velha Europa, a verde os países nórdicos, e a roxo a Europa de leste, com as suas excepções, naturalmente.
Ou não fosse esta análise essencialmente social.
[coloquei uma imagem de maior resolução aqui]