Node for Gaussian Markov chain random variables with switching dynamics.
The node models a sequence of Gaussian variables
:math:`mathbf{x}_0,ldots,mathbf{x}_{N-1}$ with linear Markovian dynamics.
The dynamics may change in time, which is obtained by having a set of
matrices and at each time selecting one of them as the state dynamics
matrix. The graphical model can be presented as:
where and are the mean and
the precision matrix of the initial state, is the
precision of the innovation noise, and are the state
dynamics matrix obtained by selecting one of the matrices
at each time. The selections are
provided by . The probability distribution is
where
Parameters:
mu (Gaussian-like node or (...,D)-array) – , mean of , -dimensional
with plates (…)
Lambda (Wishart-like node or (...,D,D)-array) – , precision matrix of ,
-dimensional with plates (…)
B (Gaussian-like node or (...,D,D,K)-array) – , a set of state dynamics matrix,
-dimensional with plates (…,D)
Z (categorical-like node or (...,N-1)-array) – , time-dependent selection,
-categorical with plates (…,N-1)
nu (gamma-like node or (...,D)-array) – , diagonal elements of the precision of the
innovation process, plates (…,D)
n (int, optional) – , the length of the chain. Must be given if
does not have plates over the time domain (which would not make sense).
Equivalent model block can be constructed with GaussianMarkovChain
by explicitly using Gate to select the state dynamics matrix.
However, that approach is not very efficient for large datasets because it
does not utilize the structure of , thus it explicitly
computes huge moment arrays.