Learn R Programming

RIPSeeker (version 1.12.0)

randindx: Generates random indexes with a specified probability distribution

Description

Returns an array of T indexes distributed as specified by p (which should be a normalized probability vector).

Usage

randindx(p, Total, NO_CHK)

Arguments

p
A row vector of normalized probabilities that dictate the transition probability from the current state to the next state. For example, $p = [0.2, 0.8]$ indicates that the current state transitoins to state 1 at 0.2 and 2 at 0.8. The current state itself can either be the state 1 or 2.
Total
Total number of states needed to be generated using the input transition vector.
NO_CHK
Check whether the first argument is a valid row vector of normalized probabilities.

Value

  • IIndex/Indices or state(s) sampled following the transition.
  • probability.

Details

The function is used by nbh_gen to generate random data point based on the user-supplied transition probability matrix.

References

Capp'e, O. (2001). H2M : A set of MATLAB/OCTAVE functions for the EM estimation of mixtures and hidden Markov models. (http://perso.telecom-paristech.fr/cappe/h2m/)

See Also

nbh_gen

Examples

Run this code
# Total contains the length of data to simulate
Total <- 100

# number of states
N <- 2

# transition probabilities between states
TRANS <- matrix(c(0.9, 0.1, 0.3, 0.7), nrow=2, byrow=TRUE)

label <- matrix(0, Total, 1)

# Simulate initial state
label[1] <- randindx(matrix(1,ncol=N)/N, 1, 1)

# Use Markov property for the following time index
for(t in 2:Total) {
	
	label[t] <- randindx(TRANS[label[t-1],], 1, 1)
}	

plot(label)

Run the code above in your browser using DataLab