markovChain(states, transitionProbs, startState, length, returnFullSequence)

Overview

Generates a sequence of states based on a Markov Chain model.

Parameters

Parameter Type Description
states Table List of possible states in the Markov Chain.
transitionProbs Table Transition probability matrix between states.
startState Any The state to start the sequence from.
length Number The length of the sequence to be generated.
returnFullSequence Boolean Whether to return the full sequence or just the final state. Default is false.

Returns

Return Type Description
sequence or sequence[length] Table or Any Returns the entire sequence if returnFullSequence is true; otherwise, returns the last state.

Example

local states = {"Sunny", "Cloudy", "Rainy"}
local transitionProbs = {
    Sunny = {Sunny = 0.8, Cloudy = 0.15, Rainy = 0.05},
    Cloudy = {Sunny = 0.2, Cloudy = 0.6, Rainy = 0.2},
    Rainy = {Sunny = 0.1, Cloudy = 0.3, Rainy = 0.6}
}
local startState = "Sunny"
local length = 10
local sequence = StatBook.markovChain(states, transitionProbs, startState, length, true)
print(sequence)  -- Output will be a table representing the sequence

Mathematical Background

The function generates a sequence based on a Markov Chain, which models the transitions between various states with certain probabilities. A Markov Chain is defined by its states and the transition probabilities between these states. The function takes a startState and moves to the next state based on the given transitionProbs, repeating this process for length times. The chooseNextState function is used internally to select the next state based on the current state and the transition probabilities.