GlobalSensitivity.jl

GlobalSensitivity.jl: Performant and Parallel Global Sensitivity Analysis with Julia - Published in JOSS (2022)

https://github.com/sciml/globalsensitivity.jl

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    5 of 24 committers (20.8%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

differential-equations efast global-sensitivity-analysis gsa julia julia-language julialang morris-method ode ordinary-differential-equations scientific-machine-learning sciml sensitivity-analysis sobol-method

Keywords from Contributors

pde meshing fluxes standardization unconstrained-optimization unconstrained-optimisation optimisation ode-solver probabilistic-models probabilistic-numerics

Scientific Fields

Engineering Computer Science - 60% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Robust, Fast, and Parallel Global Sensitivity Analysis (GSA) in Julia

Basic Info
Statistics
  • Stars: 58
  • Watchers: 6
  • Forks: 23
  • Open Issues: 29
  • Releases: 30
Topics
differential-equations efast global-sensitivity-analysis gsa julia julia-language julialang morris-method ode ordinary-differential-equations scientific-machine-learning sciml sensitivity-analysis sobol-method
Created about 5 years ago · Last pushed 5 months ago
Metadata Files
Readme License Citation

README.md

GlobalSensitivity.jl

Join the chat at https://julialang.zulipchat.com #sciml-bridged Global Docs

codecov Build Status

ColPrac: Contributor's Guide on Collaborative Practices for Community Packages SciML Code Style DOI

GlobalSensitivity.jl package contains implementation of some the most popular GSA methods. Currently it supports Delta Moment-Independent, DGSM, EASI, eFAST, Morris, Mutual Information, Fractional Factorial, RBD-FAST, RSA, Sobol and Regression based sensitivity methods.

Tutorials and Documentation

For information on using the package, see the stable documentation. Use the in-development documentation for the version of the documentation, which contains the unreleased features.

Installation

The GlobalSensitivity.jl package can be installed with julia's package manager as shown below:

julia using Pkg Pkg.add("GlobalSensitivity")

General Interface

The general interface for performing global sensitivity analysis using this package is:

julia res = gsa(f, method, param_range; samples, batch = false)

Example

Sobol method on the Ishigami function.

Serial execution

```julia function ishi(X) A = 7 B = 0.1 sin(X[1]) + A * sin(X[2])^2 + B * X[3]^4 * sin(X[1]) end

n = 600000 lb = -ones(4) * π ub = ones(4) * π sampler = SobolSample() A, B = QuasiMonteCarlo.generatedesignmatrices(n, lb, ub, sampler)

res1 = gsa(ishi, Sobol(order = [0, 1, 2]), A, B) ```

Using batching interface

```julia function ishi_batch(X) A = 7 B = 0.1 @. sin(X[1, :]) + A * sin(X[2, :])^2 + B * X[3, :]^4 * sin(X[1, :]) end

res2 = gsa(ishi_batch, Sobol(), A, B, batch = true) ```

Regression based and Morris method sensitivity analysis of Lotka Volterra model.

```julia using GlobalSensitivity, QuasiMonteCarlo, OrdinaryDiffEq, Statistics, CairoMakie

function f(du, u, p, t) du[1] = p[1] * u[1] - p[2] * u[1] * u[2] #prey du[2] = -p[3] * u[2] + p[4] * u[1] * u[2] #predator end

u0 = [1.0; 1.0] tspan = (0.0, 10.0) p = [1.5, 1.0, 3.0, 1.0] prob = ODEProblem(f, u0, tspan, p) t = collect(range(0, stop = 10, length = 200))

f1 = function (p) prob1 = remake(prob; p = p) sol = solve(prob1, Tsit5(); saveat = t) return [mean(sol[1, :]), maximum(sol[2, :])] end

bounds = [[1, 5], [1, 5], [1, 5], [1, 5]]

regsens = gsa(f1, RegressionGSA(true), bounds) fig = Figure(resolution = (600, 400)) ax, hm = CairoMakie.heatmap(fig[1, 1], regsens.partialcorrelation, figure = (resolution = (300, 200),), axis = (xticksvisible = false, yticksvisible = false, yticklabelsvisible = false, xticklabelsvisible = false, title = "Partial correlation")) Colorbar(fig[1, 2], hm) ax, hm = CairoMakie.heatmap(fig[2, 1], regsens.standard_regression, figure = (resolution = (300, 200),), axis = (xticksvisible = false, yticksvisible = false, yticklabelsvisible = false, xticklabelsvisible = false, title = "Standard regression")) Colorbar(fig[2, 2], hm) fig ```

heatmapreg

julia using StableRNGs _rng = StableRNG(1234) morris_sens = gsa(f1, Morris(), bounds, rng = _rng) fig = Figure(resolution = (300, 200)) scatter(fig[1, 1], [1, 2, 3, 4], morris_sens.means_star[1, :], color = :green, axis = (xticksvisible = false, xticklabelsvisible = false, title = "Prey (Morris)")) scatter(fig[1, 2], [1, 2, 3, 4], morris_sens.means_star[2, :], color = :red, axis = (xticksvisible = false, xticklabelsvisible = false, title = "Predator (Morris)")) fig

morrisscat

Citing

If you use this software in your work, please cite:

bib @article{dixit2022globalsensitivity, title={GlobalSensitivity. jl: Performant and Parallel Global Sensitivity Analysis with Julia}, author={Dixit, Vaibhav Kumar and Rackauckas, Christopher}, journal={Journal of Open Source Software}, volume={7}, number={76}, pages={4561}, year={2022} }

Owner

  • Name: SciML Open Source Scientific Machine Learning
  • Login: SciML
  • Kind: organization
  • Email: contact@chrisrackauckas.com

Open source software for scientific machine learning

JOSS Publication

GlobalSensitivity.jl: Performant and Parallel Global Sensitivity Analysis with Julia
Published
August 17, 2022
Volume 7, Issue 76, Page 4561
Authors
Vaibhav Kumar Dixit ORCID
Julia Computing
Christopher Rackauckas ORCID
Julia Computing, Massachusetts Institute of Technology, Pumas-AI
Editor
Mehmet Hakan Satman ORCID
Tags
julia global sensitivity analysis

Citation (CITATION.bib)

@article{dixit2022globalsensitivity,
  title={GlobalSensitivity. jl: Performant and Parallel Global Sensitivity Analysis with Julia},
  author={Dixit, Vaibhav Kumar and Rackauckas, Christopher},
  journal={Journal of Open Source Software},
  volume={7},
  number={76},
  pages={4561},
  year={2022}
}

GitHub Events

Total
  • Create event: 12
  • Release event: 1
  • Issues event: 4
  • Watch event: 7
  • Delete event: 11
  • Issue comment event: 11
  • Push event: 52
  • Pull request review event: 1
  • Pull request event: 22
  • Fork event: 4
Last Year
  • Create event: 12
  • Release event: 1
  • Issues event: 4
  • Watch event: 7
  • Delete event: 11
  • Issue comment event: 11
  • Push event: 52
  • Pull request review event: 1
  • Pull request event: 22
  • Fork event: 4

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 317
  • Total Committers: 24
  • Avg Commits per committer: 13.208
  • Development Distribution Score (DDS): 0.527
Past Year
  • Commits: 18
  • Committers: 6
  • Avg Commits per committer: 3.0
  • Development Distribution Score (DDS): 0.556
Top Committers
Name Email Commits
Vaibhav Dixit v****t@g****m 150
Christopher Rackauckas a****s@c****m 49
CompatHelper Julia c****y@j****g 18
Arno Strouwen a****n@t****e 18
github-actions[bot] 4****] 16
dependabot[bot] 4****] 12
Anurag Vaidya a****2@b****u 7
David Widmann d****n 7
Mehmet Hakan Satman m****n@g****m 5
Sathvik Bhagavan s****n@j****m 5
Anant Thazhemadam 4****m 4
Max de Rooij m****j@t****l 4
Pawel Latawiec p****c@h****m 4
Oskar Laverny o****y@u****r 4
Chris Elrod e****c@g****m 3
Krishna Bhogaonker c****q@g****m 2
Harry Saxton c****9@m****k 2
Andreas Scheidegger a****r@e****h 1
Chris de Graaf me@c****v 1
Frank Schaefer f****r@u****h 1
Hendrik Ranocha m****l@r****e 1
Pepijn de Vos p****s@j****m 1
Claude n****y@a****m 1
maja.k.gwozdz@gmail.com m****z@g****m 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 50
  • Total pull requests: 140
  • Average time to close issues: 6 months
  • Average time to close pull requests: 14 days
  • Total issue authors: 23
  • Total pull request authors: 19
  • Average comments per issue: 3.74
  • Average comments per pull request: 0.86
  • Merged pull requests: 124
  • Bot issues: 0
  • Bot pull requests: 51
