state_names = c("vowel", "consonant")
P = rbind(
c(0.1, 0.9),
c(0.7, 0.3)
)Introduction to Markov Chains
Markov’s letters
Transition matrix
plot_transition_matrix(P, state_names)
Transition spinners
plot_transition_spinners(P)
State diagram
plot_state_diagram(P, state_names)Joining with `by = join_by(prob)`

Ping pong
state_names = c("AB", "AC", "BC")
P = rbind(c(0, .7, .3),
c(.8, 0, .2),
c(.6, .4, 0)
)Transition matrix
plot_transition_matrix(P, state_names)
Transition spinners
plot_transition_spinners(P)
State diagram
plot_state_diagram(P, state_names)Joining with `by = join_by(prob)`

Weather chain
state_names = c("RR", "NR", "RN", "NN")
P = rbind(c(.7, 0, .3, 0),
c(.5, 0, .5, 0),
c(0, .4, 0, .6),
c(0, .2, 0, .8)
)Transition matrix
plot_transition_matrix(P, state_names)
Transition spinners
plot_transition_spinners(P)
State diagram
plot_state_diagram(P, state_names)Joining with `by = join_by(prob)`

Collector problem
C = 6
state_names = 0:C
P = matrix(rep(0, (C + 1) ^ 2), nrow = (C + 1))
P[C + 1, C + 1] = 1
for (s in 0:(C - 1)) {
P[s + 1, (s + 1):(s + 2)] = c(s / C, 1 - s / C)
}Transition matrix
plot_transition_matrix(P, state_names)
Transition spinners
plot_transition_spinners(P)Warning in `[[<-.factor`(`*tmp*`, n, value = "2/2"): invalid factor level, NA
generated
Warning in `[[<-.factor`(`*tmp*`, n, value = "2/2"): invalid factor level, NA
generated

State diagram
plot_state_diagram(P, state_names)Joining with `by = join_by(prob)`

Ehrenfest urn chain
M = 3
state_names = 0:M
P= rbind(c(0, 1, 0, 0),
c(1/3, 0, 2/3, 0),
c(0, 2/3, 0, 1/3),
c(0, 0, 1, 0)
)Transition matrix
plot_transition_matrix(P, state_names)
Transition spinners
plot_transition_spinners(P)Warning in `[[<-.factor`(`*tmp*`, n, value = "2/2"): invalid factor level, NA
generated
Warning in `[[<-.factor`(`*tmp*`, n, value = "2/2"): invalid factor level, NA
generated

State diagram
plot_state_diagram(P, state_names)Joining with `by = join_by(prob)`
