Return to COVID-19 projections

Victoria COVID-19 projections – 29 October 2021 (Final)

What’s new?

This is the final update in the 2021 Victoria outbreak (resulting in the sixth Melbourne lockdown) series.  Victoria exited its lockdown one week ago.  Moving forward, the assumption used in the model (projections into the future based algorithmically on the same transmission dynamics in the past) cannot be taken to be theoretically valid.  It is likely that case numbers will either stop falling, or rise.  Charts from the NSW experience, which came out of its lockdown a few weeks earlier, might give an indication of what might occur in Victoria (see below).

Today’s announcement was 1656 new local cases is highly consistent with the Gompertz model.  This model has been performing very well for weeks.  The 7-day projection errors have largely been less than 1% over this period.  The projection from 14 days ago for today underestimated by less than 0.5% from reality.  As such, the difference between actual case numbers, and the future projections from the Gompertz model from today could be used as an indication of the effect of the policy change.

 

Projection of new daily cases, and cumulative counts of COVID-19 with data up to 29 October 2021

What is this?

The blue charts the the Gompertz model.  The top image is a chart of the cumulative (total) COVID-19 cases in Victoria, starting from 4 August 2021, and the lower image is a chart of the daily new cases.  Only local cases are included (i.e., excluding cases identified in quarantine).  Projections are given for the next 7 days.  It should be noted that estimates have high levels of uncertainty beyond a few days and must be interpreted cautiously.

The projections are made using a model by fitting the cumulative case data since 20 September 2021 to a Gompertz equation using non-linear regression. The dark central dashed lines are the model estimates, with 95% confidence intervals of the estimate. On the lower chart, the colour gradations can be understood as the degree of uncertainty in the model projections.

 

Gompertz and Richards’ growth curve

The Gompertz function is a type of sigmoid, or “S”-shaped curve. It’s been around since the early 19th century and was initially used to describe and model demographic mortality curves, and hence, well known to actuaries. The Gompertz function can also be used to accurately model biological growth (e.g., epidemics, tumour size, enzymatic reactions). I have chosen to use this model to help with creating insights as earlier in the pandemic, it was found to be useful in modelling cumulative cases of COVID-19 from the Chinese outbreaks (Jia et al. arXiv:2003.05447v2 [q-bio.PE]).

The Richards’ growth curve (or the generalised logistic function), which is a broad family of sigmoid (S-shaped) curves that can describe well many types of growth, including epidemics. It has also been demonstrated to have utility in modelling COVID-19 outbreaks in 2020 (Lee et al. PLoS One 2020 doi: 10.1371/journal.pone.0236860).

Gompertz equation:

Richard’s growth curve / generalised logistic function:

Why the changes?

I’ve undertaken some assessment of the degree of predictive error in both the Gompertz and Richards’ growth curve models.  These charts compare the 7- and 14-day total case projections of the models, to what actually occurred in reality 7 and 14 days later.  For interpretation, above the 0% error line means that the model provided an over-estimate compared to reality, and below the 0% error line an underestimate.

The Gompertz model is performing very well for projections up to 14 days.

 

Daily case trends

Comparison between the Gompertz and Richards’ growth curve model projections, along with smoothed data trends (7-day simple moving average, and GAM) with data up to 29 October 2021

The generalised additive model gives a descriptive “reality check” to the models.  The GAM can be considered as an advanced smoothed trend of the daily counts.

What might we expect?

The NSW came out of lockdown on 11 October 2021 so there is now around two weeks of data that demonstrates the trend.  We wouldn’t expect the trend of new cases to change at least until about 5 days after a policy change, as this is the shortest time an unsuspected transmission event could be detected.  The current “4 plot” of the NSW data is below.

The simple moving average chart demonstrates a clear and obvious discontinuity at around 5-7 days after the lifting of the lockdown with new cases roughly staying at around 300 per day.  Allowing for a discontinuity in the GAM confirms this trend.  This is clearly different from the projections from both the Gompertz and Richards’ growth curve models that included data up to 15 October 2021.

