Introduction to Sensitivity Analysis#
Introduction#
This training page introduces you to sensitivity analysis (SA). Each component within the “Training activities” section provide you with the necessary background information to understand SA. It will also walk you through the tutorial in the Jupyter notebook here
Learning objectives#
After completing this tutorial, you will be able to:
Install and use basic Python SA packages
Understand the uses and limitations of different SA methods
Implement local and global SA methods
Understand the differences in the mathematical formulations of these methods
Apply SA to a small dataset
Prerequisites#
In this tutorial, some experience with using Python is useful. You should also have some understanding of basic SA, why we do it, and a few of its methods (local, Delta Moment-Independent, Sobol, etc). You should also identify the files you will be using for this exercise. Here are two files required in this exercise that can be obtained from the Jupyter Binder folder from the link provided in the Introduction:
Please ensure that both these files are in the same folder as your Jupyter notebook before beginning.
Training activities#
The following training sequence is suggested, but should be used as a general guideline instead of a fixed schedule. We will also be referencing a significant amount of material from the MSD UC E-Book.
Topic |
Commitment |
Tasks |
Readings |
Outcomes |
---|---|---|---|---|
Introduction to Sensitivity Analysis |
Short |
None |
Understand the different types of SA and their associated methods |
|
Understanding different SA methods |
Medium |
None |
Distinguishing different SA methods (variance-based, PDF-based, etc.) |
|
Exploring sensitivity analysis in different languages |
Short |
None |
Explore different SA packages available |
|
Using the SALib package |
Short |
[2] |
Obtain and install the SALib package |
|
Performing sensitivity analysis |
Medium |
Complete the Jupyter notebook activity |
None |
Apply SA on a simple water wholesaler problem |
Reading list#
Once you’ve completed this tutorial, here are some other resources to help you advance your sensitivity analysis skills:
[1] Reed, P.M., Hadjimichael, A., Malek, K., Karimi, T., Vernon, C.R., Srikrishnan, V., Gupta, R.S., Gold, D.F., Lee, B., Keller, K., Thurber, T.B, & Rice, J.S. (2022). Addressing Uncertainty in Multisector Dynamics Research [Book]. Zenodo. https://doi.org/10.5281/zenodo.6110623
[2] Herman, J., & Usher, W. (2017). Salib: An open-source python library for Sensitivity Analysis. The Journal of Open Source Software, 2(9), 97. https://doi.org/10.21105/joss.00097
[3] Sensitivity analysis tools in different computing languages
[4] Sensitivity analysis within the context of MORDM
[5] Milton Freedman’s thermostat
[6] Information theory and moment-independent sensitivity indices
[7] Sampling for sensitivity analysis
[8] Visualizing Sobol sensitvity indices using radial plots
[9] Magnitude-varying sensitivity analysis Part 1 and Part 2