Understanding exponential growth: The corona pandemic

With the news going crazy these days, I felt like there is one particularly thing that is often misunderstood. The corona virus spreads exponentially (without intervention or measures). The problem is that we – as human beings – are very bad at imagining what an exponential trend looks like. By now, many differnet graphics and figures appear everywhere that aim to visualize the amount of infections or mortality rates per country. One of the most prominent examples is the following one:

NEW on coronavirus: many western countries may soon face Italy’s situation

Although this figure is not wrong, I would like to highlight one particular aspect. At first glance, the figure seems to suggest that the growth curves are “linear”. However, the devil is in the details. If you look closely, you realize that the y-axis is log-transformed. But was does that actually mean and why is it so important to understand such a procedure? In this post, I try to explain, show, and visualize exponential growth.

Disclaimer:
I would like to highlight that I am no epidemiologist or expert on virus outbreaks. My goal with this post is to explain exponential growth. My goal is not to provide a better understanding of the corona pandemic in general. Virologist, epidemiologist, and health care institutions are the experts that should be consulted in this regard.

How does exponential growth actually look like?

In what follows, I define a small function that allows us to simulate an exponentially growing vector. This means that each value is the previous value multiplied by a certain factor:

After 30 steps only, we have reached the crazy large number of 536,870,912 (more than 500 million!). At the same time, it seems that the growth only really takes off after 25 steps. But remember our previous calculation. We were already at 0.4 million after 20 steps. So let’s zoom in on the first 10 steps again:

After only 10 steps, we reached a number higher than 500. This steep growth was buried in the previous figure because the growth afterwards was just sooo much steeper.

No what happens if we logarithmize the y-axis (as it was done in the figure referenced above)?

plot1 +
scale_y_log10()

With only one short change in the code, it seems like we have plotted a linear growth. But again, check the y-axis closely. The distance between to points on the axis is not as equal as the figure suggest. From step 1 to step 10, the difference is 1:512 (an increase of 511). However, from step 10 to step 20, 512:524,288 (an increase of 523,776!).

Exponential growth based on percentages

Now in the case of the Corona virus spreading, we often quantify growth in percentage. So let’s consider another example. I now define a function that let’s us investigate different growth rates (based on percentages). So we again simulate a vector that represent exponential growth. This time, however, each value is the previous value plus a certain percentage of the previous value:

Again we see that the growth of 50% is a lot steeper compared to 5% or 10%. Let’s again zoom in.

plot2 +
xlim(0, 10) +
ylim(0, 50)

As we can see, a 50% growth leads to ~40 cases after 10 steps (bear in mind, we started with only 1).

Growth curves of the corona virus

Now let us visualize the growth curves of the corona virus infections per country. I therefore use the public data provided by the John Hopkins University (https://github.com/CSSEGISandData/COVID-19). For this purpose, I am only looking at the data from Germany.

The growth curve is on average ~15% (of course, we can debate if simply averaging across the growth rates per day is a good approach. Actually the figure in the tweet referenced above features a dotted line that represents a daily growth rate of 33% and most countries (including Germany) seem to approach that line). If we nonetheless use a growth rate of 15%, how would the increase in cases look like in a simulation for the next weeks and months?

Our starting value is 3,156 (the number of registered infections in Germany today).

The grey lines show the uncertainty in the simulation. The black curve shows the average growth rate based on the available data. It reveals that if the trend would continue, we would have more than 100,000 cases after only 25 days. Yet there are several things that have to be taken into account: First, the growth rate of 15% might be wrong (I admit that averaging across all days is a very crude way of estimating the growth rate) or may change over time. The large uncertainty (grey lines) shows already how largely the actual growth rate could vary based on my crude measure. For example, if the growth rate would be ~9%, we would have ~25,000 cases instead of ~100,000 after 25 days.

So how come that the news talk about a 33% growth curve now? Well, they only started to compute the growth rate after ~100 cases were identified. In the following figure, you see a simulated 33% growth curve plotted against the actual growth curve from the day when Germany had 100 identified cases.

As you can see, the curves align pretty well. If the daily growth rate would indeed approach 33% and stay this high for the next weeks, we would have ~2,961,940 cases after 25 days.

This is why acting now (both individually and on a societal level) is so important. We need to slow down this growth considerably. But we not only have to lower the actual infections, but also have to reduce the number of people who are infected at the same time. The latter is particularly important as the health system would otherwise not be able to treat all infected with the same care or even at all. The following video illustrates the effect of less infections at the same time on the health system very well:

Conclusion

Understanding exponential growth is hard. The problem is that we constantly underestimate the actual growth and its implications. In case of infections, this is very worrisome. And I fear that figures that log-transformed the y-axis (such as the one presented above) might provide a false picture of the actual growth.

So what do we need to do? With no treatment and a viable vaccine yet available, the only effective way to keep the coronavirus pandemic at bay is to give the virus less chances of spreading. The following list of actions are recommended to serve as a set of guidelines:

Don’t panic, but be alert.

Wash your hands often and practice good cough and sneeze etiquette.

Try to touch your face as little as possible, including your mouth, nose, and eyes.

Practice social distancing, no hugs and kisses, no handshakes, no high fives. If you must, use safer alternatives.

Do not attend concerts, stage plays, sporting events, or any other mass entertainment events.

Right after I wrote this post, I realized that Felix Schönbrodt has created a shiny app that allows to visualize the corona growth in various countries worldwide using data either from the European Center for Disease Prevention and Control or the John Hopkins University. This app allows to customize the visualization in various ways. Most importantly, it lets you choose whether the y-axis is log-transformed or not. Refrain from logarithmizing it every once in a while to get an idea of the actual growth:http://shinyapps.org/apps/corona/

1 thought on “Understanding exponential growth: The corona pandemic”

Your email address will not be published. Required fields are marked *

Comment

Name *

Email *

Website

Current ye@r *

Leave this field empty

Welcome!

I am a researcher in the field of communication science working at the Department of Communication at the Johannes Gutenberg University Mainz (Germany). Previously, I was a research assistant at the University of Hohenheim (Germany) and a visiting scholar at the Cornell University (Ithaca, USA). On this website, you can find information about my research interests, publications, teachings, and some personal background.

From time to time, I take pictures of things and people. You can find them here.

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.