loading page

pyVISCOUS: An open-source tool for computationally frugal global sensitivity analysis
  • +4
  • Hongli Liu,
  • Martyn P. Clark,
  • Shervan Gharari,
  • Razi Sheikholeslami,
  • Jim Freer,
  • Wouter J. M. Knoben,
  • Simon M. Papalexiou
Hongli Liu
Centre for Hydrology, University of Saskatchewan

Corresponding Author:[email protected]

Author Profile
Martyn P. Clark
Centre for Hydrology, University of Saskacthewan Coldwater Laboratory
Author Profile
Shervan Gharari
University of Saskatchewan Coldwater Laboratory
Author Profile
Razi Sheikholeslami
University of Oxford
Author Profile
Jim Freer
Univerrsity of Saskatchewan
Author Profile
Wouter J. M. Knoben
University of Saskatchewan
Author Profile
Simon M. Papalexiou
University of Calgary
Author Profile

Abstract

Sensitivity analysis is used to increase our understanding of the evaluated model and ease model parameter estimation. VISCOUS (VarIance-based Sensitivity analysis using COpUlaS) is a given-data, computationally frugal variance-based global sensitivity analysis framework. Grounded in Copula theory, VISCOUS computes the Sobol sensitivity indices using a probability model that describes the relationship between model inputs (e.g., the perturbations in the model parameters) and outputs (e.g., the model responses given a parameter perturbation). In this technical note, we make three contributions to make the VISCOUS framework easier to understand and apply. First, we provide additional derivations of VISCOUS to connect the VISCOUS framework to recent developments in the data science community. We provide didactic examples with simple test functions in order to help a wider group of modelers understand the underpinnings of the VISCOUS framework. Second, we evaluate the VISCOUS framework using three types of Sobol functions and provide a cautionary note on using VISCOUS to approximate Sobol’ sensitivity indices for applications where model inputs are of similar importance. Third, we provide an open-source code of VISCOUS in Python, namely, pyVISCOUS. pyVISCOUS is model-independent and can be applied with user-provided input-output data.