Main Content

redistribute

Compute Markov chain redistributions

Description

example

X= redistribute(mc,numSteps)returns dataXon the evolution of a uniform distribution of states in the discrete-time Markov chainmcafter it advancesnumStepstime steps.

example

X= redistribute(mc,numSteps,'X0',x0)optionally specifies the initial state distributionx0.

Examples

collapse all

Create a four-state Markov chain from a randomly generated transition matrix containing eight infeasible transitions.

rng('default');% For reproducibilitymc = mcmix(4,'Zeros',8);

mcis adtmcobject.

Plot a digraph of the Markov chain.

figure; graphplot(mc);

Figure contains an axes object. The axes object contains an object of type graphplot.

State4is an absorbing state.

Compute the state redistributions at each step for 10 discrete time steps. Assume an initial uniform distribution over the states.

X = redistribute(mc,10)
X =11×40.2500 0.2500 0.2500 0.2500 0.0869 0.2577 0.3088 0.3467 0.1073 0.2990 0.1536 0.4402 0.0533 0.2133 0.1844 0.5489 0.0641 0.2010 0.1092 0.6257 0.0379 0.1473 0.1162 0.6985 0.0404 0.1316 0.0765 0.7515 0.0266 0.0997 0.0746 0.7991 0.0259 0.0864 0.0526 0.8351 0.0183 0.0670 0.0484 0.8663 ⋮

Xis an 11-by-4 matrix. Rows correspond to time steps, and columns correspond to states.

Visualize the state redistribution.

figure; distplot(mc,X)

Figure contains an axes object. The axes object with title Distribution of States contains an object of type image.

After 10 transitions, the distribution appears to settle with a majority of the probability mass in state4.

Consider this theoretical, right-stochastic transition matrix of a stochastic process.

P = [ 0 0 1 / 2 1 / 4 1 / 4 0 0 0 0 1 / 3 0 2 / 3 0 0 0 0 0 0 0 1 / 3 2 / 3 0 0 0 0 0 1 / 2 1 / 2 0 0 0 0 0 3 / 4 1 / 4 1 / 2 1 / 2 0 0 0 0 0 1 / 4 3 / 4 0 0 0 0 0 ] .

Create the Markov chain that is characterized by the transition matrixP.

P = [ 0 0 1/2 1/4 1/4 0 0 ; 0 0 1/3 0 2/3 0 0 ; 0 0 0 0 0 1/3 2/3; 0 0 0 0 0 1/2 1/2; 0 0 0 0 0 3/4 1/4; 1/2 1/2 0 0 0 0 0 ; 1/4 3/4 0 0 0 0 0 ]; mc = dtmc(P);

一个有向图的马尔可夫链的阴谋。表明e the probability of transition by using edge colors.

figure; graphplot(mc,'ColorEdges',true);

Figure contains an axes object. The axes object contains an object of type graphplot.

Compute a 20-step redistribution of the Markov chain using random initial values.

rng(1);% For reproducibilityx0 = rand(mc.NumStates,1); rd = redistribute(mc,20,'X0',x0);

Plot the redistribution.

figure; distplot(mc,rd);

Figure contains an axes object. The axes object with title Distribution of States contains an object of type image.

The redistribution suggests that the chain is periodic with a period of three.

Remove periodicity by creating a lazy version of the Markov chain.

lc = lazy(mc);

Compute a 20-step redistribution of the lazy chain using random initial values. Plot the redistribution.

x0 = rand(mc.NumStates,1); lrd1 = redistribute(lc,20,'X0',x0); figure; distplot(lc,lrd1);

Figure contains an axes object. The axes object with title Distribution of States contains an object of type image.

The redistribution appears to settle after several steps.

Input Arguments

collapse all

Discrete-time Markov chain withNumStatesstates and transition matrixP, specified as adtmcobject.Pmust be fully specified (noNaNentries).

Number of discrete time steps to compute, specified as a positive integer.

Data Types:double

Name-Value Arguments

Specify optional pairs of arguments asName1=Value1,...,NameN=ValueN, whereNameis the argument name andValueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Before R2021a, use commas to separate each name and value, and encloseNamein quotes.

Example:'X0',[0.5 0.25 0.25]specifies an initial state distribution of[0.5 0.25 0.25].

Initial distribution, specified as the comma-separated pair consisting of'X0'and a nonnegative numeric vector ofNumStateslength.redistributenormalizesX0so that it sums to1.

The default is a uniform distribution of states.

Example:'X0',[0.5 0.25 0.25]

Data Types:double

Output Arguments

collapse all

Evolution of state probabilities, returned as a(1 + numSteps)-by-NumStatesnonnegative numeric matrix. The first row isX0. Subsequent rows are the redistributions at each step, whichredistributedetermines by the transition matrixP.

Note

Ifmcis ergodic, andnumStepsis sufficiently large,X(end,:)approximatesx = asymptotics(mc). Seeasymptotics.

Tips

To visualize the data created byredistribute, usedistplot.

他的版本tory

Introduced in R2017b