Calibration Scripts

Scripts for calibrating model parameters against real-world data.

TB Model Calibration for South Africa Data

This script generates model outputs designed to match real South Africa TB data: 1. Case notification data (2000, 2005, 2010, 2015, 2020) 2. Age-stratified active TB prevalence from 2018 survey

The script creates both model outputs and synthetic/real data for comparison.

scripts.calibration.tb_calibration_south_africa.create_south_africa_data()[source]

Create synthetic South Africa TB data for calibration

Returns:

Dictionary containing synthetic data for case notifications and prevalence

Return type:

dict

scripts.calibration.tb_calibration_south_africa.compute_age_stratified_prevalence(sim, target_year=2018)[source]

Compute age-stratified TB prevalence from simulation results

Parameters:
  • sim – Simulation object

  • target_year – Year to compute prevalence for

Returns:

Age-stratified prevalence data

Return type:

dict

scripts.calibration.tb_calibration_south_africa.compute_case_notifications(sim, target_years=[2000, 2005, 2010, 2015, 2020])[source]

Compute case notifications from simulation results

Parameters:
  • sim – Simulation object

  • target_years – Years to compute notifications for

Returns:

Case notification data by year

Return type:

dict

scripts.calibration.tb_calibration_south_africa.plot_calibration_comparison(sim, sa_data, timestamp)[source]

Create comprehensive calibration comparison plots

Parameters:
  • sim – Simulation object

  • sa_data – South Africa data dictionary

  • timestamp – Timestamp for file naming

scripts.calibration.tb_calibration_south_africa.calculate_calibration_score(sim, sa_data)[source]

Calculate a composite calibration score based on multiple metrics

Parameters:
  • sim – Simulation object

  • sa_data – South Africa data dictionary

Returns:

Calibration metrics and composite score

Return type:

dict

scripts.calibration.tb_calibration_south_africa.create_calibration_report(sim, sa_data, timestamp)[source]

Create a detailed calibration report with metrics

Parameters:
  • sim – Simulation object

  • sa_data – South Africa data dictionary

  • timestamp – Timestamp for file naming

Returns:

Calibration metrics

Return type:

dict

scripts.calibration.tb_calibration_south_africa.run_calibration_simulation(beta=0.020, rel_sus_latentslow=0.15, tb_mortality=3e-4, seed=0, years=200, n_agents=1000)[source]

Run a single calibration simulation with specified parameters

Parameters:
  • beta – TB transmission rate

  • rel_sus_latentslow – Relative susceptibility of latent TB

  • tb_mortality – TB mortality rate

  • seed – Random seed

  • years – Simulation duration

  • n_agents – Number of agents

Returns:

Simulation object

Return type:

sim

scripts.calibration.tb_calibration_south_africa.main()[source]

Main function to run the calibration analysis

TB Model Calibration Parameter Sweep for South Africa

This script performs a systematic parameter sweep to find optimal calibration parameters that best match South Africa TB data including case notifications and age-stratified prevalence.

scripts.calibration.tb_calibration_sweep.calculate_calibration_score(sim, sa_data)[source]

Calculate a composite calibration score based on multiple metrics

Parameters:
  • sim – Simulation object

  • sa_data – South Africa data dictionary

Returns:

Calibration metrics and composite score

Return type:

dict

scripts.calibration.tb_calibration_sweep.run_calibration_sweep(beta_range, rel_sus_range, tb_mortality_range, n_agents=500, years=150, max_simulations=50)[source]

Run a systematic parameter sweep for calibration

Parameters:
  • beta_range – Array of beta values to test

  • rel_sus_range – Array of relative susceptibility values to test

  • tb_mortality_range – Array of TB mortality values to test

  • n_agents – Number of agents per simulation

  • years – Simulation duration

  • max_simulations – Maximum number of simulations to run

Returns:

Sweep results with best parameters

Return type:

dict

scripts.calibration.tb_calibration_sweep.plot_sweep_results(results_df, timestamp)[source]

Create plots showing sweep results

Parameters:
  • results_df – DataFrame with sweep results

  • timestamp – Timestamp for file naming

scripts.calibration.tb_calibration_sweep.main()[source]

Main function to run the calibration sweep