9.2 Transition Matrices
9.2.1 Transition states
- 24
state
labels - 25
new_state
labels
Play State Transition Matrix | |||||||||||||||||||||||||
2016 Season | |||||||||||||||||||||||||
state | 000 0 | 000 1 | 000 2 | 001 0 | 001 1 | 001 2 | 010 0 | 010 1 | 010 2 | 011 0 | 011 1 | 011 2 | 100 0 | 100 1 | 100 2 | 101 0 | 101 1 | 101 2 | 110 0 | 110 1 | 110 2 | 111 0 | 111 1 | 111 2 | 3 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
000 0 | 1512 | 30632 | 0 | 255 | 0 | 0 | 2278 | 0 | 0 | 0 | 0 | 0 | 10641 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
000 1 | 0 | 950 | 22530 | 0 | 169 | 0 | 0 | 1520 | 0 | 0 | 0 | 0 | 0 | 7675 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
000 2 | 0 | 0 | 831 | 0 | 0 | 122 | 0 | 0 | 1193 | 0 | 0 | 0 | 0 | 0 | 6213 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 18042 |
001 0 | 12 | 109 | 3 | 5 | 224 | 0 | 25 | 1 | 0 | 0 | 0 | 0 | 72 | 4 | 0 | 54 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
001 1 | 0 | 39 | 372 | 0 | 10 | 644 | 0 | 85 | 10 | 0 | 0 | 0 | 0 | 331 | 35 | 0 | 270 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 14 |
001 2 | 0 | 0 | 61 | 0 | 0 | 17 | 0 | 0 | 115 | 0 | 0 | 0 | 0 | 0 | 358 | 0 | 0 | 446 | 0 | 0 | 0 | 0 | 0 | 0 | 1776 |
010 0 | 99 | 13 | 19 | 17 | 806 | 0 | 174 | 1270 | 0 | 15 | 0 | 0 | 171 | 52 | 0 | 303 | 0 | 0 | 326 | 0 | 0 | 0 | 0 | 0 | 0 |
010 1 | 0 | 151 | 22 | 0 | 28 | 958 | 0 | 240 | 2269 | 0 | 15 | 0 | 0 | 311 | 55 | 0 | 336 | 0 | 0 | 681 | 0 | 0 | 0 | 0 | 32 |
010 2 | 0 | 0 | 155 | 0 | 0 | 39 | 0 | 0 | 383 | 0 | 0 | 3 | 0 | 0 | 495 | 0 | 0 | 216 | 0 | 0 | 1035 | 0 | 0 | 0 | 4321 |
011 0 | 24 | 1 | 1 | 5 | 99 | 2 | 20 | 50 | 1 | 1 | 242 | 0 | 30 | 3 | 0 | 52 | 6 | 0 | 6 | 6 | 0 | 95 | 0 | 0 | 0 |
011 1 | 0 | 36 | 6 | 0 | 13 | 190 | 0 | 60 | 141 | 0 | 9 | 480 | 0 | 87 | 6 | 0 | 131 | 23 | 0 | 9 | 16 | 0 | 306 | 0 | 23 |
011 2 | 0 | 0 | 38 | 0 | 0 | 12 | 0 | 0 | 87 | 0 | 0 | 1 | 0 | 0 | 125 | 0 | 0 | 53 | 0 | 0 | 1 | 0 | 0 | 328 | 1237 |
100 0 | 314 | 4 | 1223 | 46 | 22 | 0 | 157 | 943 | 0 | 372 | 0 | 0 | 0 | 4479 | 0 | 421 | 0 | 0 | 1966 | 0 | 0 | 0 | 0 | 0 | 0 |
100 1 | 0 | 353 | 13 | 0 | 80 | 47 | 0 | 178 | 825 | 0 | 382 | 0 | 0 | 2 | 5543 | 0 | 497 | 0 | 0 | 2414 | 0 | 0 | 0 | 0 | 1564 |
100 2 | 0 | 0 | 338 | 0 | 0 | 67 | 0 | 0 | 255 | 0 | 0 | 255 | 0 | 0 | 9 | 0 | 0 | 505 | 0 | 0 | 2261 | 0 | 0 | 0 | 7926 |
101 0 | 28 | 1 | 89 | 11 | 3 | 10 | 8 | 41 | 2 | 30 | 37 | 0 | 0 | 138 | 3 | 31 | 232 | 0 | 132 | 22 | 0 | 63 | 0 | 0 | 0 |
101 1 | 0 | 72 | 2 | 0 | 14 | 7 | 0 | 20 | 127 | 0 | 69 | 46 | 0 | 0 | 324 | 0 | 75 | 456 | 0 | 260 | 26 | 0 | 148 | 0 | 253 |
101 2 | 0 | 0 | 63 | 0 | 0 | 16 | 0 | 0 | 53 | 0 | 0 | 46 | 0 | 0 | 1 | 0 | 0 | 129 | 0 | 0 | 230 | 0 | 0 | 235 | 1689 |
110 0 | 81 | 1 | 0 | 8 | 5 | 219 | 27 | 6 | 28 | 88 | 281 | 0 | 0 | 7 | 22 | 55 | 266 | 0 | 82 | 830 | 0 | 417 | 0 | 0 | 5 |
110 1 | 0 | 127 | 3 | 0 | 32 | 7 | 0 | 63 | 11 | 0 | 146 | 313 | 0 | 1 | 10 | 0 | 129 | 421 | 0 | 214 | 1598 | 0 | 716 | 0 | 544 |
110 2 | 0 | 0 | 156 | 0 | 0 | 28 | 0 | 0 | 125 | 0 | 0 | 146 | 0 | 0 | 2 | 0 | 0 | 242 | 0 | 0 | 249 | 0 | 0 | 648 | 3794 |
111 0 | 18 | 0 | 0 | 2 | 0 | 46 | 9 | 1 | 3 | 20 | 27 | 18 | 0 | 7 | 0 | 24 | 64 | 2 | 27 | 49 | 4 | 113 | 242 | 0 | 2 |
111 1 | 0 | 44 | 3 | 0 | 13 | 1 | 0 | 18 | 2 | 0 | 57 | 84 | 0 | 0 | 5 | 0 | 41 | 169 | 0 | 86 | 123 | 0 | 254 | 531 | 211 |
111 2 | 0 | 0 | 46 | 0 | 0 | 15 | 0 | 0 | 31 | 0 | 0 | 61 | 0 | 0 | 0 | 0 | 0 | 87 | 0 | 0 | 100 | 0 | 0 | 204 | 1370 |
9.2.2 Absorbing states
When the inning reaches 3 outs, then it stays at 3 outs, so the probability of staying in this state is 1
# probability matrix
P_matrix <- prop.table(T_matrix, 1)
P_matrix <- P_matrix |> rbind("3" = c(rep(0, 24), 1))
Play State Transition Probability Matrix | |||||||||||||||||||||||||
2016 Season | |||||||||||||||||||||||||
state | 000 0 | 000 1 | 000 2 | 001 0 | 001 1 | 001 2 | 010 0 | 010 1 | 010 2 | 011 0 | 011 1 | 011 2 | 100 0 | 100 1 | 100 2 | 101 0 | 101 1 | 101 2 | 110 0 | 110 1 | 110 2 | 111 0 | 111 1 | 111 2 | 3 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
000 0 | 0.033 | 0.676 | 0.000 | 0.006 | 0.000 | 0.000 | 0.050 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.235 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
000 1 | 0.000 | 0.029 | 0.686 | 0.000 | 0.005 | 0.000 | 0.000 | 0.046 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.234 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
000 2 | 0.000 | 0.000 | 0.031 | 0.000 | 0.000 | 0.005 | 0.000 | 0.000 | 0.045 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.235 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.683 |
001 0 | 0.024 | 0.214 | 0.006 | 0.010 | 0.440 | 0.000 | 0.049 | 0.002 | 0.000 | 0.000 | 0.000 | 0.000 | 0.141 | 0.008 | 0.000 | 0.106 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
001 1 | 0.000 | 0.022 | 0.206 | 0.000 | 0.006 | 0.356 | 0.000 | 0.047 | 0.006 | 0.000 | 0.000 | 0.000 | 0.000 | 0.183 | 0.019 | 0.000 | 0.149 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.008 |
001 2 | 0.000 | 0.000 | 0.022 | 0.000 | 0.000 | 0.006 | 0.000 | 0.000 | 0.041 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.129 | 0.000 | 0.000 | 0.161 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.640 |
010 0 | 0.030 | 0.004 | 0.006 | 0.005 | 0.247 | 0.000 | 0.053 | 0.389 | 0.000 | 0.005 | 0.000 | 0.000 | 0.052 | 0.016 | 0.000 | 0.093 | 0.000 | 0.000 | 0.100 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
010 1 | 0.000 | 0.030 | 0.004 | 0.000 | 0.005 | 0.188 | 0.000 | 0.047 | 0.445 | 0.000 | 0.003 | 0.000 | 0.000 | 0.061 | 0.011 | 0.000 | 0.066 | 0.000 | 0.000 | 0.134 | 0.000 | 0.000 | 0.000 | 0.000 | 0.006 |
010 2 | 0.000 | 0.000 | 0.023 | 0.000 | 0.000 | 0.006 | 0.000 | 0.000 | 0.058 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.074 | 0.000 | 0.000 | 0.032 | 0.000 | 0.000 | 0.156 | 0.000 | 0.000 | 0.000 | 0.650 |
011 0 | 0.037 | 0.002 | 0.002 | 0.008 | 0.154 | 0.003 | 0.031 | 0.078 | 0.002 | 0.002 | 0.376 | 0.000 | 0.047 | 0.005 | 0.000 | 0.081 | 0.009 | 0.000 | 0.009 | 0.009 | 0.000 | 0.148 | 0.000 | 0.000 | 0.000 |
011 1 | 0.000 | 0.023 | 0.004 | 0.000 | 0.008 | 0.124 | 0.000 | 0.039 | 0.092 | 0.000 | 0.006 | 0.312 | 0.000 | 0.057 | 0.004 | 0.000 | 0.085 | 0.015 | 0.000 | 0.006 | 0.010 | 0.000 | 0.199 | 0.000 | 0.015 |
011 2 | 0.000 | 0.000 | 0.020 | 0.000 | 0.000 | 0.006 | 0.000 | 0.000 | 0.046 | 0.000 | 0.000 | 0.001 | 0.000 | 0.000 | 0.066 | 0.000 | 0.000 | 0.028 | 0.000 | 0.000 | 0.001 | 0.000 | 0.000 | 0.174 | 0.657 |
100 0 | 0.032 | 0.000 | 0.123 | 0.005 | 0.002 | 0.000 | 0.016 | 0.095 | 0.000 | 0.037 | 0.000 | 0.000 | 0.000 | 0.450 | 0.000 | 0.042 | 0.000 | 0.000 | 0.198 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
100 1 | 0.000 | 0.030 | 0.001 | 0.000 | 0.007 | 0.004 | 0.000 | 0.015 | 0.069 | 0.000 | 0.032 | 0.000 | 0.000 | 0.000 | 0.466 | 0.000 | 0.042 | 0.000 | 0.000 | 0.203 | 0.000 | 0.000 | 0.000 | 0.000 | 0.131 |
100 2 | 0.000 | 0.000 | 0.029 | 0.000 | 0.000 | 0.006 | 0.000 | 0.000 | 0.022 | 0.000 | 0.000 | 0.022 | 0.000 | 0.000 | 0.001 | 0.000 | 0.000 | 0.043 | 0.000 | 0.000 | 0.195 | 0.000 | 0.000 | 0.000 | 0.682 |
101 0 | 0.032 | 0.001 | 0.101 | 0.012 | 0.003 | 0.011 | 0.009 | 0.047 | 0.002 | 0.034 | 0.042 | 0.000 | 0.000 | 0.157 | 0.003 | 0.035 | 0.263 | 0.000 | 0.150 | 0.025 | 0.000 | 0.072 | 0.000 | 0.000 | 0.000 |
101 1 | 0.000 | 0.038 | 0.001 | 0.000 | 0.007 | 0.004 | 0.000 | 0.011 | 0.067 | 0.000 | 0.036 | 0.024 | 0.000 | 0.000 | 0.171 | 0.000 | 0.039 | 0.240 | 0.000 | 0.137 | 0.014 | 0.000 | 0.078 | 0.000 | 0.133 |
101 2 | 0.000 | 0.000 | 0.026 | 0.000 | 0.000 | 0.006 | 0.000 | 0.000 | 0.022 | 0.000 | 0.000 | 0.019 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.052 | 0.000 | 0.000 | 0.093 | 0.000 | 0.000 | 0.095 | 0.686 |
110 0 | 0.033 | 0.000 | 0.000 | 0.003 | 0.002 | 0.090 | 0.011 | 0.002 | 0.012 | 0.036 | 0.116 | 0.000 | 0.000 | 0.003 | 0.009 | 0.023 | 0.110 | 0.000 | 0.034 | 0.342 | 0.000 | 0.172 | 0.000 | 0.000 | 0.002 |
110 1 | 0.000 | 0.029 | 0.001 | 0.000 | 0.007 | 0.002 | 0.000 | 0.015 | 0.003 | 0.000 | 0.034 | 0.072 | 0.000 | 0.000 | 0.002 | 0.000 | 0.030 | 0.097 | 0.000 | 0.049 | 0.369 | 0.000 | 0.165 | 0.000 | 0.125 |
110 2 | 0.000 | 0.000 | 0.029 | 0.000 | 0.000 | 0.005 | 0.000 | 0.000 | 0.023 | 0.000 | 0.000 | 0.027 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.045 | 0.000 | 0.000 | 0.046 | 0.000 | 0.000 | 0.120 | 0.704 |
111 0 | 0.027 | 0.000 | 0.000 | 0.003 | 0.000 | 0.068 | 0.013 | 0.001 | 0.004 | 0.029 | 0.040 | 0.027 | 0.000 | 0.010 | 0.000 | 0.035 | 0.094 | 0.003 | 0.040 | 0.072 | 0.006 | 0.167 | 0.357 | 0.000 | 0.003 |
111 1 | 0.000 | 0.027 | 0.002 | 0.000 | 0.008 | 0.001 | 0.000 | 0.011 | 0.001 | 0.000 | 0.035 | 0.051 | 0.000 | 0.000 | 0.003 | 0.000 | 0.025 | 0.103 | 0.000 | 0.052 | 0.075 | 0.000 | 0.155 | 0.323 | 0.129 |
111 2 | 0.000 | 0.000 | 0.024 | 0.000 | 0.000 | 0.008 | 0.000 | 0.000 | 0.016 | 0.000 | 0.000 | 0.032 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.045 | 0.000 | 0.000 | 0.052 | 0.000 | 0.000 | 0.107 | 0.716 |
3 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 1.000 |
table code
P_df <- P_matrix |> as.data.frame()
P_df <- cbind(c(as.character(T_df$state), "3"), P_df)
colnames(P_df)[1] <- "state"
P_df |>
gt() |>
cols_align(align = "center") |>
data_color(columns = -state,
palette = "inferno") |>
fmt_number(columns = -state,
decimals = 3) |>
tab_header(title = "Play State Transition Probability Matrix",
subtitle = "2016 Season")
9.2.3 Examples
we display the transition probabilities starting at the “000 0” state, no runners and no outs below
Play State Transition Probability Matrix | ||
2016 Season | ||
state | new_state | Prob |
---|---|---|
000 0 | 000 1 | 0.676 |
000 0 | 100 0 | 0.235 |
000 0 | 010 0 | 0.050 |
000 0 | 000 0 | 0.033 |
000 0 | 001 0 | 0.006 |
table code
P_matrix |>
as_tibble(rownames = "state") |>
filter(state == "000 0") |>
pivot_longer(
cols = -state,
names_to = "new_state",
values_to = "Prob"
) |>
filter(Prob > 0) |>
arrange(desc(Prob)) |>
gt() |>
cols_align(align = "center") |>
data_color(columns = Prob,
palette = "inferno") |>
fmt_number(columns = Prob,
decimals = 3) |>
tab_header(title = "Play State Transition Probability Matrix",
subtitle = "2016 Season")
starting from the “010 2” state, runner on second with two outs
Play State Transition Probability Matrix | ||
2016 Season | ||
state | new_state | Prob |
---|---|---|
010 2 | 3 | 0.650 |
010 2 | 110 2 | 0.156 |
010 2 | 100 2 | 0.074 |
010 2 | 010 2 | 0.058 |
010 2 | 101 2 | 0.032 |
010 2 | 000 2 | 0.023 |
010 2 | 001 2 | 0.006 |
010 2 | 011 2 | 0.000 |
table code
P_matrix |>
as_tibble(rownames = "state") |>
filter(state == "010 2") |>
pivot_longer(
cols = -state,
names_to = "new_state",
values_to = "Prob"
) |>
filter(Prob > 0) |>
arrange(desc(Prob)) |>
gt() |>
cols_align(align = "center") |>
data_color(columns = Prob,
palette = "inferno") |>
fmt_number(columns = Prob,
decimals = 3) |>
tab_header(title = "Play State Transition Probability Matrix",
subtitle = "2016 Season")