Not another COVID model!
Disclaimer: Opinions expressed are solely my own and do not express the views or opinions of my employer.
Clarity is what everyone needs in times of crisis. Sadly, that's a commodity harder to find than hand-sanitizers today!
Here's my attempt to provide some insights on the COVID-19 crisis, through 8th grade math and intuitive systems thinking, that might unravel some counter-intuitive themes.
This is not yet-another-sophisticated-epidemiological-model for prediction. This is only an exercise in understanding and explaining lucidly - the growth and evolution of our current situation.
I will be using fake "input" numbers to illustrate dynamics which are real.
MODEL
Below is a visual representation of the flow of people, information, energy in a population hit by a virus (like COVID-19).
The blue rectangles represent number of humans that flow from one state (healthy, infected, dead) to another. These numbers rise and fall like water in a bathtub.
The ovals represent rates. Think of them as faucets that determine how fast or slow water should flow in/out of the bath tub.
[Fig 1]
The model is parsimonious in variables by intent, to illustrate the dynamics of the problem at hand in simple terms.
Note: I used an online software called InsightMaker to build this model.
ASSUMPTIONS
- Population = 1 million people. Static population with no births/deaths/migration.
- Contact Rate = 24 people per person per day. One could also get infected through fomites which doesn't need direct contact with people. But, for simplicity sake let's say this number includes such contacts. [Heuristic]
- Infectivity = 10%. This is the rate at which one gets an infection if they were to come in physical contact with the carrier.
- Infected = 1 person initially, then it depends on how many people the infected come in contact with and what is their infectivity. So:
Infected (t+1) = Infected (t) + {Infected (t) * Contact Rate * Infectivity}
RESULTS
a) In this toy scenario where everyone in the population of 1 million meet 24 randomly selected people every day, 60% of the population is infected by Day 16, with just 1 infected person to start with.
[Fig 2]
Note: As people get infected, they are likely to be less active and their contact rate will drop. I am not including that important dynamic in order to highlight the difference in growth from varying contact rates. In order to compensate for this important exclusion, I cap the y-axis at 60%.
b) Now, if we were to ask everybody to reduce their contacts by half (i.e. 24/2 = 12 people per person per day), we see this:
[Fig 3]
It appears like we have solved the problem. No outbreak in 50 days! The green line is just slightly up-ticking. Let's see how it pans out by extending the x-axis:
[Fig 4]
The green line doesn't seem that innocent anymore, does it? In fact it seems just as sinister with 60% of the population getting infected.
The good news is it has taken more than 60 days instead of 15 days to reach that level.
This additional time can :
(i) Give researchers an opportunity to come up with an antidote (another causal relationship I did not add to my model, in order to keep it simple);
(ii) Prepare healthcare infrastructure to space out the cases they can handle, as shown in this beautiful graph that's doing the rounds on Twitter (allegedly from CDC & The Economist).
[Fig 5]
c) What if we asked the population to further contain their social life to 10 people per day?
[Fig 6]
The blue line representing this change is almost invisible. Perhaps it's the same dynamic we saw in [Fig 3] vs [Fig 4], that can be solved by extending the x-axis?
Let's do that:
[Fig 7]
Nope. It still stays pretty low. This phenomenon seems different.
So, what's the magical thing that happened between contact rate of 12 -> 10 people per day?
Let's check either sides of 10 and look at the volumes (i.e. number of infected) instead of the rate (% of population infected).
[Fig 8]
This graph turned out to be visually useless, so let's zoom-in to the first 15 days:
[Fig 9]
Now it's visually apparent that number of infected at CR = 10 persons/day grows linearly. This seems obvious when we substitute these values to our equation for infected:
Infected(t+1) = Infected(t) + {Infected(t) * Contact Rate * Infectivity} = Infected(t=2) = Infected(t=1) + {Infected(t=1) * Contact Rate * Infectivity} = Infected(t=2) = 1 + (1 * 10 * 10%) = 2
Similarly,
Infected(t=3) = 2 + (1 * 10 * 10%) = 3 Infected t=4) = 3 + (1 * 10 * 10%) = 4
and so on ...
From here, it's intuitive that number of infected at CR = 11 will grow faster because of the compounding effect (like the interest in your back account) and at CR = 9 it will grow sub-linearly.
Now, if we were to represent [Fig 8], in a more visually digestible way where the y-axis represents a 10x growth with every unit jump, while x-axis stays the same (this is called a semi-log plot in DS speak), we get this:
[Fig 10]
We can clearly see that on Day 100, at CR = 10 p/d, number of infected is exactly 100x of Day 1; but at CR = 11 p/d it is more than 10000x of Day 1!
The reason to belabor this point is that when you look at a graph like [Fig 9] on Day 10, you don't expect it to look like the doom scenario of [Fig 8] by Day 100.
TAKEAWAY:
- Unless a virus is contained in some manner, it will spread pretty quickly. Don't be misguided by the low numbers in the early days of an epidemic.
- Every small action counts. Look at [Fig 6]. Just reducing 2 contacts per person per day in this fictious town stopped an epidemic (by bringing it below the super-liner multiplication rate). Even when that wasn't possible, by halving the contact rate, this town could delay the uncontrollable spread by ~2 months.
- Every day counts. Look at [Fig 2]. Most of the growth happened from Day 13 thorough 16, with % infected going from 6% -> 15% -> 36% -> over 60% in 4 days!
LEVERS:
[See numbering in the diagram in [Fig1]]
#1. Reduce Contact Rate
- Practice common sense measures like not being in crowded places where you could get in physical contact with a carrier or transmit the virus if you are a carrier. Examples: public transport, schools, offices, gym, concerts, weddings etc.
- Use the power of the internet and technology. Examples: VC-meeting, buying groceries online, eating-in etc.
- Yes, this is bad for business. But, health >> wealth.
Here's a clever image that captures the power of social distancing:
#2. Reduce Infectivity
- Stay healthy. Your general immunity is a function of things you don't have control over, like genes, age etc. but also things you do have control over like smoking habits, cardiovascular health etc.
- Maintain hygiene. Since COVID is transmitted through droplets, touching your face (sp. eyes, nose, mouth) with fingers that may have been contaminated puts you at risk. So, washing hands regularly and not touching face reduces chances of infection, even if you came in contact with a carrier. [Source]
#3. Reduce Fatality
- Build science and health infrastructure. This is an action item for community leaders. When there are good research institutes to find solutions to such problems, and good healthcare facilities to deal with it, fewer people die.
- Vote for leaders who have Healthcare as a top priority on their mandate. And not just for you, but for everyone. A society's life is as good as its most vulnerable members. Also, help those for whom it is not a question of 'health vs wealth' but 'death vs survival', by choosing policies that build sustainable inclusive systems that work for everyone.
***
It would be great if not just policy makers, product managers, political leaders, but every citizen of the world adopted a 'Systems' mindset for solving these kind of problems.
I encourage budding data scientists, analysts, quants entering the job market to also educate themselves in 'Systems Thinking' and simple communication. Not every problem needs to solved by using XGBoost and Random-Forest blindly.
Here are some great introductory books for everyone:
1. Thinking in Systems, by Donella Meadows
2. The Model Thinker, by Scott Page
VP Analytics Manager
4 年Good job sandeep! Putting our SD work to good use. Only thing I would add in, unless I missed it, is the incubation period. The longer people can have it without knowing it will affect the contact rate (higher). You may leave it out of scope cause it can muddy the insights.
Delivering customer centric solutions
4 年Hi Sandeep Nair well laid out..... truly insightful....complex compounding of numbers simplified.... great post