https://github.com/rok-cesnovar/stan-distributions
A web app to visualize distributions in Stan. Uses Stan Math C++ compiled to Webassembly to evaluate the functions using actual Stan implementations. Uses d3.js for visualizations.
https://github.com/rok-cesnovar/stan-distributions
distributions stan
Last synced: 8 months ago
JSON representation
A web app to visualize distributions in Stan. Uses Stan Math C++ compiled to Webassembly to evaluate the functions using actual Stan implementations. Uses d3.js for visualizations.
- Host: GitHub
- URL: https://github.com/rok-cesnovar/stan-distributions
- Owner: rok-cesnovar
- License: bsd-3-clause
- Created: 2021-11-27T17:09:01.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-10-26T07:10:01.000Z (about 3 years ago)
- Last Synced: 2025-01-11T00:44:41.940Z (10 months ago)
- Topics: distributions, stan
- Language: HTML
- Homepage:
- Size: 758 KB
- Stars: 44
- Watchers: 2
- Forks: 3
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Stan distributions
A web app to visualize distributions in Stan. It uses Stan Math C++ code to evaluate the log probability density/mass functions. The Stan Math C++ is compiled to Webassembly using [Emscripten](https://emscripten.org/index.html). [d3.js](https://d3js.org/) is used for visualizations.
This was inspired by the [distribution zoo](https://github.com/ben18785/distribution-zoo). The main differences of this approach are:
- it runs entirely in the user's browser and does not require a server (very easy to fork and deploy your own custom version),
- it uses the actual Stan C++ for all density/mass functions (Distribution zoo is based on R distribution implementations).
This currently supports the majority of Stan's univariate continuous distributions. Missing discrete distributions will be added shortly.
## Links
### Unbounded Continuous Distributions
- [cauchy](https://rok-cesnovar.github.io/stan-distributions/cauchy)
- [double_exponential](https://rok-cesnovar.github.io/stan-distributions/double_exponential)
- [exp_mod_normal](https://rok-cesnovar.github.io/stan-distributions/exp_mod_normal)
- [gumbel](https://rok-cesnovar.github.io/stan-distributions/gumbel)
- [logistic](https://rok-cesnovar.github.io/stan-distributions/logistic)
- [normal](https://rok-cesnovar.github.io/stan-distributions/normal)
- [skew_double_exponential](https://rok-cesnovar.github.io/stan-distributions/skew_double_exponential)
- [skew_normal](https://rok-cesnovar.github.io/stan-distributions/skew_normal)
- [std_normal](https://rok-cesnovar.github.io/stan-distributions/std_normal)
- [student_t](https://rok-cesnovar.github.io/stan-distributions/student_t)
### Positive Continuous Distributions
- [chi_square](https://rok-cesnovar.github.io/stan-distributions/chi_square)
- [exponential](https://rok-cesnovar.github.io/stan-distributions/exponential)
- [frechet](https://rok-cesnovar.github.io/stan-distributions/frechet)
- [gamma](https://rok-cesnovar.github.io/stan-distributions/gamma)
- [inv_chi_square](https://rok-cesnovar.github.io/stan-distributions/inv_chi_square)
- [inv_gamma](https://rok-cesnovar.github.io/stan-distributions/inv_gamma)
- [lognormal](https://rok-cesnovar.github.io/stan-distributions/lognormal)
- [rayleigh](https://rok-cesnovar.github.io/stan-distributions/rayleigh)
- [scaled_inv_chi_square](https://rok-cesnovar.github.io/stan-distributions/scaled_inv_chi_square)
- [weibull](https://rok-cesnovar.github.io/stan-distributions/weibull)
### Positive Lower-Bounded Distributions
- [pareto](https://rok-cesnovar.github.io/stan-distributions/pareto)
- [pareto_type_2](https://rok-cesnovar.github.io/stan-distributions/pareto_type_2)
- [wiener](https://rok-cesnovar.github.io/stan-distributions/wiener)
### Continuous Distributions on [0, 1]
- [beta](https://rok-cesnovar.github.io/stan-distributions/beta)
- [beta_proportion](https://rok-cesnovar.github.io/stan-distributions/beta_proportion)
### Circular Distributions
- [von_mises](https://rok-cesnovar.github.io/stan-distributions/von_mises)
### Bounded Continuous Distributions
- [uniform](https://rok-cesnovar.github.io/stan-distributions/uniform)
### Unbounded Discrete Distributions
- [neg_binomial](https://rok-cesnovar.github.io/stan-distributions/neg_binomial)
- [neg_binomial_2](https://rok-cesnovar.github.io/stan-distributions/neg_binomial_2)
- [neg_binomial_2_log](https://rok-cesnovar.github.io/stan-distributions/neg_binomial_2_log)
- [poisson](https://rok-cesnovar.github.io/stan-distributions/poisson)
- [poisson_log](https://rok-cesnovar.github.io/stan-distributions/poisson_log)
## Custom distributions
- [beta_unbounded](https://rok-cesnovar.github.io/stan-distributions/beta_unbounded)
Contributed by @noejn2.
## Running it locally
1. Clone the repository
```
git clone https://github.com/rok-cesnovar/stan-distributions/
```
2. Start a simple Python server
This is required in order to serve the .wasm files. The actual computation still happens in the browser.
```
python3 -m http.server 8000
```
3. Open localhost:8000 in your favorite browser. Change the port number in step 2 if needed.