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.
LocalSensitivityAnalysis
¶
LocalSensitivityAnalysis(
sensitivity_simulation,
parameters,
groups,
results_path,
seed=None,
n_cores=None,
cache_results=False,
difference=0.01,
n_var=3,
)
Bases: SensitivityAnalysis
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. |
Initialize the local sensitivity analysis.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
sensitivity_simulation
|
SensitivitySimulation
|
Simulation wrapper providing model execution and result handling. |
required |
parameters
|
list[SensitivityParameter]
|
List of model parameters to perturb. |
required |
groups
|
list[AnalysisGroup]
|
Analysis groups defining parameter modifications and conditions. |
required |
results_path
|
Path
|
Directory where results and plots will be stored. |
required |
seed
|
int
|
Random seed for reproducibility. |
None
|
n_cores
|
int
|
Number of CPU cores used for parallel simulations. |
None
|
cache_results
|
bool
|
Whether simulation and sensitivity results should be cached. |
False
|
difference
|
float
|
Relative perturbation size used for finite differences. Defaults to 0.01 (±1%). |
0.01
|
n_var
|
int
|
Represents the number of steps at which sensitivity is to be evaluated within the variation fold change |
3
|
num_samples
property
¶
Return the total number of required simulation samples.
The local sensitivity analysis requires: - 2 + n_var simulations per parameter (positive and negative perturbations) - One reference simulation
Returns:
| Name | Type | Description |
|---|---|---|
int |
int
|
Total number of parameter samples. |
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.
calculate_sensitivity
¶
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
|
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.