Background

Arthur Charpentier, an academic actuary, tweeted about a post on flattening the curve by Joscha Bach. Bach is essentially putting numbers on the axes of the famous ‘flatten the curve’ graph.

Flatten the curve

Flatten the curve

Essentially he argues that the curve is a deadly illusion, that the difference between capacity and demand under the assumption of a 40-60% infection rate within the next year just cannot be bridged by simple social distancing measures, and a stronger policy of containment would be required.

In the following I try to replicate his analysis for Germany.

Assumptions

General assumptions are form Joscha’s post, I researched the numbers for Germany last week, but don’t have the sources at hand (they are somewhere deep down in my tweet archive).

Estimating capacity

Capacity is the amount of free beds that can be occupied by COVID cases. That would be:

Based on the number of available beds, we have a capacity of

So, we see that probably the number of ICU beds is the limiting resource, and I will concentrate on this number. The conclusion is that at any point in time, the number of infected should not be more than 112,000 cases.

The Curve

Before going further in the analysis, let’s take a look at The Curve. What is The Curve? In general, it is the number of new cases plotted over time. The form of the curve can be approximated by a logistic distribution. You often read about the curve being exponential in nature, but this only describes the first part, the upswing if you will. At some point the virus runs out of unprotected people to infect, and the number of active cases declines. In that sense, the cumulative distribution function of the logistic distribution describes the total number of cases in a population, which has as upper limit the size of the population, and The Curve is its probability density function.

Adding numbers to The Curve

For the next step, I scale the CDF to the assumed limit for herd immunity at 70% of the population, and calculate the required places in ICU given 4 weeks before patients leave ICU.

df_scaled = df3 %>%
  mutate(cases = prob*0.7*80e6) %>%
  mutate(new_cases = c(NA, diff(cases))) %>%
  filter(!is.na(new_cases)) %>%
  mutate(new_icu = 0.05*new_cases) %>%
  mutate(release_icu = lag(new_icu,28)) %>%
  mutate(release_icu = if_else(is.na(release_icu),0,release_icu)) %>%
  mutate(change_icu = new_icu - release_icu) %>%
  mutate(current_icu = cumsum(change_icu))

head(df_scaled) %>% knitr::kable()
week prob cases new_cases new_icu release_icu change_icu current_icu
1.140110 0.0002518 14100.71 643.2534 32.16267 0 32.16267 32.16267
1.280220 0.0002638 14774.70 673.9922 33.69961 0 33.69961 65.86228
1.420330 0.0002764 15480.90 706.1991 35.30995 0 35.30995 101.17223
1.560440 0.0002897 16220.84 739.9441 36.99720 0 36.99720 138.16944
1.700549 0.0003035 16996.15 775.3006 38.76503 0 38.76503 176.93447
1.840659 0.0003180 17808.49 812.3455 40.61728 0 40.61728 217.55175

The plot shows the problem - the current available free ICU capacity would be overwhelmed, given the parameterization in about 10 weeks. Even if we made all ICU beds available, this would give us maybe 2 additional weeks. Even if we then were somehow able to double the ICU capacity – after 16 weeks this capacity would be used up as well. At the height of the epidemic, around 890,000 ICU beds would be required.

The conclusion then becomes clear: The virus cannot be allowed to spread in this fashion, it must be contained. And the earlier containment starts, the better the chances to achieve its goal.

And obviously, all the caveats that Joscha mentions apply to this exercise as well: The logistic curve is not calibrated to real world data, any number of mitigating measures have not been taken into account, the model is quite sensitive to the stay in the ICU and so on.