Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support temporal SA (aka time-varying SA) #525

Open
ConnectedSystems opened this issue Aug 21, 2022 · 4 comments
Open

Support temporal SA (aka time-varying SA) #525

ConnectedSystems opened this issue Aug 21, 2022 · 4 comments
Milestone

Comments

@ConnectedSystems
Copy link
Member

It would be nice to support sensitivity analysis over time "out of the box"

@tupui
Copy link
Member

tupui commented Aug 21, 2022

I can see 2 ways of doing it. 1. add support for every methods and use vectorisation where it can be used. 2. Make a wrapper that (decorator or standalone function) that would work on any analize method. Here you can parallelize this outer loop.

@willu47
Copy link
Member

willu47 commented Aug 22, 2022

A few ideas - is this the same as wanting to conduct an SA over several outputs (e.g. a number of different result parameters). If so, then there are two very similar use cases that could be served - I suggest creating a wrapper which could be implemented in different ways for different approaches.

A useful feature could be helper plots showing

  • sensitivity indices over time series (line plot; stacked line?)
  • sensitivity indices over result variables (scatter or bar)

@tupui
Copy link
Member

tupui commented Aug 22, 2022

I would say it's similar. You could have a model that output a quantity of interest over a spatial/temporal domain, or multiple QoI. Hence it should be similar and the same approach could be used as long as you consider elements to be independent. e.g. no spatial correlation taken into account.

@ConnectedSystems
Copy link
Member Author

ConnectedSystems commented Aug 30, 2022

I have a tentative prototype already, although the implementation is not clean and is external to SALib currently.
(I have to blur the info as I'm not sure how much I can share at the moment).

The example applies PAWN to each time step for a specified Quantity of Interest (QoI).
I'm using a heatmap here as I have a large number of factors.

This is applied naively with no parallelization. Parallelization would be easy to do given we now have the infrastructure in place to do this.

This is with the higher-level interface of course - akin to @tupui 's option 2.
I'm assuming people who want to use the lower-level API directly want to/able to do this by themselves.

image

For the somewhat opposite case of plotting the sensitivity of multiple QoIs to a single factor, perhaps a ribbon plot?
(something similar, in style, to this: https://user-images.githubusercontent.com/37084259/58433167-c8ea3300-80ad-11e9-91dd-40ccfa2b9d71.png)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants