One huge simplification: Zach has us assuming (reasonably!) that each team’s winning percentage is uniformly distributed from 0 to 100%. This is of course not how sports tends to actually work, but it’s good enough for us!
What If There Were Just Two Teams?
The question I quoted above is actually the extra credit. Let’s first solve the first question: what is the probability that a specific division (let’s call it division 1) will be uniformly better than another specific division (let’s call it division 2)?
Equivalently: what is the probability that the worst team in division 1 is better than the best team in division 2? Let be the distribution of the worst team’s winning % in division 1 (or really, any specific division), and the distribution of the best team in division 2. We want to calculate . The good news is all the various densities are well-behaved, and the two divisions are fully independent, so we can integrate as we like. In what follows, we assume all numbers go from 0 to 1 (so e.g. 65% = 0.65):
This says: let’s add up the probabilities of the worst percentage, scaled by how likely the best team of the other division is to be worse.
Let’s work out . The probability of the worst team being greater than is equal to the probability that ALL teams are above , since they’re independent. The probability of any given team being above is , so . We can differentiate for the density, to get .
Similarly, is the probability that all five teams are below , so it’s .
So we get .
Expanding the integrand gives . We know that:
Thus we get 0.003968.
A quick simulation to check:
## Note: this is R code
expected_res <- 1/252
sim_two_specific_teams <- function() {
div_1_teams <- runif(5)
div_2_teams <- runif(5)
return (min(div_1_teams) > max(div_2_teams))
}
N <- 10000000 # or whatever
sim_res <- sapply(1:N, function(i) sim_two_specific_teams())
mean_res <- mean(sim_res)
cat("Simulation result:", mean_res, "\n")
# Can e.g. see how far from expected we are:
# (mean_res - expected_res) / expected_res
I get 0.0039729, pretty close to .
Extra Credit: Any Two Such Teams?
If we can have ANY two such teams, it gets trickier.
We care about the best and the worse team in each division. We want to know if there’s any division where the worst team in it is better than any other division’s best team. In other words: the best of the worst teams vs the worst of the best teams.
We can again work out the densities. Let be the best of the worst teams (“best-worst”), and be the worst of the best (“worst-best”).
Since we want , we could plug these into the same equation we used above, to get:
This gives (Wolfram Alpha to the rescue...), which is about 0.09653.
Is this right? Let’s run a simulation:
## This is also R code
sim_any_two_teams <- function() {
divs <- lapply(1:6, function(i) {
runif(5)
})
div_worsts <- sapply(divs, min)
div_bests <- sapply(divs, max)
return (max(div_worsts) > min(div_bests))
}
N <- 100000000 # or whatever
sim_res_extra_credit <- sapply(1:N, function(i) sim_any_two_teams())
I get 0.08622878. Not quite our answer! What went wrong? In the previous part, we could correctly separate the densities, since they were fully independent. Here, the best-worst team is not independent of the worst-best: if I tell you the best-worst had a 0.5 = 50% winning percentage, we don’t then have the luxury of trying six different divisions to see if their best is under that: one of the divisions certainly isn’t, since its worst is already at exactly this value!
You might be tempted to then try something like:
That is, replace the power of 6 for the worst-best with five, since we’ve ruled a team out (another way to say it: the best-worst division won’t uniformly dominate itself). This gives about 0.083387, less than our simulation.
This is too conservative. What that assumption misses is this: if I told you the best-worst team’s % was e.g. 0.7 and asked you for the probability that some other division’s best team was below this, is too small: you already know this other division doesn’t have all teams above 0.7 (otherwise it would be the best-worst), so we can condition on not being in the “all above 0.7” case: this gives
So in calculating
we know two things: first, for the division with the worst team at , their best team is already over , so that’s one of six already sorted. For any other division, we know at the least they don’t have all teams over , otherwise that would be the best-worst division. So (best team in div over | ) is either 1 (if it’s the best-worst division) or it’s 1 - (all teams in div under | not all teams are over ) = .
We can now multiply these, as they’re now independent given this conditional information: one of them is 1, the rest give:
So the full integral is:
This gives (I also didn’t do this one by hand...) .
And indeed we can confirm this is very close to our simulation result.
If you’d like to work out the probabilities in a more realistic setting, where the teams actually play each other, I’d probably recommend simulation instead of integrals!