R: Function to generate a sequence of states from homogeneous or...

rmarkovchain {markovchain} | R Documentation

## Function to generate a sequence of states from homogeneous or non-homogeneous Markov chains.

### Description

Provided any `markovchain` or `markovchainList` objects, it returns a sequence of states coming from the underlying stationary distribution.

### Usage

    rmarkovchain(
      n,
      object,
      what = "data.frame",
      useRCpp = TRUE,
      parallel = FALSE,
      num.cores = NULL,
      ...
    )

### Arguments

`n` | Sample size
`object` | Either a `markovchain` or a `markovchainList` object
`what` | It specifies whether either a `data.frame` or a `matrix` (each rows represent a simulation) or a `list` is returned.
`useRCpp` | Boolean. Should RCpp fast implementation being used? Default is yes.
`parallel` | Boolean. Should parallel implementation being used? Default is yes.
`num.cores` | Number of Cores to be used
`...` | additional parameters passed to the internal sampler

### Details

When a homogeneous process is assumed (`markovchain` object) a sequence is sampled of size n. When a non - homogeneous process is assumed, n samples are taken but the process is assumed to last from the begin to the end of the non-homogeneous markov process.

### Value

Character Vector, data.frame, list or matrix

### Note

Check the type of input

### Author(s)

Giorgio Spedicato

### References

A First Course in Probability (8th Edition), Sheldon Ross, Prentice Hall 2010

### See Also

`markovchainFit`, `markovchainSequence`

### Examples

    # define the markovchain object
    statesNames <- c("a", "b", "c")
    mcB <- new("markovchain", states = statesNames,
       transitionMatrix = matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1),
       nrow = 3, byrow = TRUE, dimnames = list(statesNames, statesNames)))

    # show the sequence
    outs <- rmarkovchain(n = 100, object = mcB, what = "list")

    #define markovchainList object
    statesNames <- c("a", "b", "c")
    mcA <- new("markovchain", states = statesNames, transitionMatrix =
       matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1), nrow = 3,
       byrow = TRUE, dimnames = list(statesNames, statesNames)))
    mcB <- new("markovchain", states = statesNames, transitionMatrix =
       matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1), nrow = 3,
       byrow = TRUE, dimnames = list(statesNames, statesNames)))
    mcC <- new("markovchain", states = statesNames, transitionMatrix =
       matrix(c(0.2, 0.5, 0.3, 0, 0.2, 0.8, 0.1, 0.8, 0.1), nrow = 3,
       byrow = TRUE, dimnames = list(statesNames, statesNames)))
    mclist <- new("markovchainList", markovchains = list(mcA, mcB, mcC))

    # show the list of sequence
    rmarkovchain(100, mclist, "list")

[Package markovchain version 0.8.6 Index]