given the initial starting state and the transition matrix P as data (see Example 11.12). Keep this program for use in later problems.
simulate_markov_chain <- function(initial_state, transition_matrix, n_steps) {
current_state <- initial_state
for (i in 1:n_steps) {
current_state <- sample(1:length(transition_matrix[current_state, ]),
1,
prob = transition_matrix[current_state, ])
}
return(current_state)
}
## testing the code
initial_state <- 1
transition_matrix <- matrix(c(0.7, 0.3, 0.2, 0.8), nrow = 2, byrow = TRUE)
n_steps <- 10
result <- simulate_markov_chain(initial_state, transition_matrix, n_steps)
print(result)
## [1] 2