COVID Odyssey: Winter Windup 3 ~ Carpe diem 2020 ~ Estimating Ro by simulations

In early 2020 we calculated that there was a daily increase in cases of r = 1.4 and we assumed infectivity decreased by 1/r each day over n = 10 days.

We created simulations to estimate Ro, the number of people a person with COVID-19 was likely to infect on average.

How do we choose a day that a case was infected so that infectivity decreases by 1/r each day?

In Excel the RAND() function generates a random number between 0 and 1.

Consider the table below:

In the second column on day 10 we set the value equal to 1.

On each of the previous days we multiply by r = 1.4.

This on the bottom row gives a total of 69.81366.

In the next row we divide each result by this number so that the total is 1.

The Total column is the cumulative total.

For each case starting on Day 12 (with case #290) we get a random number and calculate on which of the 10 previous days case #290 was infected using the Total column. i.e. we lookup where the random number appears in the Total column. In practice we repeat the Day number (1-10)  in the rightmost column to lookup the day number.

We randomly select a case from the chosen day to infect Case #290.

We store this case number alongside Case#290.

We repeat this process for all the cases from Day 12 to Day 23.

We now have a list of all the Cases along with the case that infected them.

All we need to do is to count up how many Cases Case#290 infects and do the same for Case#291, 292, … .

We can then calculate the mean (average) number each Case infects. On Day 12 and 13.

We can also find the mean for Day 11 by looking at how many cases the Day 11 cases infect.

This creates a simulated outbreak.

Note: In practice we add in an extra incubation day (not included above). Just keeping it simple here.

On the same spreadsheet we repeat the process 39 more times to give 40 simulated outbreaks and their means.

Finding the means of all these 40 means and other stats estimates the actual mean (estimate for Ro) and other stats.

The final three columns in the table show the similar results for r = SQRT(2).

Below is a table for n = 15 days:


The above table required too may cases to be useful. It is useful to compare the values in this table with the previous table.

In the next post we will use the first table to create our formula for Ro.

Search Results for “windup” – COVID Odyssey by Alan Grace: My vir[tu]al COVID-19 journey (

Shared Posts (Pingbacks) – Share Your Best Posts (

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s