sensitivity.sensitivity_local

sensitivity.sensitivity_local

Local sensitivity analysis using finite differences.

This module implements a local, derivative-based sensitivity analysis using symmetric finite differences around a reference parameter set. Each model parameter is perturbed individually while all other parameters are kept constant.

The method is intended for deterministic simulation models and is useful for: - Identifying locally influential parameters - Debugging and inspecting model behavior - Screening parameters prior to optimization or uncertainty analysis - Complementing global sensitivity analysis methods

Sensitivities are computed per analysis group and output variable and are reported as both raw and normalized (dimensionless) sensitivities.

Notes

For a parameter p with reference value p0, sensitivities are computed as:

p_plus  = p0 * (1 + difference)
p_minus = p0 * (1 - difference)

S = (q(p_plus) - q(p_minus)) / (p_plus - p_minus)

Normalized sensitivities are defined as:

S_norm = S * (p0 / q(p0))

Here a multistep method is implemented following Najjar et al.

References:

- Najjar A, Hamadeh A, Krause S, Schepky A, Edginton A. Global sensitivity analysis of Open Systems Pharmacology Suite physiologically based pharmacokinetic models. CPT Pharmacometrics Syst Pharmacol. 2024 Dec;13(12):2052-2067. doi: 10.1002/psp4.13256. Epub 2024 Nov 5. PMID: 39498820; PMCID: PMC11646943.

Classes

Name Description
LocalSensitivityAnalysis Local sensitivity analysis based on symmetric finite differences.

LocalSensitivityAnalysis

sensitivity.sensitivity_local.LocalSensitivityAnalysis(
    sensitivity_simulation,
    parameters,
    groups,
    results_path,
    seed=None,
    n_cores=None,
    cache_results=False,
    difference=0.01,
    n_var=3,
)

Local sensitivity analysis based on symmetric finite differences.

Each model parameter is perturbed individually by a small relative amount around a reference parameter set, while all other parameters are held constant. For each parameter, two perturbed simulations (increase and decrease) are evaluated in addition to a reference simulation.

Attributes

Name Type Description
difference float Relative parameter perturbation used for the finite-difference approximation (e.g., 0.01 corresponds to ±1%).
prefix str Prefix used for naming result files.

Methods

Name Description
calculate_sensitivity Compute raw and normalized local sensitivities.
create_samples Create parameter samples for local sensitivity analysis.
dfs_sensitivity Return sensitivity dataframe.
plot Generate plots for normalized local sensitivities.
calculate_sensitivity
sensitivity.sensitivity_local.LocalSensitivityAnalysis.calculate_sensitivity(
    cache_filename=None,
    cache=False,
)

Compute raw and normalized local sensitivities.

Sensitivities are calculated using a symmetric finite-difference scheme for each parameter–output combination.

Parameters
Name Type Description Default
cache_filename str Filename used to read/write cached sensitivity results. None
cache bool Whether cached results should be used. False
create_samples
sensitivity.sensitivity_local.LocalSensitivityAnalysis.create_samples()

Create parameter samples for local sensitivity analysis.

For each analysis group, this method constructs a sample matrix containing: - One reference parameter vector - n_var perturbed parameter vectors per parameter (+difference) - n_var perturbed parameter vectors per parameter (-difference)

Samples are stored as an xarray.DataArray indexed by sample and parameter identifiers.

dfs_sensitivity
sensitivity.sensitivity_local.LocalSensitivityAnalysis.dfs_sensitivity()

Return sensitivity dataframe.

plot
sensitivity.sensitivity_local.LocalSensitivityAnalysis.plot()

Generate plots for normalized local sensitivities.

Produces heatmaps of normalized sensitivities for each analysis group and saves the figures to the results directory.

Using default cutoff of 0.1 for negligible.