This function simulates a single realisation from a discrete time Markov chain having a finite state space based on a given transition matrix.

1 | ```
rfmc(n,P,pi0)
``` |

`n` |
The number of states to be sampled from the Markov chain, including the initial state, which will be sampled using |

`P` |
The transition matrix of the Markov chain. This is assumed to be a stochastic matrix, having non-negative elements and rows summing to one, though in fact, the rows will in any case be normalised by the sampling procedure. |

`pi0` |
A vector representing the probability distribution of the initial state of the Markov chain. If this vector is of length |

An R `ts`

object containing the sampled values from the Markov chain.

1 2 3 4 5 6 7 8 9 10 11 | ```
# example for sampling a finite Markov chain
P = matrix(c(0.9,0.1,0.2,0.8),ncol=2,byrow=TRUE)
pi0 = c(0.5,0.5)
samplepath = rfmc(200,P,pi0)
plot(samplepath)
summary(samplepath)
table(samplepath)
table(samplepath)/length(samplepath) # empirical distribution
# now compute the exact stationary distribution...
e = eigen(t(P))$vectors[,1]
e/sum(e)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.