Here is my summary of probability distributions in Julia.

This is a Julia version of CRAN Task View: Probability Distributions.

Packages with distributions:

Package | Description | Note |
---|---|---|

Distributions.jl | fit(), rand(), truncated(), mixture(), convolve(), product_distribution(). 100+ distributions | Maintained. 585 stars. @ johnczito @ mbesancon |

StatsFuns.jl | Wraps R. 14 distributions, 10 properties each | Maintained. |

Rmath.jl | Wraps R. d-p-q-r | Maintained. |

GSL.jl | Wraps C. 38 distributions, 2 properties each rand() & cdf() | Maintained. |

SkewDist.jl | fit() & rand(): SkewNormal, SkewTDist, MvSkewNormal, MvSkewTDist | Not registered. 4 years |

AlphaStableDistributions.jl | fit() & rand(): AlphaStable, AlphaSubGaussian | Maintained. @baggepinnen |

PearsonDistribution.jl | fit(): PearsonI - PearsonVII | Not registered. 2 years. @bdeonovic |

GeneralizedLambdaDistribution.jl | fit(): GLD | Not registered. 2 years. @bdeonovic |

GKDistribution.jl | fit(): GK | Not registered. 5 years. @bdeonovic |

PowerLaws.jl | fit(): continuous/discrete power laws | 5 years. |

PowerLaw.jl | fit(): continuous/discrete power laws | 5 years. |

GenInvGaussian.jl | rand(): Generalized Inverse Gaussian | 5 years. |

MNIG.jl | Multivariate Normal Inverse Gaussian | 2 years. |

QuadraticFormsMGHyp.jl | cdf(), E(): qfmgh | Maintained. @s-broda |

ProjectManagement.jl | rand(): PertBeta | Maintained. @ oxinabox |

TweedieDistributions.jl | rand(): Tweedie, CompoundPoissonGamma | Maintained. @jkbest2 |

ConditionalMvNormals.jl | condition() | Not registered. 3 years. @jkbest2 |

RandomMatrices.jl | matrix-valued random variables | Not maintained. |

RandomMatrixDistributions.jl | matrix-valued random variables | Maintained |

Packages for numerical Expectations of functions of random variables:

Package | Description | Note |
---|---|---|

Distributions.jl |
`expectation(dist, g)` use QuadGK.jl, generic |
Maintained. 585 stars on Github. |

Expectations.jl | Use FastGaussQuadrature.jl, for certain distributions | Maintained |

DistQuads.jl | Use FastGaussQuadrature.jl, generic | 2 years @ pkofod |

Packages for fitting distributions:

Package | Description | Note |
---|---|---|

FittingDistributions.jl | fit by reducing KL divergence | 2 years |

GaussianMixtures.jl | fit Gaussian Mixtures w/ EM | Maintained. @ davidavdav |

MixtureModels.jl | Finite mixture models | 7 years |

MixFit.jl | fit mixtures w/ random-swap EM | Maintained |

BayesianNonparametrics.jl | 2 years | |

BayesianMixtures.jl | nonparametric Bayesian mixture models | 3 years |

DPMM.jl | 1 year | |

BIAS.jl | 5 years |

Packages for working with distributions:

Package | Description | Note |
---|---|---|

ConditionalDists.jl | Conditional probability distributions powered by Flux.jl and Distributions.jl. | Maintained @vitskvara |

AlgebraPDF.jl | Create/fit/sample custom distributions | Maintained @ misha_mikhasenko |

DensityRatioEstimation.jl | Estimate the density ratio | Maintained |

ZeroInflatedDistributions.jl | Construct & work w/ Zero-inflated distributions | Maintained @jkbest2 |

ExtremeStats.jl | Fit heavy-tail distributions | Maintained |

GeoStats.jl | Spatial distributions | Maintained |

MeasureTheory.jl | make any Distribution easily usable as a Measure | Maintained. @ cscherrer |

MultivariateMoments.jl | moments of multivariate measures | Maintained. @blegat |

PPLs from Chadâ€™s list:

Package | Description | Note |
---|---|---|

Gen.jl | PPL | 1.5k stars |

Turing.jl | PPL | 1k stars |

Stheno.jl | PPL | 209 stars @ willtebbutt |

Soss.jl | PPL | 186 stars @ cscherrer |

Stan.jl | Wrapper | 154 stars |

ForneyLab.jl | PPL | 81 stars |

Omega.jl | PPL | 70 stars @zennatavares |

Poirot.jl | PPL | 58 stars @MikeInnes |

Jaynes.jl | PPL | 34 stars |

To be categorized:

Package | Description | Note |
---|---|---|

EmpiricalDistributions.jl | EmpiricalDistributions | Maintained @ oschulz |

EmpiricalCDFs.jl | Maintained @ jlapeyre | |

InterpolatedPDFs.jl | Maintained @m-wells | |

KDEstimation.jl | Maintained @m-wells | |

ConjugatePriors.jl | Maintained @ oschulz | |

CalibrationErrorsDistributions.jl | Maintained @ devmotion | |

BayesianTools.jl | product() & link() | Not maintained |

Divergences.jl | Divergences between two dist | Not maintained |

GaussianDistributions.jl | Maintained @ mschauer | |

BAT.jl | Bayesian analysis toolkit | Maintained |

SMC.jl | Sequential Monte Carlo alternative to MH MCMC | Maintained |

DynamicHMC.jl | Maintained @ Tamas_Papp | |

HigherOrderKernels.jl | Maintained |

- please comment w/ relevant links I missed
- note how much more fragmented distributions in R are compared to Julia.
- note how much easier it is to work w/ random variables in Julia than R.

See my cheatsheet comparing Julia/Matlab/Base R/STATA. - A PR to port SkewNormal to the maintained Distributions.jl from the unmaintained SkewDist.jl has been merged.

When functionality from unmaintained packages are fully subsumed into well maintained packages, unmaintained packages will be removed from this working list.