rfmc: Simulate a finite state space Markov chain

View source: R/rfmc.R

rfmcR Documentation

Simulate a finite state space Markov chain

Description

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

Usage

rfmc(n,P,pi0)

Arguments

n

The number of states to be sampled from the Markov chain, including the initial state, which will be sampled using pi0.

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 r, then the transition matrix P is assumed to be r x r. The elements of this vector are assumed to be non-negative and sum to one, though in fact, they will be normalised by the sampling procedure.

Value

An R ts object containing the sampled values from the Markov chain.

See Also

rcfmc, ts

Examples

# 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)

smfsb documentation built on Jan. 13, 2024, 3:02 a.m.