A Julia package for probability distributions and associated functions. Particularly, Distributions implements:
- Moments (e.g mean, variance, skewness, and kurtosis), entropy, and other properties
- Probability density/mass functions (pdf) and their logarithm (logpdf)
- Moment generating functions and characteristic functions
- Sampling from population or from a distribution
- Maximum likelihood estimation
Note: The functionalities related to conjugate priors have been moved to the ConjugatePriors package.
- Documentation: https://JuliaStats.github.io/Distributions.jl/stable/
-
If you need explanation on how to do X, Y using Distributions, feel free to ask on the Julia Discourse or Slack, get an invitation here.
-
If you have a bug linked with Distributions, check that it has not been reported yet on the issues of the repository. If not, you can file a new issue, add your version of the package which you can get with this command in the Julia REPL:
julia> ]status Distributions
Be exhaustive in your report, give the summary of the bug, a Minimal Working Example (MWE), what happens and what you expected to happen.
To contribute to the package, fork the repository on GitHub, clone it and make modifications on a new branch, do not commit modifications on master. Once your changes are made, push them on your fork and create the Pull Request on the main repository.
Distributions is a central package which many rely on, the following are required for contributions to be accepted:
- Docstrings must be added to all interface and non-trivial functions.
- Tests validating the modified behavior in the
test
folder. If new test files are added, do not forget to add them intest/runtests.jl
. Cover possible edge cases. Run the tests locally before submitting the PR. - At the end of the tests,
Test.detect_ambiguities(Distributions)
is run to check method ambiguities. Verify that your modified code did not yield method ambiguities. - Make according modifications to the
docs
folder, build the documentation locally with$ julia docs/make.jl
, verify that your modifications display correctly and did not yield warnings.
See CITATION.bib
, or use the DOI badge above.