[RFC]: implement a broader range of statistical distributions (tracking issue)
Description
This RFC proposes implement large number of probability distributions. The purpose of this issue is to serve as a tracking issue for implement large number of probability distributions.
Probability distributions
Continuous distributions
supported on a bounded interval
- [X] arcsine
- [ ] ARGUS
- [ ] balding–Nichols
- [ ] bates
- [X] beta
- [ ] beta rectangular
- [ ] continuous Bernoulli
- [ ] Irwin–Hall
- [X] Kumaraswamy
- [ ] logit-normal
- [ ] noncentral beta
- [ ] PERT
- [X] cosine
- [ ] reciprocal
- [X] triangular
- [ ] U-quadratic
- [X] uniform
- [ ] Wigner semicircle
supported on a semi-infinite interval
- [ ] benini
- [ ] benktander 1st kind
- [ ] benktander 2nd kind
- [X] beta prime
- [ ] burr
- [X] chi
- [X] chi-squared
- [ ] inverse chi-squared
- [ ] scaled inverse chi-squared
- [ ] dagum
- [ ] davis
- [X] erlang
- [ ] hyper Erlang
- [X] exponential
- [ ] hyperexponential
- [ ] hypoexponential
- [ ] exponential-logarithmic
- [X] F
- [ ] noncentral F-distribution
- [ ] folded normal
- [X] fréchet
- [X] gamma
- [ ] generalized gamma
- [X] inverse-gamma
- [ ] gamma/Gompertz
- [ ] gompertz
- [ ] shifted Gompertz
- [ ] half-logistic
- [ ] half-normal
- [ ] hotelling's T-squared
- [ ] inverse Gaussian
- [ ] generalized inverse Gaussian
- [ ] kolmogorov
- [X] lévy
- [ ] log-Cauchy
- [ ] log-Laplace
- [ ] log-logistic
- [X] log-normal
- [ ] log-t
- [ ] lomax
- [ ] matrix-exponential
- [ ] maxwell–Boltzmann
- [ ] maxwell–Jüttner
- [ ] Mittag-Leffler
- [ ] nakagami
- [X] pareto-type1
- [ ] phase-type
- [ ] poly-Weibull
- [X] rayleigh
- [ ] relativistic Breit–Wigner
- [ ] rice
- [X] truncated-normal
- [ ] type-2 Gumbel
- [X] weibull
- [ ] discrete Weibull
- [ ] wilks's lambda
supported on the whole real line
- [X] cauchy
- [ ] exponential power
- [ ] fisher's z
- [ ] kaniadakis κ-Gaussian
- [ ] gaussian q
- [ ] generalized normal
- [ ] generalized hyperbolic
- [ ] geometric stable
- [X] gumbel
- [ ] holtsmark
- [ ] hyperbolic secant
- [ ] Johnson's SU
- [ ] landau
- [X] laplace
- [ ] asymmetric laplace
- [X] logistic
- [ ] noncentral t
- [X] normal
- [ ] normal-inverse Gaussian
- [ ] skew normal
- [ ] slash
- [ ] stable
- [x] student's t
- [ ] tracy–Widom
- [ ] variance-gamma
- [ ] voigt
with support whose type varies
- [ ] generalized chi-squared
- [ ] generalized extreme value
- [ ] generalized Pareto
- [ ] marchenko–Pastur
- [ ] kaniadakis κ-exponential
- [ ] kaniadakis κ-Gamma
- [ ] kaniadakis κ-Weibull
- [ ] kaniadakis κ-Logistic
- [ ] kaniadakis κ-Erlang
- [ ] q-exponential
- [ ] q-Gaussian
- [ ] q-Weibull
- [ ] shifted log-logistic
- [ ] tukey lambda
Discrete distributions
with finite support
- [ ] benford
- [X] bernoulli
- [ ] beta-binomial
- [X] binomial
- [ ] categorical
- [X] hypergeometric
- [ ] negative hypergeometric
- [ ] poisson binomial
- [ ] rademacher
- [ ] soliton
- [X] discrete uniform
- [ ] zipf
- [ ] zipf–Mandelbrot
with infinite support
- [ ] beta negative binomial
- [ ] borel
- [ ] conway–Maxwell–Poisson
- [ ] discrete phase-type
- [ ] delaporte
- [ ] extended negative binomial
- [ ] flory–Schulz
- [ ] gauss–Kuzmin
- [x] geometric
- [ ] logarithmic
- [ ] mixed Poisson
- [X] negative-binomial
- [ ] panjer
- [ ] parabolic fractal
- [X] poisson
- [ ] skellam
- [ ] yule–Simon
- [ ] zeta
Mixed distributions
- [ ] rectified Gaussian
Multivariate(joint) distributions
Discrete:
- [ ] ewens
- [ ] multinomial
- [ ] dirichlet multinomial
- [ ] negative multinomial
Continuous:
- [ ] Dirichlet
- [ ] generalized Dirichlet
- [ ] multivariate Laplace
- [ ] multivariate normal
- [ ] multivariate stable
- [ ] multivariate t
- [ ] normal-gamma
- [ ] normal-inverse-gamma
Related Issues
None.
Questions
No.
Other
No.
Checklist
- [X] I have read and understood the Code of Conduct.
- [X] Searched for existing issues and pull requests.
- [X] The issue name begins with
RFC:.
@Rejoan-Sardar Thanks for opening this issue. One question I have is which of the above distributions are included in SciPy? For each of the distributions, it would be good to point to a reference implementation. Julia stats is another possibility.
Another question I have concerns which of the above distributions are feasible given the current functionality available in stdlib. In short, which distributions should we prioritize first? And which have prerequisite functionality which we have not yet added to stdlib?