Past Year
  • Issues: 4
  • Pull requests: 17
  • Average time to close issues: N/A
  • Average time to close pull requests: 20 days
  • Issue authors: 4
  • Pull request authors: 4
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 12
Top Authors
Issue Authors
  • Vaibhavdixit02 (14)
  • ChrisRackauckas (8)
  • Ge0rges (3)
  • zhenwu0728 (2)
  • NikosMemmos (2)
  • max-de-rooij (2)
  • devmotion (2)
  • moesphere (1)
  • JuliaTagBot (1)
  • xushanthu-2014 (1)
  • natema (1)
  • duodenum96 (1)
  • ArnoStrouwen (1)
  • platawiec (1)
  • TorkelE (1)
Pull Request Authors
  • github-actions[bot] (45)
  • Vaibhavdixit02 (39)
  • ArnoStrouwen (21)
  • dependabot[bot] (18)
  • devmotion (12)
  • max-de-rooij (10)
  • thazhemadam (8)
  • ChrisRackauckas (5)
  • sathvikbhagavan (4)
  • jbytecode (3)
  • scheidan (2)
  • 00krishna (2)
  • lrnv (2)
  • ranocha (1)
  • christopher-dG (1)
Top Labels
Issue Labels
bug (4)
Pull Request Labels
dependencies (18) hacktoberfest-accepted (1)

