Skip to content

Calibration

Romesh Abeysuriya edited this page Feb 15, 2018 · 1 revision

Calibration

The first step when commencing a new application is to calibrate the model. This refers to adjusting assumptions and parameter values in order to best replicate the data in the absence of any programs.

Some detailed documentation about calibration is available from UCL. At a high level, calibration proceeds in the following stages

  1. First try to match the population sizes, to set the birth rates and death rates. This works because TB prevalance and mortality is such that it does not have a huge effect on the total population size
  2. Try to fit whichever data is most reliable and available (e.g. how many new infections do we expect, based on the notified cases). This is typically done by going through population by population, changing a few variables at a time.

Parameter values are calculated from the databook values, multiplied by the time-dependent Y-factor. The Y-factor cannot be set in the databook. Therefore, calibration can be performed in one of two ways

  • Changing the parameter value by changing the raw values in the databook. Typically, an extra sheet would be introduced where the user implements a convenient mechanism to change the data values, and uses them to compute the data values in the cells that are passed into OptimaTB
  • Changing the Y-factors programatically after loading the databook

To first order, some of the most important parameters are

  • Birth rate
  • Death rate
  • Infectiousness

Automatic calibration

Automatic calibration is possible via calibration.py:performAutoFit() but in practice this is yet to produce consistently good results. For automated calibration, parameters are changed by the ASD algorithm and characteristics are used to compute the value of the objective function. The parameters that are used for calibration are specified in cascade.xlsx and all of these parameters will be used (i.e., there is no argument to performAutoFit() that enables calibration of specific parameters). There is an additional flag, useInitCompartments, which appears to control whether the initial compartment sizes are included as a quantity to fit, but this may not currently be operational.

There is likely plenty of scope to improve automated calibration, building on previous work in Optima HIV

Clone this wiki locally