It is likely that a similar pattern will be seen in Victoria, insofar that there will be a discontinuity in the trend.  NSW has not seen an obvious rise in case numbers and hopefully that will be the case in Victoria.

 

Model summaries

Richards’ growth curve model

summary(model.r)

Model fitted: Generalised logistic (ED50 as parameter) (5 parms)

Parameter estimates:

                 Estimate  Std. Error  t-value   p-value    
b:(Intercept) -7.0157e-02  4.8065e-03 -14.5962 < 2.2e-16 ***
c:(Intercept)  3.8679e+03  7.2929e+02   5.3037 6.396e-06 ***
d:(Intercept)  9.5773e+04  2.6007e+03  36.8263 < 2.2e-16 ***
e:(Intercept)  6.2572e+01  4.6495e+00  13.4578 2.172e-15 ***
f:(Intercept)  2.2869e+00  6.1324e-01   3.7291 0.0006781 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error:

 216.0019 (35 degrees of freedom)

Gompertz model

summary(model.g)

Gompertz model - model.g

Model fitted: Gompertz (4 parms)

Parameter estimates:

                 Estimate  Std. Error t-value   p-value    
b:(Intercept) -5.1039e-02  1.0969e-03 -46.528 < 2.2e-16 ***
c:(Intercept)  6.3032e+03  2.6616e+02  23.682 < 2.2e-16 ***
d:(Intercept)  1.0908e+05  1.8973e+03  57.492 < 2.2e-16 ***
e:(Intercept)  7.4449e+01  3.2272e-01 230.696 < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error:

 226.0524 (36 degrees of freedom)

Model projections of daily cases

model.g bootstrap simulation derivatives
  [1]        NA        NA        NA        NA        NA        NA        NA        NA
  [9]        NA        NA        NA        NA        NA        NA        NA        NA
 [17]        NA        NA        NA        NA        NA        NA        NA        NA
 [25]        NA        NA        NA        NA        NA        NA        NA        NA
 [33]        NA        NA        NA        NA        NA        NA        NA        NA
 [41]        NA        NA        NA        NA        NA        NA        NA        NA
 [49]  459.3113  526.2676  597.3502  672.1203  749.8305  829.8016  911.5445  993.8777
 [57] 1076.3535 1158.3063 1238.6729 1316.6171 1391.9435 1464.1807 1532.2743 1595.4159
 [65] 1653.6107 1706.5895 1753.8665 1795.6591 1831.7807 1862.1044 1886.3484 1904.8000
 [73] 1917.9444 1925.5051 1927.9903 1925.2248 1917.8427 1905.9795 1890.0120 1870.0692
 [81] 1846.6322 1820.0220 1790.8098 1758.6136 1724.3744 1688.1955 1650.4078 1611.2427
 [89] 1570.7129 1529.3976 1487.0596 1444.3901 1401.5635 1358.6346 1315.3682 1272.4670
 [97] 1229.8778 1187.6760 1146.0362 1104.9928 1064.6998 1025.1660  986.4914  948.8386
[105]  911.8985  875.8838  840.8580  806.7502  773.7640  741.7122  710.7123  680.6547
[113]  651.6383  623.7516  596.8388  570.7907  545.7820  521.6799  498.4908  476.1499
[121]  454.6651  434.1115  414.3999  395.4560  377.3142  359.8891  343.2590  327.3355
[129]  312.0488  297.4505  283.5218  270.2042  257.4495  245.2581  233.6244  222.5104
[137]  211.9293  201.7949  192.1648  182.9571  174.1679  165.7912  157.8008  150.1768
[145]  142.9347  136.0149  129.4159  123.1309  117.1096  111.4217

Note: Day 89 = 31/10/2021; Day 97 = 8/11/2021; Day 105 = 16/11/2021; Day 113 = 24/11/2021; Day 121 = 2/12/2021; Day 129 = 10/12/2021; Day 137 = 18/12/2021; Day 145 = 26/12/2021

 

Want to know more?

Primary data source is from Victoria Government Department of Health for daily new cases.  The analysis is performed using RStudio Cloud using R version 4.1.0.

Today’s charts

Data: au_covid_vic, au_covid
R code: models_vic, models