Growth rate of COVID-19 outbreaks

Edit 14/​03/​2020: The top two graphs are now available as interactive versions here (thanks to Ruby for helping with getting this uploaded). The labels on the right are clickable to remove or add countries (double click selects only that country or all countries). The buttons at the top change the y-axis (annoyingly the y-axis range buttons auto-set to a linear scale) and the slider at the bottom zooms the x-axis.

Note that the doubling times are actually lower than in the post below due to an error in my original spreadsheet. I’ve also added the last few days worth of data to the graphs.

COVID-19 has now broken out in a number of countries. This enables us to compare spread rates across to get a better idea of what to expect.

Below is a graph of cumulative cases in each country. In an attempt to normalise the x-axis, I have plotted from the day that the total number of cases in the country passed 40 (40 was just because the earliest China data that I had started at 42).

The most obvious thing is that most countries follow a fairly consistent pattern of growth in the first week and a bit.

The outliers are Singapore, Japan and Australia (plus Hong Kong, not shown). These countries have lots of cases yet have not seen a corresponding fast exponential growth in cases. I’m not sure why these particular countries have bucked the trend or whether there is something odd about their reporting (I looked for this but didn’t find anything).

I haven’t considered how many cases are recovered as it was hard to get reliable results and for most locations recovered cases are minimal. Something weird is happening with the number of recoveries in Iran which has over 2,000, despite only passing that number of cases within the last 6 days.

Doubling time

We can convert the above graph into doubling time:

I’ve removed the outlier countries for clarity. The doubling time is fairly consistently 2-3 days. It seems to increase slightly over time.

China growth rate

I wrote a post previously about analysing the growth rate of COVID-19 in China.

If we look at the graph above, the Chinese rate is roughly constant over the first 11 days, after which the growth rate decreases.

So the first 11 days would fit nicely to an exponential growth model, but what changed? On day 7 (23rd Feb) the quarantine was started. A decrease in growth rate starting a few days later makes sense based on what we know about incubation period.

Let’s assume that the model follows an exponential distribution to start with and then after the quarantine starts to be effective it starts to obey a Gompertz function which is like an exponential function with a limit to the total number of cases (thanks to clone of saturn for the pointer here).

I’ve set both the number of cases and the new case rate to be the same for the two distributions at the point that the Gompertz takes over. This is to minimise free variables so I only have 4 instead of 6.

Getting the best fit parameters for this model I get:

This seems like a fairly good fit. It might be possible to get a better fit with an alternative sigmoid function but this is good enough for my purposes.

Conclusion

I’m fairly confident that, left unchecked, COVID-19 will increase at a doubling time of 2-3 days. When containment in breached in a location this is the rate that the growth occurs at over the first few week or so.

When effective measures are put in place this decreases. An effective quarantine may be able to convert the growth into a sigmoid function with a limit on the failure rate.

Some locations (Japan, Singapore, Australia and Hong Kong) have managed to avoid exponential growth despite having a large number of cases.

Appendix 1 - Linear growth charts

Suggested by Raemon.

All cases

Y-axis limited at 8,000 cases per country

Y-axis limited at 1,000 cases per country, X-axis limited to first 10 days

Appendix 2 - Deaths vs cases

Suggested by Unnamed.