Univariate Distributions

The following should implement sample, pdf, log-pdf, support-lower, support-upper, cdf, icdf, mean, variance and pmf and log-pmf for discrete distributions.

Dirichlet

(dirichlet concentration)

λ> (dirichlet [1 10 20])
#distributions.core.DirichletDistribution{:alpha [1 10 20]}

Discrete (Integer)

Expect better performance than using discrete-real with integers. (discrete-integer integers probabilities)


λ> (discrete-integer [3 4] [0.5 0.5])
#distributions.core.DiscreteInteger{:integers [3 4], :probabilities (0.5 0.5)}

Discrete (Real)

(discrete-real locations probabilities)

λ> (discrete-real [0.2 0.3] [0.5 0.5])
#distributions.core.DiscreteReal{:locations [0.2 0.3], :probabilities (0.5 0.5)}
λ> 

Enumerated

Generalization of both Discrete-Real and Discrete-Integer (enumerated items probabilities)

λ> (enumerated [:a "foo" 5 [1 2] {:mykey "mymap"}] [0.2 0.2 0.2 0.2 0.2])
#distributions.core.Enumerated{:items [:a "foo" 5 [1 2] {:mykey "mymap"}], :probabilities (0.2 0.2 0.2 0.2 0.2), :discrete #distributions.core.DiscreteInteger{:integers (0 1 2 3 4), :probabilities (0.2 0.2 0.2 0.2 0.2)}, :imap {:a 0, "foo" 1, 5 2, [1 2] 3, {:mykey "mymap"} 4}}
λ> (sample (enumerated [:a "foo" 5 [1 2] {:mykey "mymap"}] [0.2 0.2 0.2 0.2 0.2]))
{:mykey "mymap"}

Gamma

(gamma shape rate)

λ> (gamma 3 2)
#distributions.core.Gamma{:shape 3, :rate 2}

Generalized Double Pareto

(gdp scale shape)

λ> (gdp 4 3)
#distributions.core.GeneralizedDoublePareto{:scale 4, :shape 3}

Inverse Gaussian

(inverse-gaussian mean shape)

λ> (inverse-gaussian 3 4)
#distributions.core.InverseGaussianDistribution{:mean 3, :shape 4}

Negative Binomial

(negative-binomial failues probabilities)

λ> (negative-binomial 10 0.4)
#distributions.core.NegativeBinomial{:failures 10, :probability 0.4}

Normal-Laplace

The density of this distribution is proportional to the product of a normal density with mean mu and variance gamma*s2 and a laplace density with rate tau. It is implemented as a mixture of truncated distributions. Useful in Bayesian computations involving normal observations and Laplace priors.

(normal-laplace mu s2 gamma tau)

λ> (normal-laplace 0 1 1 1)
#distributions.core.Mixture{:components [#distributions.core.TruncatedDistribution{:distribution #distributions.core.Normal{:mean 1.0, :variance 1.0}, :lower -Infinity, :upper 0, :F-lower 0.0, :F-upper 0.15865525393145702} #distributions.core.TruncatedDistribution{:distribution #distributions.core.Normal{:mean -1.0, :variance 1.0}, :lower 0, :upper Infinity, :F-lower 0.841344746068543, :F-upper 1.0}], :probabilities [0.5 0.5]}

Normal/Gaussian

(normal mean variance)

λ> (normal 3 2)
#distributions.core.Normal{:mean 3, :variance 2}

Poisson

(poisson rate)

λ> (poisson 1)
#distributions.core.Poisson{:rate 1}

Polya-Gamma

(polya-gamma z)

λ> (polya-gamma 3)
#distributions.core.PolyaGammaDistribution{:z 3}

Students t

Standard: (t-distribution df)

Location-Scale: (t-distribution df location scale)

λ> (t-distribution 1 2 3)
#distributions.core.LocationScaleDistribution{:distribution #object[org.apache.commons.math3.distribution.TDistribution 0x38b1a404 "org.apache.commons.math3.distribution.TDistribution@38b1a404"], :location 2, :scale 3}