Image Credit: A flickr photo by K.M. Klemencic

Minnesota State High School Boys Hockey Predictions (Updated Quarterfinals)

In a previous post, I used Monte Carlo simulation to predict the winner of the 2018 Minnesota State High School Boys Hockey tournament. Now that the quarterfinal games have been played, I thought I would update my predictions. The process for this is to:

  • Update the Elo ratings based on the quarterfinal games;
  • Re-simulate the tournament

I simulated the Class A state tournament 10,000 times using the same process as described in my previous post.

Class A Tornament

Table 1: Original (at beginning of tournament) and updated Elo ratings (after the quartefinal games) for the eight Class A teams that qualified for the state tournament.
Team Original Elo Updated Elo
Hermantown 1639.196 1657.756
Orono 1624.538 1624.505
Mahtomedi 1609.513 1619.517
Alexandria 1587.179 1571.723
Monticello 1571.198 1569.096
Thief River Falls 1562.803 1568.797
Mankato East 1551.141 1549.453
Litchfield/Dassel-Cokato 1530.773 1515.494
# Enter teams in rank order
team_1 = "Hermantown"
team_2 = "Mahtomedi"
team_3 = "Orono"
team_4 = "Alexandria"


# Set up empty vector to store winner in
champion = rep(NA, 10000)


for(i in 1:10000){
  
  ### SIMULATE THE SEMIFINALS
  
  # Predict Game 1 winner: team_1 vs. team_4
  p_game_1 = predict(elo_reg_season, data.frame(home = team_1, visitor = team_4))
  w_game_1 = ifelse(runif(1, min = 0, max = 1) <= p_game_1, team_1, team_4)
  
  # Predict Game 2 winner: team_2 vs. team_3
  p_game_2 = predict(elo_reg_season, data.frame(home = team_2, visitor = team_3))
  w_game_2 = ifelse(runif(1, min = 0, max = 1) <= p_game_2, team_2, team_3)
  
  
  ### SIMULATE THE FINALS
  
  # Predict Game 3 winner: winner Game 1 vs. winner Game 2
  p_game_3 = predict(elo_reg_season, data.frame(home = w_game_1, visitor = w_game_2))
  w_game_3 = ifelse(runif(1, min = 0, max = 1) <= p_game_3, w_game_1, w_game_2)
  
  
  champion[i] = w_game_3
  
}
Table 2: Probability that each of the eight Class A teams will win the state tournament.
Team Original Probability Updated Probability
Hermantown 0.1987 0.3214
Mahtomedi 0.1802 0.2671
Orono 0.1127 0.2415
Alexandria 0.1086 0.1700
Monticello 0.1127 0.0000
Thief River Falls 0.0939 0.0000
Mankato East 0.0812 0.0000
Litchfield/Dassel-Cokato 0.0635 0.0000

Based on these simulations, Hermantown is still the favorite, and Mahtomedi and Orono also have a chance of winning the Class A tournament.

Class AA Tournament

Table 3: Elo ratings and rankings for the eight Class AA teams that qualified for the state tournament.
Team Old Elo Updated Elo
Edina 1718.589 1741.221
Minnetonka 1716.570 1711.781
St. Thomas Academy 1691.315 1710.036
Duluth East 1693.757 1692.917
STMA 1655.561 1643.501
Centennial 1625.291 1618.199
Lakeville North 1578.414 1569.408
Hill-Murray 1557.501 1549.936
# Enter teams in rank order
team_1 = "Minnetonka"
team_2 = "Edina"
team_3 = "Duluth East"
team_4 = "Centennial"


# Set up empty vector to store winner in
champion = rep(NA, 10000)


for(i in 1:10000){
  
  ### SIMULATE THE SEMIFINALS
  
  # Predict Game 1 winner: team_1 vs. team_4
  p_game_1 = predict(elo_reg_season, data.frame(home = team_1, visitor = team_4))
  w_game_1 = ifelse(runif(1, min = 0, max = 1) <= p_game_1, team_1, team_4)
  
  # Predict Game 2 winner: team_2 vs. team_3
  p_game_2 = predict(elo_reg_season, data.frame(home = team_2, visitor = team_3))
  w_game_2 = ifelse(runif(1, min = 0, max = 1) <= p_game_2, team_2, team_3)
  
  
  ### SIMULATE THE FINALS
  
  # Predict Game 3 winner: winner Game 1 vs. winner Game 2
  p_game_3 = predict(elo_reg_season, data.frame(home = w_game_1, visitor = w_game_2))
  w_game_3 = ifelse(runif(1, min = 0, max = 1) <= p_game_3, w_game_1, w_game_2)
  
  
  champion[i] = w_game_3
  
}
Table 4: Probability that each of the eight Class AA teams will win the state tournament.
Team Original Probability Updated Probability
Edina 0.2083 0.3113
Minnetonka 0.1852 0.2901
Duluth East 0.1495 0.2487
Centennial 0.0701 0.1499
St. Thomas Academy 0.2098 0.0000
STMA 0.1016 0.0000
Lakeville North 0.0416 0.0000
Hill-Murray 0.0339 0.0000

St. Thomas Aademy’s loss to Centennial really shook things up. Edina and Minnetonka are now the favorites in the Class AA tournament, with Duluth East a not so distant third.

Related