On the possibility of an extra game

At some point with little explanation I added the list of current Pac-12 teams as a pre-canned “virtual” conference defined in mcc_schedule.py. Of course, the Pac-12 is an actual conference (for another year or two) so it’s a misnomer to run it in virtualconf.py but this allows some fun with the Monte Carlo simulators.

Here’s a diff I should find a way to build into the actual codebase:

diff --git a/vconf/virtualconf.py b/vconf/virtualconf.py
index eef863c..50e168b 100644
--- a/vconf/virtualconf.py
+++ b/vconf/virtualconf.py
@@ -437,6 +437,8 @@ def find_possibilities(time_sorted_games):

 def monte_carlo_simulation(time_sorted_games, predictor):
     scoreboard = PossibilityScoreboard("Monte Carlo [" + str(predictor) + "]")
+    second_place_scoreboard = PossibilityScoreboard("Second place MC")
+    usc_ucla = 0
     for run_id in range(0, 10000):
         # make a clean copy of the games
         local_games_copy = []
@@ -455,9 +457,15 @@ def monte_carlo_simulation(time_sorted_games, predictor):
         if (check_minimum_wins(ordered_standings, [])):
             if (break_ties(ordered_standings, local_games_copy, [])):
+                second_place_scoreboard.record_winner(ordered_standings[1].team_name)
+                if (ordered_standings[0].team_name in {'USC', 'UCLA'} and
+                    ordered_standings[1].team_name in {'USC', 'UCLA'}) :
+                    usc_ucla += 1
+    print(str(second_place_scoreboard))
+    print("USC-UCLA matchups " + str(usc_ucla))

 def log_stderr_and_clear(log_q):
     for logline in log_q:
@@ -503,8 +511,8 @@ def find_vconf_games(configuration, teams, year, verbose):

     if (verbose and any_games_in_future):
-        find_possibilities(time_ordered_games)
-        monte_carlo_simulation(time_ordered_games, Sampled_Margin_Predictor())
+        #find_possibilities(time_ordered_games)
+        #monte_carlo_simulation(time_ordered_games, Sampled_Margin_Predictor())
         monte_carlo_simulation(time_ordered_games, Elo_Predictor(configuration))

     standings = build_standings(mcc_games.values())

What this gets us is a simulated run of the rest of the 2022 Pac-12 schedule with an added extra scoreboard to track second place. Since the Pac-12 title is determined by a championship game between 1 and 2 in the standings, it’s helpful to have the second-place simulator too. This list below is the totaled up results by team counting all first and second finishes. This gives us the odds that the team appears in the Pac-12 championship:

USC 67%
UCLA 58%
Utah 42%
Oregon 23%

That doesn’t quite add to 200% but no other team’s chances rise above trivial. Astute readers will note that the really important thing about these results is the possibility of a second USC-UCLA matchup and thus the gods adding an extra Mythical California Cup game to the schedule. If it goes down like that such a game would almost certainly function as the MCC championship as well. Think of the double trophy presentation!

(Just in case there is some weird Bayesian path interaction I also added to the diff an explicit check for the UCLA/USC quinella and, indeed, there is a 34% chance that the first and second standings places are occupied by those teams in some order.)

It would be quite a run for UCLA to go undefeated and beat USC twice in three weeks. Should either team go into the Pac-12 championship undefeated it would likely be a de facto CFP qualifier as well.

Since we actually have an MCC game this weekend let’s take a look at the real (fake) conference because it’s been a while and our sleeper is going to come out to play:

$ python3 ./mcc_schedule.py -v
USC 41 at Stanford 28 on Sep 10, 2022
Fresno State 17 at USC 45 on Sep 17, 2022
San José State at Fresno State on Oct 15, 2022
San Diego State at Fresno State on Oct 28, 2022
Stanford at UCLA on Oct 28, 2022
California at USC on Nov 04, 2022
San José State at San Diego State on Nov 11, 2022
Stanford at California on Nov 18, 2022
USC at UCLA on Nov 18, 2022
UCLA at California on Nov 25, 2022

Full Enumeration Simulation:
USC 112 [43%]
UCLA 36 [14%]
California 36 [14%]
San Diego State 32 [12%]
San José State 32 [12%]
Stanford 8 [3%]

Monte Carlo [Sampled Home Margin Predictor] Simulation:
USC 4504 [45%]
California 1510 [15%]
UCLA 1506 [15%]
San Diego State 1186 [11%]
San José State 1022 [10%]
Stanford 272 [2%]

Monte Carlo [Elo Predictor] Simulation:
USC 4789 [47%]
UCLA 3786 [37%]
San José State 851 [8%]
California 353 [3%]
San Diego State 212 [2%]
Stanford 9 [0%]

USC                     2-0
Stanford                0-1
Fresno State            0-1
2022, 10, ,

San Jose State is now a (distant) third behind the LA teams and their path is very clear: win their two games, take that 2-0 record to the clubhouse and wait for everyone else to take one loss.

SJSU has been a pleasant surprise and Fresno and SDSU have been most unpleasant. Both the latter teams were great last year and have fallen apart. This weekend SJSU is an 8 point favorite on the road in Fresno which would have been hard to believe in week 1. Fresno State is in fact the only team to have been mathematically eliminated so far but they have a chance to play spoiler and put SJSU in the same boat on Saturday.