sensitivity.sensitivity_fast

sensitivity.sensitivity_fast

Global sensitivity analysis using FAST (Fourier Amplitude Sensitivity Test).

This module implements variance-based global sensitivity analysis using the Fourier Amplitude Sensitivity Test (FAST). FAST quantifies the contribution of individual model parameters to the variance of model outputs by mapping parameter variations onto periodic functions and analyzing the resulting output spectrum in the frequency domain.

The method provides efficient estimation of first-order (main-effect) sensitivity indices and, in extended variants (eFAST), total-effect indices. Compared to Monte Carlo–based Sobol methods, FAST offers favorable scaling with the number of parameters and is well suited for medium- to large-scale deterministic models.

This implementation is intended for use in computational modeling workflows, including systems biology, pharmacokinetics/pharmacodynamics, and digital twin applications, where a robust global assessment of parameter influence is required.

References

Cukier, R. I., Fortuin, C. M., Shuler, K. E., Petschek, A. G., & Schaibly, J. H. (1973). Study of the sensitivity of coupled reaction systems to uncertainties in rate coefficients. I. Theory. Journal of Chemical Physics, 59, 3873–3878. https://doi.org/10.1063/1.1680571

Saltelli, A., Tarantola, S., & Chan, K. P.-S. (1999). A quantitative model-independent method for global sensitivity analysis of model output. Technometrics, 41(1), 39–56. https://doi.org/10.1080/00401706.1999.10485594

Classes

Name Description
FASTSensitivityAnalysis Global sensitivity analysis using the Fourier Amplitude Sensitivity Test.

FASTSensitivityAnalysis

sensitivity.sensitivity_fast.FASTSensitivityAnalysis(
    sensitivity_simulation,
    parameters,
    groups,
    results_path,
    N,
    M=4,
    seed=None,
    n_cores=None,
    cache_results=False,
    **kwargs,
)

Global sensitivity analysis using the Fourier Amplitude Sensitivity Test.

This class implements the FAST methodology for estimating first-order and total-effect sensitivity indices. It integrates with the common sensitivity analysis infrastructure provided by SensitivityAnalysis and supports grouped analyses and multiple model outputs.

References

Cukier et al. (1973); Saltelli et al. (1999)

Methods

Name Description
calculate_sensitivity Compute FAST sensitivity indices for all model outputs.
create_samples Create parameter samples for FAST analysis.
plot Generate standard FAST sensitivity plots.
calculate_sensitivity
sensitivity.sensitivity_fast.FASTSensitivityAnalysis.calculate_sensitivity(
    cache_filename=None,
    cache=False,
)

Compute FAST sensitivity indices for all model outputs.

This method performs the extended Fourier Amplitude Sensitivity Test (eFAST) to estimate first-order (S1) and total-effect (ST) sensitivity indices, along with corresponding confidence intervals, for each model output and parameter.

Parameters
Name Type Description Default
cache_filename Optional[str] Optional filename for reading or writing cached sensitivity results. None
cache bool Whether to read from or write results to cache. False
Notes

The sensitivity indices are computed independently for each output variable and stored in a structured xarray-based format.

create_samples
sensitivity.sensitivity_fast.FASTSensitivityAnalysis.create_samples()

Create parameter samples for FAST analysis.

This method generates FAST samples for each analysis group using the SALib FAST sampler. The resulting samples are stored as xarray objects and later used for model evaluation.

plot
sensitivity.sensitivity_fast.FASTSensitivityAnalysis.plot()

Generate standard FAST sensitivity plots.

This method creates heatmaps and bar plots for first-order (S1) and total-effect (ST) sensitivity indices for each analysis group and stores the resulting figures in the configured results directory.