# bayespy.nodes.GaussianMarkovChain¶

class bayespy.nodes.GaussianMarkovChain(mu, Lambda, A, nu, n=None, inputs=None, **kwargs)[source]

Node for Gaussian Markov chain random variables.

In a simple case, the graphical model can be presented as:

where and are the mean and the precision matrix of the initial state, is the state dynamics matrix and is the precision of the innovation noise. It is possible that and/or are different for each transition instead of being constant.

The probability distribution is

where

Parameters
muGaussian-like node or (…,D)-array

, mean of , -dimensional with plates (…)

LambdaWishart-like node or (…,D,D)-array

, precision matrix of , -dimensional with plates (…)

AGaussian-like node or (D,D)-array or (…,1,D,D)-array or (…,N-1,D,D)-array

, state dynamics matrix, -dimensional with plates (D,) or (…,1,D) or (…,N-1,D)

nugamma-like node or (D,)-array or (…,1,D)-array or (…,N-1,D)-array

, diagonal elements of the precision of the innovation process, plates (D,) or (…,1,D) or (…,N-1,D)

nint, optional

, the length of the chain. Must be given if and are constant over time.

__init__(mu, Lambda, A, nu, n=None, inputs=None, **kwargs)[source]

Create GaussianMarkovChain node.

Methods

 __init__(mu, Lambda, A, nu[, n, inputs]) Create GaussianMarkovChain node. add_plate_axis(to_plate) broadcasting_multiplier(plates, *args) Delete this node and the children Computes gradient with respect to the natural parameters. Return parameters of the VB distribution. Computes the Riemannian/natural gradient. get_shape(ind) Return True if the node has a plotter Set the variable to a random sample from the current distribution. initialize_from_value(x, *args) load(filename) logpdf(X[, mask]) Compute the log probability density function Q(X) of this node. lower_bound_contribution([gradient, …]) Compute E[ log p(X|parents) - log q(X) ] move_plates(from_plate, to_plate) observe(x, *args[, mask]) Fix moments, compute f and propagate mask. pdf(X[, mask]) Compute the probability density function of this node. plot([fig]) Plot the node distribution using the plotter of the node random(*phi[, plates]) Draw a random sample from the distribution. rotate(R[, inv, logdet]) save(filename) Set the parameters of the VB distribution. set_plotter(plotter) Print the distribution using standard parameterization. update([annealing])

Attributes

 dims plates plates_multiplier Plate multiplier is applied to messages to parents