LinearMixingModels

Documentation for LinearMixingModels.

LinearMixingModels.ILMMType
ILMM(fs, H)

An Instantaneous Linear Mixing Model (ILMM) – a distribution over vector- valued functions. Let p be the number of observed outputs, and m the number of latent processes, then H, also known as the mixing matrix, is a p x m matrix whose column space spans the output space. The latent processes are represented a Gaussian process f.

Arguments:

  • fs: a length-m vector of Gaussian process objects from AbstractGPs.jl.
  • H: a p x m matrix representing a fixed basis of our p-dim target: h1,...,hm
LinearMixingModels.IndependentMOGPType
IndependentMOGP(fs)

A multi-output GP with independent outputs where output i is modelled by the single-output GP fs[i].

Arguments:

  • fs: a vector of p single-output GPs where p is the dimension of the output.
LinearMixingModels.OILMMType
OILMM(fs, H)

An Orthogonal Instantaneous Linear Mixing Model (OILMM) – a distribution over vector- valued functions. Let p be the number of observed outputs, and m the number of latent processes, then H, also known as the mixing matrix, is a p x m orthogonal matrix whose column space spans the output space. The latent processes are represented an Independent_MOGP as the latent processes remain decoupled.

Arguments:

  • f: a length-m vector of Gaussian process objects as an IndependentMOGP.
  • H: a p x m orthogonal matrix representing a fixed basis of our p-dim target: h1,...,hm
LinearMixingModels.OrthogonalType
Orthogonal(U, S; validate_fields)

An AbstractMatrix H that takes the form H = U * sqrt(S) with U a matrix with orthonormal columns and S a diagonal matrix with positive entries.

Arguments:

  • U: a p x m matrix with mutually orthonormal columns.
  • S: an m x m Diagonal matrix with positive entries.
AbstractGPs.posteriorMethod

Posterior implementation for isotopic inputs, given diagonal Σy (OILMM). See AbstractGPs.jl API docs.

Base.randMethod
rand(rng::AbstractRNG, fx::FiniteGP{<:ILMM})

Sample from the ILMM, including the observation noise. Follows generative structure of model 2 from [1]. Follows the AbstractGPs.jl API. [1] - Bruinsma et al 2020.

Base.randMethod
rand(rng::AbstractRNG, fx::FiniteGP{<:OILMM})

Sample from the OILMM, including the observation noise. Follows generative structure of model 2 from [1]. Follows the AbstractGPs.jl API. See also rand_latent. [1] - Bruinsma et al 2020.

LinearMixingModels.finite_gpsMethod
finite_gps(fx)

Returns a list of of the finite GPs for all latent processes, given a finite IndependentMOGP and isotopic inputs.

LinearMixingModels.get_latent_gpMethod
get_latent_gp(f::ILMM)

Returns the underlying latent space AbstractGP belonging to f.

julia> f = ILMM(independent_mogp([GP(SEKernel())]), rand(2,2));

julia> latent_f = get_latent_gp(f);

julia> latent_f isa IndependentMOGP
true

julia> latent_f.fs == [GP(SEKernel())]
true
LinearMixingModels.independent_mogpMethod
independent_mogp(fs)

Returns an IndependentMOGP given a list of single output GPs fs.

julia> ind_mogp1 = independent_mogp([GP(KernelFunctions.SEKernel())]);

julia> ind_mogp2 = IndependentMOGP([GP(KernelFunctions.SEKernel())]);

julia> typeof(ind_mogp1) == typeof(ind_mogp2)
true

julia> ind_mogp1.fs == ind_mogp2.fs
true
LinearMixingModels.regulariserMethod
regulariser(fx, y)

Computes the regularisation term of the logpdf. See e.g. appendix A.4 of [1] - Bruinsma et al 2020.

LinearMixingModels.regulariserMethod
regulariser(fx, y)

Computes the regularisation term of the logpdf. See e.g. appendix A.4 of [1] - Bruinsma et al 2020.