goal-probability-0.20: Optimization on manifolds of probability distributions with Goal
Safe HaskellNone
LanguageHaskell2010

Goal.Probability.Distributions.Gaussian

Description

Various instances of statistical manifolds, with a focus on exponential families. In the documentation we use \(X\) to indicate a random variable with the distribution being documented.

Synopsis

Univariate

type Normal = LocationShape NormalMean NormalVariance Source #

The Manifold of Normal distributions. The Source coordinates are the mean and the variance.

data NormalMean Source #

The Mean of a normal distribution. When used as a distribution itself, it is a Normal distribution with unit variance.

Instances

Instances details
DuallyFlat Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

dualPotential :: (PotentialCoordinates Normal #* Normal) -> Double

Legendre Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

potential :: (PotentialCoordinates Normal # Normal) -> Double

Legendre NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

potential :: (PotentialCoordinates NormalMean # NormalMean) -> Double

Manifold NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Associated Types

type Dimension NormalMean :: Nat

Statistical NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Associated Types

type SamplePoint NormalMean Source #

ExponentialFamily Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

ExponentialFamily NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Riemannian Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

metric :: (Mean # Normal) -> Mean #* Tensor Normal Normal

flat :: (Mean # Normal) -> (Mean # Normal) -> Mean #* Normal

sharp :: (Mean # Normal) -> (Mean #* Normal) -> Mean # Normal

Riemannian Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

metric :: (Natural # Normal) -> Natural #* Tensor Normal Normal

flat :: (Natural # Normal) -> (Natural # Normal) -> Natural #* Normal

sharp :: (Natural # Normal) -> (Natural #* Normal) -> Natural # Normal

Transition Mean c Normal => MaximumLikelihood c Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

mle :: Sample Normal -> c # Normal Source #

AbsolutelyContinuous Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

AbsolutelyContinuous Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

AbsolutelyContinuous Source Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition c Source Normal => Generative c Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Mean Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Mean # Normal) -> Natural # Normal

Transition Mean Natural NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Mean Source Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Mean # Normal) -> Source # Normal

Transition Mean Source NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Natural Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Normal) -> Mean # Normal

Transition Natural Mean NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Natural Source Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Natural Source NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Source Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Normal) -> Mean # Normal

Transition Source Mean NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Source Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Source Natural NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

LogLikelihood Natural Normal Double Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

LogLikelihood Natural NormalMean Double Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat k) => Transition Natural Source (Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) -> Source # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)

Transition Natural Source (Affine Tensor NormalMean Normal NormalMean) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Affine Tensor NormalMean Normal NormalMean) -> Source # Affine Tensor NormalMean Normal NormalMean

(KnownNat n, KnownNat k) => Transition Source Natural (Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) -> Natural # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)

Transition Source Natural (Affine Tensor NormalMean Normal NormalMean) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Affine Tensor NormalMean Normal NormalMean) -> Natural # Affine Tensor NormalMean Normal NormalMean

type PotentialCoordinates Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates Normal = Natural
type PotentialCoordinates NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates NormalMean = Natural
type Dimension NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type Dimension NormalMean = 1
type SamplePoint NormalMean Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

data NormalVariance Source #

The variance of a normal distribution.

Instances

Instances details
DuallyFlat Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

dualPotential :: (PotentialCoordinates Normal #* Normal) -> Double

Legendre Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

potential :: (PotentialCoordinates Normal # Normal) -> Double

Manifold NormalVariance Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Associated Types

type Dimension NormalVariance :: Nat

ExponentialFamily Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Riemannian Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

metric :: (Mean # Normal) -> Mean #* Tensor Normal Normal

flat :: (Mean # Normal) -> (Mean # Normal) -> Mean #* Normal

sharp :: (Mean # Normal) -> (Mean #* Normal) -> Mean # Normal

Riemannian Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

metric :: (Natural # Normal) -> Natural #* Tensor Normal Normal

flat :: (Natural # Normal) -> (Natural # Normal) -> Natural #* Normal

sharp :: (Natural # Normal) -> (Natural #* Normal) -> Natural # Normal

Transition Mean c Normal => MaximumLikelihood c Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

mle :: Sample Normal -> c # Normal Source #

AbsolutelyContinuous Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

AbsolutelyContinuous Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

AbsolutelyContinuous Source Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition c Source Normal => Generative c Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Mean Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Mean # Normal) -> Natural # Normal

Transition Mean Source Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Mean # Normal) -> Source # Normal

Transition Natural Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Normal) -> Mean # Normal

Transition Natural Source Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Transition Source Mean Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Normal) -> Mean # Normal

Transition Source Natural Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

LogLikelihood Natural Normal Double Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat k) => Transition Natural Source (Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) -> Source # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)

Transition Natural Source (Affine Tensor NormalMean Normal NormalMean) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Affine Tensor NormalMean Normal NormalMean) -> Source # Affine Tensor NormalMean Normal NormalMean

(KnownNat n, KnownNat k) => Transition Source Natural (Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) -> Natural # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)

Transition Source Natural (Affine Tensor NormalMean Normal NormalMean) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Affine Tensor NormalMean Normal NormalMean) -> Natural # Affine Tensor NormalMean Normal NormalMean

type PotentialCoordinates Normal Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates Normal = Natural
type Dimension NormalVariance Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type Dimension NormalVariance = 1

Multivariate

data MVNMean (n :: Nat) Source #

The Mean of a normal distribution. When used as a distribution itself, it is a Normal distribution with unit variance.

Instances

Instances details
(KnownNat n, KnownNat (Triangular n)) => Transition Mean Natural (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Mean Source (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => Transition Natural Mean (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Natural Source (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Source Mean (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Source Natural (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat k) => Transition Natural Source (Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) -> Source # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)

(KnownNat n, KnownNat k) => Transition Natural Source (Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) -> Source # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)

(KnownNat n, KnownNat k) => Transition Source Natural (Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)) -> Natural # Affine Tensor (MVNMean n) (Replicated n Normal) (MVNMean k)

(KnownNat n, KnownNat k) => Transition Source Natural (Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) -> Natural # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)

(KnownNat n, Transition Mean c (MultivariateNormal n)) => MaximumLikelihood c (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => AbsolutelyContinuous Natural (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => AbsolutelyContinuous Source (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n), Transition c Source (MultivariateNormal n)) => Generative c (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => LogLikelihood Natural (MultivariateNormal n) (Vector n Double) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => DuallyFlat (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

dualPotential :: (PotentialCoordinates (MultivariateNormal n) #* MultivariateNormal n) -> Double

(KnownNat n, KnownNat (Triangular n)) => Legendre (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

potential :: (PotentialCoordinates (MultivariateNormal n) # MultivariateNormal n) -> Double

KnownNat n => Manifold (MVNMean n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Associated Types

type Dimension (MVNMean n) :: Nat

KnownNat n => Statistical (MVNMean n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Associated Types

type SamplePoint (MVNMean n) Source #

(KnownNat n, KnownNat (Triangular n)) => ExponentialFamily (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => ExponentialFamily (MVNMean n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates (MultivariateNormal n) = Natural
type PotentialCoordinates (MVNMean n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates (MVNMean n) = Natural
type Dimension (MVNMean n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type Dimension (MVNMean n) = n
type SamplePoint (MVNMean n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type SamplePoint (MVNMean n) = Vector n Double

data MVNCovariance (n :: Nat) Source #

The variance of a normal distribution.

Instances

Instances details
(KnownNat n, KnownNat (Triangular n)) => Transition Mean Natural (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Mean Source (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => Transition Natural Mean (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Natural Source (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Source Mean (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => Transition Source Natural (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat k) => Transition Natural Source (Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Natural # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) -> Source # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)

(KnownNat n, KnownNat k) => Transition Source Natural (Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

transition :: (Source # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)) -> Natural # Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k)

(KnownNat n, Transition Mean c (MultivariateNormal n)) => MaximumLikelihood c (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => AbsolutelyContinuous Natural (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => AbsolutelyContinuous Source (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n), Transition c Source (MultivariateNormal n)) => Generative c (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

KnownNat n => LogLikelihood Natural (MultivariateNormal n) (Vector n Double) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

(KnownNat n, KnownNat (Triangular n)) => DuallyFlat (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

dualPotential :: (PotentialCoordinates (MultivariateNormal n) #* MultivariateNormal n) -> Double

(KnownNat n, KnownNat (Triangular n)) => Legendre (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Methods

potential :: (PotentialCoordinates (MultivariateNormal n) # MultivariateNormal n) -> Double

(KnownNat n, KnownNat (Triangular n)) => Manifold (MVNCovariance n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

Associated Types

type Dimension (MVNCovariance n) :: Nat

(KnownNat n, KnownNat (Triangular n)) => ExponentialFamily (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates (MultivariateNormal n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type PotentialCoordinates (MultivariateNormal n) = Natural
type Dimension (MVNCovariance n) Source # 
Instance details

Defined in Goal.Probability.Distributions.Gaussian

type Dimension (MVNCovariance n) = Triangular n

type MultivariateNormal (n :: Nat) = LocationShape (MVNMean n) (MVNCovariance n) Source #

The Manifold of MultivariateNormal distributions. The Source coordinates are the (vector) mean and the covariance matrix. For the coordinates of a multivariate normal distribution, the elements of the mean come first, and then the elements of the covariance matrix in row major order.

Note that we only store the lower triangular elements of the covariance matrix, to better reflect the true dimension of a MultivariateNormal Manifold. In short, be careful when using join and split to access the values of the Covariance matrix, and consider using the specific instances for MVNs.

multivariateNormalCorrelations :: KnownNat k => (Source # MultivariateNormal k) -> Matrix k k Double Source #

Computes the correlation matrix of a MultivariateNormal distribution.

bivariateNormalConfidenceEllipse :: Int -> Double -> (Source # MultivariateNormal 2) -> [(Double, Double)] Source #

Confidence elipses for bivariate normal distributions.

splitMultivariateNormal :: KnownNat n => (Source # MultivariateNormal n) -> (Vector n Double, Matrix n n Double) Source #

Split a MultivariateNormal into its Means and Covariance matrix.

splitMeanMultivariateNormal :: KnownNat n => (Mean # MultivariateNormal n) -> (Vector n Double, Matrix n n Double) Source #

Split a MultivariateNormal into its Means and Covariance matrix.

splitNaturalMultivariateNormal :: KnownNat n => (Natural # MultivariateNormal n) -> (Vector n Double, Matrix n n Double) Source #

Split a MultivariateNormal into the precision weighted means and (-0.5*) Precision matrix. Note that this performs an easy to miss computation for converting the natural parameters in our reduced representation of MVNs into the full precision matrix.

joinMultivariateNormal :: KnownNat n => Vector n Double -> Matrix n n Double -> Source # MultivariateNormal n Source #

Join a covariance matrix into a MultivariateNormal.

joinMeanMultivariateNormal :: KnownNat n => Vector n Double -> Matrix n n Double -> Mean # MultivariateNormal n Source #

Join a covariance matrix into a MultivariateNormal.

joinNaturalMultivariateNormal :: KnownNat n => Vector n Double -> Matrix n n Double -> Natural # MultivariateNormal n Source #

Joins a MultivariateNormal out of the precision weighted means and (-0.5) Precision matrix. Note that this performs an easy to miss computation for converting the full precision Matrix into the reduced, EF representation we use here.

Linear Models

type SimpleLinearModel = Affine Tensor NormalMean Normal NormalMean Source #

Linear models are linear functions with additive Guassian noise.

type LinearModel n k = Affine Tensor (MVNMean n) (MultivariateNormal n) (MVNMean k) Source #

Linear models are linear functions with additive Guassian noise.