Packages

  • Total packages: 1
  • Total downloads:
    • julia 251 total
  • Total dependent packages: 5
  • Total dependent repositories: 0
  • Total versions: 31
juliahub.com: GlobalSensitivity

Robust, Fast, and Parallel Global Sensitivity Analysis (GSA) in Julia

  • Versions: 31
  • Dependent Packages: 5
  • Dependent Repositories: 0
  • Downloads: 251 Total
Rankings
Dependent repos count: 9.9%
Dependent packages count: 11.0%
Average: 13.4%
Forks count: 14.9%
Stargazers count: 17.9%
Last synced: 4 months ago

Dependencies

.github/workflows/CompatHelper.yml actions
  • julia-actions/setup-julia latest composite
.github/workflows/Documentation.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/setup-julia latest composite
.github/workflows/FormatCheck.yml actions
  • actions/checkout v1 composite
  • julia-actions/setup-julia latest composite
.github/workflows/Invalidations.yml actions
  • actions/checkout v3 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-invalidations v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/draft-pdf.yml actions
  • actions/checkout v2 composite
  • actions/upload-artifact v1 composite
  • openjournals/openjournals-draft-action master composite
.github/workflows/SpellCheck.yml actions
  • actions/checkout v3 composite
  • crate-ci/typos v1.16.23 composite
.github/workflows/Downgrade.yml actions
  • actions/checkout v4 composite
  • cjdoris/julia-downgrade-compat-action v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/Tests.yml actions