MODEL:
! Markov chain model;
SETS:
! There are four states in our model and over time
the model will arrive at a steady state
equilibrium.
SPROB( J) = steady state probability;
STATE/ A B C D/: SPROB;
! For each state, there's a probability of moving
to each other state. TPROB( I, J) = transition
probability;
SXS( STATE, STATE): TPROB;
ENDSETS
DATA:
! The transition probabilities. These are proba-
bilities of moving from one state to the next in
each time period. Our model has four states, for
each time period there's a probability of moving
to each of the four states. The sum of proba-
bilities across each of the rows is 1, since the
system either moves to a new state or remains in
the current one.;
TPROB = .75 .1 .05 .1
.4 .2 .1 .3
.1 .2 .4 .3
.2 .2 .3 .3;
ENDDATA
! The model;
! Steady state equations;
! Only need N equations, so drop last;
@FOR( STATE( J)| J #LT# @SIZE( STATE):
SPROB( J) = @SUM( SXS( I, J): SPROB( I) *
TPROB( I, J))
);
! The steady state probabilities must sum to 1;
@SUM( STATE: SPROB) = 1;
! Check the input data, warn the user if the sum of
probabilities in a row does not equal 1.;
@FOR( STATE( I):
@WARN( 'Probabilities in a row must sum to 1.',
@ABS( 1 - @SUM( SXS( I, K): TPROB( I, K)))
#GT# .000001);
);
END
|