# bayespy.nodes.CategoricalMarkovChain¶

class bayespy.nodes.CategoricalMarkovChain(pi, A, states=None, **kwargs)[source]

Node for categorical Markov chain random variables.

The node models a Markov chain which has a discrete set of K possible states and the next state depends only on the previous state and the state transition probabilities. The graphical model is shown below:

where contains the probabilities for the initial state and is the state transition probability matrix. It is possible to have varying in time.

where

This node can be used to construct hidden Markov models by using Mixture for the emission distribution.

Parameters
piDirichlet-like node or (…,K)-array

, probabilities for the first state. -dimensional Dirichlet.

ADirichlet-like node or (K,K)-array or (…,1,K,K)-array or (…,N-1,K,K)-array

, probabilities for state transitions. -dimensional Dirichlet with plates (K,) or (…,1,K) or (…,N-1,K).

statesint, optional

, the length of the chain.

__init__(pi, A, states=None, **kwargs)[source]

Create categorical Markov chain

Methods

 __init__(pi, A[, states]) Create categorical Markov chain 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 Draw a random sample from the distribution. 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