Calibration

Model Versioning

Contains MLflow compatible models for versioning and deployment.

This module defines MLflow compatible models for versioning and deployment as microservices.

class deeprootgen.calibration.model_versioning.AbcModel[source]

An Approximate Bayesian Computation calibration model.

load_context(context: Context) None[source]

Load the model context.

Args:
context (Context):

The model context.

predict(context: Context, model_input: DataFrame, params: dict | None = None) DataFrame[source]

Make a model prediction.

Args:
context (Context):

The model context.

model_input (pd.DataFrame):

The model input data.

params (dict, optional):

Optional model parameters. Defaults to None.

Raises:
ValueError:

Error raised when the calibrator has not been loaded.

Returns:
pd.DataFrame:

The model prediction.

class deeprootgen.calibration.model_versioning.OptimisationModel[source]

An optimisation calibration model.

load_context(context: Context) None[source]

Load the model context.

Args:
context (Context):

The model context.

predict(context: Context, model_input: DataFrame, params: dict | None = None) DataFrame[source]

Make a model prediction.

Args:
context (Context):

The model context.

model_input (pd.DataFrame):

The model input data.

params (dict, optional):

Optional model parameters. Defaults to None.

Raises:
ValueError:

Error raised when the calibrator has not been loaded.

Returns:
pd.DataFrame:

The model prediction.

class deeprootgen.calibration.model_versioning.SensitivityAnalysisModel[source]

A sensitivity analysis calibration model.

load_context(context: Context) None[source]

Load the model context.

Args:
context (Context):

The model context.

predict(context: Context, model_input: DataFrame, params: dict | None = None) DataFrame[source]

Make a model prediction.

Args:
context (Context):

The model context.

model_input (pd.DataFrame):

The model input data.

params (dict, optional):

Optional model parameters. Defaults to None.

Raises:
ValueError:

Error raised when the calibrator has not been loaded.

Returns:
pd.DataFrame:

The model prediction.

class deeprootgen.calibration.model_versioning.SnpeModel[source]

A Sequential neural posterior estimation calibration model.

load_context(context: Context) None[source]

Load the model context.

Args:
context (Context):

The model context.

predict(context: Context, model_input: DataFrame, params: dict | None = None) DataFrame[source]

Make a model prediction.

Args:
context (Context):

The model context.

model_input (pd.DataFrame):

The model input data.

params (dict, optional):

Optional model parameters. Defaults to None.

Raises:
ValueError:

Error raised when the calibrator has not been loaded.

Returns:
pd.DataFrame:

The model prediction.

deeprootgen.calibration.model_versioning.log_model(task: str, input_parameters: RootCalibrationModel, calibration_model: PythonModel, artifacts: dict, simulation_uuid: str, signature_x: DataFrame | ndarray | list | None = None, signature_y: DataFrame | ndarray | list | None = None) None[source]

Log the calibrator model to the registry.

Args:
task (str):

The name of the current task for the experiment.

input_parameters (RootCalibrationModel):

The root calibration data model.

calibration_model (mlflow.pyfunc.PythonModel):

The calibrator to log.

artifacts (dict):

Experiment artifacts to log.

simulation_uuid (str):

The simulation uuid.

signature_x (pd.DataFrame | np.ndarray | list | None, optional):

The signature for data inputs. Defaults to None.

signature_y (pd.DataFrame | np.ndarray | list | None, optional):

The signature for data outputs. Defaults to None.. Defaults to None.

Summary Statistics

Contains utilities for calibrating models from summary statistics.

This module defines utility functions for calibrating simulation models from summary statistics.

deeprootgen.calibration.summary_statistics.calculate_summary_statistic_discrepancy(parameter_specs: dict, input_parameters: RootCalibrationModel, statistics_list: list[SummaryStatisticsModel], distances: list[DistanceMetricBase]) float[source]

Calculate the discrepancy between simulated and observed data.

Args:
parameter_specs (dict):

The simulation parameter specification.

input_parameters (RootCalibrationModel):

The root calibration data model.

statistics_list (list[SummaryStatisticsModel]):

The list of summary statistics.

distances (list[DistanceMetricBase]):

The distance metric object.

Returns:
float:

The discrepancy between simulated and observed data.

deeprootgen.calibration.summary_statistics.calculate_summary_statistics(parameter_specs: dict, input_parameters: RootCalibrationModel, statistics_list: list[SummaryStatisticsModel]) tuple[source]

Calculate summary statistics for observed and simulated data.

Args:
parameter_specs (dict):

The simulation parameter specification.

input_parameters (RootCalibrationModel):

The root calibration data model.

statistics_list (list[SummaryStatisticsModel]):

The list of summary statistics.

Returns:
tuple:

The simulated and observed data.

deeprootgen.calibration.summary_statistics.get_calibration_summary_stats(input_parameters: RootCalibrationModel) tuple[source]

Extract summary statistics needed for model calibration.

Args:
input_parameters (RootCalibrationModel):

The root calibration data model.

Raises:
ValueError:

Error thrown when the summary statistic list is empty.

Returns:
tuple:

The calibration distance metric and summary statistics.

deeprootgen.calibration.summary_statistics.run_calibration_simulation(parameter_specs: dict, input_parameters: RootCalibrationModel) tuple[source]

Run a simulation for model calibration purposes.

Args:
parameter_specs (dict):

The simulation parameter specification.

input_parameters (RootCalibrationModel):

The root calibration data model.

Returns:
tuple:

The simulation and its parameters.