GlobalSensitivity.jl
GlobalSensitivity.jl: Performant and Parallel Global Sensitivity Analysis with Julia - Published in JOSS (2022)
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
Keywords from Contributors
Scientific Fields
Repository
Robust, Fast, and Parallel Global Sensitivity Analysis (GSA) in Julia
Basic Info
- Host: GitHub
- Owner: SciML
- License: mit
- Language: Julia
- Default Branch: master
- Homepage: https://docs.sciml.ai/GlobalSensitivity/stable/
- Size: 23.2 MB
Statistics
- Stars: 58
- Watchers: 6
- Forks: 23
- Open Issues: 29
- Releases: 30
Topics
Metadata Files
README.md
GlobalSensitivity.jl
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 ```

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

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
- Website: https://sciml.ai
- Twitter: SciML_Org
- Repositories: 170
- Profile: https://github.com/SciML
Open source software for scientific machine learning
JOSS Publication
GlobalSensitivity.jl: Performant and Parallel Global Sensitivity Analysis with Julia
Authors
Tags
julia global sensitivity analysisCitation (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
Top Committers
| Name | 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 |
Committer Domains (Top 20 + Academic)
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
Pull Request Labels
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
- Homepage: https://docs.sciml.ai/GlobalSensitivity/stable/
- Documentation: https://docs.juliahub.com/General/GlobalSensitivity/stable/
- License: MIT
-
Latest release: 2.8.0
published 5 months ago
Rankings
Dependencies
- julia-actions/setup-julia latest composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/setup-julia latest composite
- actions/checkout v1 composite
- julia-actions/setup-julia latest composite
- actions/checkout v3 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-invalidations v1 composite
- julia-actions/setup-julia v1 composite
- JuliaRegistries/TagBot v1 composite
- actions/checkout v2 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite
- actions/checkout v3 composite
- crate-ci/typos v1.16.23 composite
- 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
