The global response to Covid-19 has been phenomenal. From a radical change to social norms to public reliance on open realtime data. We think it has become time to start interacting with Covid-19 in a new way. Instead of chasing past cases and alerting all those who had been exposed it's now time to use that framework to predict whether or not you are at risk with your current social circle.
What it does
It collects Covid-19 cases from user input and, using this information, computes the risk for each individual in the network to come into contact with Covid-19 over the following days.
Furthermore, we make an analysis of your tightly connected communities in your social graph and create a likelihood that the community is at risk. We provide these groups to the user with the intention that you can identify safe groups to meet individuals from.
How I built it
We began by building a model for Covid-19 risk, in order to determine the likelihood that someone will get infected over the following days. We continued with a stochastic model for Covid-19 epidemiology, for simulating the spread of the disease through the social network. We finished with community discovery in ego-networks, with the goal of outputting a per-community overall risk of contacting Covid-19.
Challenges I ran into
Real Facebook data would have been ideal for populating the social network with ego networks. Unfortunately, that would have made it impossible to test the application because we would have needed a very large number of people to install the application. Facebook data would have included the location, age, events attended, etc. Furthermore, GPS location would have been useful for tracking the exact location history. Initially we used http://snap.stanford.edu/data/ego-Facebook.html but now we're using the marvel social network from kagel
The transmissibility of a disease in a small-world network is a non-trivial topic, and it has been analyzed by many scientific papers, which we filtered through to find the required information. Given the lack of real data, we had to think of ways of mocking the transmission of the disease in a real-time running simulation.
Accomplishments that I'm proud of
We have a real-time system with a server written from scratch. I would have loved to have used a lambda server or firebase for this but doing it by hand was very satisfying.
Comprehending a series of papers on disease transmission.
Finding the Marvel™ social network.
Working for 19 hours straight.
What I learned
Social networks have a very low degree of separation. Lots of interesting facts about the transmission of diseases in small-world networks. Weird facts about Covid-19's incubation and recovery stats. A new web framework (grommet, made things so easy).
What's next for Infectiness
Have users sign in with Facebook in order to gain access to their ego networks. Use real-time GPS data to model likely infections in the same way that the current Covid-19 tracking apps work and feed this into our model.
Use two other models for calculating risk:
- Simulate the spread of Covid-19 through the graph according to a likelihood of transmission and susceptibility over a time series. Repeat this a large number of times until we stabilise on the likelihood of any particular node getting infected at date x.
- Compute a likelihood of getting infected which is proportional to the number of Covid-19 cases, the number of paths to each of these cases, inversely proportional to the length of those paths, and the size of your ego network.
Include more features like individuals' age, medical history, etc.
(hosted site still pending)