estimate¶

quantecon.markov.estimate.estimate_mc(X)[source]

Estimate the Markov chain associated with a time series $$X = (X_0, \ldots, X_{T-1})$$ assuming that the state space is the finite set $$\{X_0, \ldots, X_{T-1}\}$$ (duplicates removed). The estimation is by maximum likelihood. The estimated transition probabilities are given by the matrix $$P$$ such that $$P[i, j] = N_{ij} / N_i$$, where $$N_{ij} = \sum_{t=0}^{T-1} 1_{\{X_t=s_i, X_{t+1}=s_j\}}$$, the number of transitions from state $$s_i$$ to state $$s_j$$, while $$N_i$$ is the total number of visits to $$s_i$$. The result is returned as a MarkovChain instance.

Parameters:
Xarray_like

A time series of state values, from which the transition matrix will be estimated, where X[t] contains the t-th observation.

Returns:
mcMarkovChain

A MarkovChain instance where mc.P is a stochastic matrix estimated from the data X and mc.state_values is an array of values that appear in X (sorted in ascending order).

quantecon.markov.estimate.fit_discrete_mc(X, grids, order='C')[source]

Function that takes an arbitrary time series :math: (X_t)_{t=0}^{T-1} in :math: mathbb R^n plus a set of grid points in each dimension and converts it to a MarkovChain by first applying discretization onto the grid and then estimation of the Markov chain.

Parameters:
X: array_like(ndim=2)

Time-series such that the t-th row is $$x_t$$. It should be of the shape T x n, where n is the number of dimensions.

grids: array_like(array_like(ndim=1))

Array of n sorted arrays. Set of grid points in each dimension

Returns:
mc: MarkovChain

An instance of the MarkovChain class constructed after discretization onto the grid.

Examples

>>> grids = (np.arange(3), np.arange(2))
>>> X = [(-0.1, 1.2), (2, 0), (0.6, 0.4), (1.0, 0.1)]
>>> mc = fit_discrete_mc(X, grids)
>>> mc.state_values
array([[0, 1],
[1, 0],
[2, 0]])
>>> mc.P
array([[0., 0., 1.],
[0., 1., 0.],
[0., 1., 0.]])