Introdução
Durante o torneio de basquete masculino da NCAA de 2015, ganhei nosso pool de escritório (1) escolhendo o então invicto Kentucky perderá – embora antes da derrota real na Final Four para Wisconsin – e (2) escolher Duke para vencer o jogo do campeonato. Foi uma vitória inesperada para a minha chave, passando do 14º lugar para o 7º para o primeiro … nos últimos três jogos do torneio de 63 jogos.
Mas eu deveria ter vencido? Nosso pool usava o sistema de pontuação de chave comum de atribuição:
- 1 ponto para cada escolha correta na primeira rodada de 64 equipes,
- 2 pontos para cada escolha correta no segunda rodada de 32 equipes,
- 4 pontos para cada escolha correta na terceira rodada de 16 equipes,
- 8 pontos para cada escolha correta na quarta rodada de 8 equipes,
- 16 pontos para cada escolha correta nos dois jogos da Final Four,
- 32 pontos para escolher corretamente o campeão.
Este sistema de “duplicação” tem várias motivações matemáticas razoáveis. Por exemplo, cada rodada de jogos vale potencialmente o mesmo número de pontos (32). Além disso, supondo que todas as equipes sejam equiparadas – ou de forma equivalente, supondo que você faça todas as suas escolhas lançando uma justa moeda– então o número esperado de pontos marcados diminui exatamente pela metade a cada rodada.
Mas os times não estão equilibrados e você não escolhe jogando moedas. Intuitivamente, então, parece assim faça O sistema de ubling pode estar sobrecarregando a importância das rodadas posteriores, e talvez um sistema melhor envolva aumentos menos extremos em pontos por jogo de uma rodada para a próxima. Uma das sugestões comuns mais divertidas é uma progressão baseada na sequência de Fibonacci, com jogos em cada rodada valendo 2, 3, 5, 8, 13 e 21 pontos, respectivamente. Meu objetivo neste post é descrever um meio de avaliar e comparar com mais precisão esses e outros sistemas de pontuação de chave.
Modelo de probabilidade para jogos de torneio
Primeiro, precisamos de uma maneira de modelar a probabilidade de escolher corretamente qualquer jogo específico. Um ponto de partida razoavelmente simples é assumir que todos os jogos são independentes, com a probabilidade de cada resultado dependendo apenas das sementes das equipes. Mais precisamente, seja P uma matriz 16 × 16 com entradas
indicando a probabilidade de que a semente i supere a semente j, onde é alguma medida da “força” da semente i (diminuindo em i), e k é um fator de escala que determina efetivamente o intervalo de probabilidades resultantes. Por exemplo, se, então, todo jogo é um cara ou coroa; no outro extremo, se, então, uma 16ª semente tem probabilidade zero de uma derrota na primeira rodada contra uma primeira semente. Para esta discussão, k será escolhido de forma que
com base na observação de que, em 124 match-ups nos últimos 31 anos do formato de torneio atual, um primeiro seed nunca perdeu para um 16º semente. Esta probabilidade é o valor esperado da distribuição beta correspondente.
Usei uma versão simples deste modelo há um ano para estimar a probabilidade de escolher um “parêntese perfeito”, isto é, escolher todos os 63 jogos corretamente, usando uma função de força linear:
de modo que depende apenas da diferença entre as sementes. Mesmo este modelo muito simples não é tão ruim, como mostrado na seguinte figura atualizada, com o modelo de predição linear em vermelho e os últimos 31 anos de dados históricos mostrados em azul, com intervalos de confiança de 95% correspondentes em preto. Como sugerem os intervalos de confiança frequentemente muito amplos, 31 anos ainda não são muitos dados; por exemplo, houve apenas 7 match-ups entre as sementes com diferenças de 10: 1º vs. 11º são divididos em 3-3, e uma única segunda semente venceu sobre um 12º.
Probabilidade de vitória em função da diferença de sementes: estimativa pontual (azul), intervalo de confiança de 95% (preto) e modelo de previsão linear (vermelho).
Como de costume, verifica-se que não uma nova ideia; Schwertman et. al. (veja as referências no final deste post) considerou este mesmo modelo em 1991, bem como outra função de força não linear que acaba sendo um melhor ajuste histórico:
onde está a função de quantil de a distribuição normal, e é o número total de equipes de basquete masculino da Divisão I. A ideia é que as “forças” de todas as equipes sejam distribuídas normalmente, com as 64 equipes do torneio compreendendo as equipes “mais fortes” na cauda superior dessa distribuição. Usarei esta função de força no restante desta discussão.
Calculando probabilidades de escolhas corretas
Dada qualquer matriz P de probabilidades que escolhermos, podemos usá-la para calcular a distribuição resultante da semente ganhando qualquer jogo particular no torneio. Se e forem vetores de coluna de 16 elementos com () indicando a probabilidade de que o time da casa (visitante) em um determinado jogo seja propagado i, então a distribuição do seed ganhando aquele jogo é dada por
onde é o produto Hadamard element-wise.Na primeira rodada, cada e é um vetor base. Observe que incluir os dois termos na soma é realmente apenas uma conveniência computacional, pelo menos dentro de uma região, uma vez que para uma dada semente, apenas um dos componentes correspondentes dos dois termos será diferente de zero.
Por aplicando esta fórmula iterativamente para cada jogo em cada rodada sucessiva, podemos eventualmente calcular a probabilidade de cada seed ganhar cada jogo no torneio. Por exemplo, o seguinte código Python calcula a distribuição do vencedor de qualquer um dos quatro campeonatos regionais (entre 16 equipes cada):
As probabilidades previstas resultantes são mostradas na figura a seguir em vermelho – usando o função de força de quantil normal acima – comparada com as frequências reais em azul.
Vencedor do campeonato regional: frequência real (azul) e probabilidade prevista (vermelho).
Sistemas de pontuação de colchetes
Agora que temos um meio de calcular a probabilidade de qualquer equipe em particular ganhar um jogo específico, podemos avaliar um colchete completo calculando o número esperado de escolhas corretas em cada rodada. Por exemplo, suponha que nossa chave simplesmente escolha o favorito (ou seja, a semente mais alta) para ganhar todos os jogos. Então, o número esperado de escolhas corretas será:
- 23,156 de 32 jogos na primeira rodada,
- 9,847 de 16 jogos na segunda rodada,
- 4,292 de 8 jogos na terceira rodada,
- 1,792 de 4 jogos na quarta rodada dos campeonatos regionais,
- 0,540 de 2 jogos na Final Four,
- 0,156 do jogo final do campeonato.
Neste ponto, podemos comparar vários sistemas de pontuação de chave, comparando o número esperado de pontos marcados em cada rodada usando esses sistemas. Por exemplo, a tabela a seguir mostra os pontos esperados por rodada para os dois sistemas mencionados até agora: o sistema de duplicação (1, 2, 4, 8, 16, 32) e o sistema de Fibonacci (2, 3, 5, 8, 13 , 21), normalizado para 1 ponto por jogo da primeira rodada.
Qual desses ou de qualquer outro sistema é o “melhor” depende do tipo de pool que você deseja. Com o sistema de duplicação (ou progressões ainda maiores ), você pode ter um “empolgante” pool de corrida de cavalos, com mudanças de vantagem e várias entradas com chance de ganhar em todas as seis rodadas. Com o sistema Fibonacci (ou até progressões mais graduais), você pode ter um pool que recompensa a pesquisa e a previsão precisa de reviravoltas iniciais … mas esse pool pode ter acabado efetivamente bem antes das quartas finais.
Apêndice: Dados históricos
As seguintes matrizes contêm o registro de todas as vitórias e derrotas, por rodada e partida inicial, para os 31 torneios no formato atual de 1985 a 2015. Primeiro, os seguintes 16 × A matriz 16 indica o número de jogos regionais – ou seja, da primeira à quarta rodadas – em que o seed i vence o seed j. Observe que a rodada em que cada jogo foi jogado também é implicitamente determinada pela partida inicial (por exemplo, 1 contra 16 está na primeira rodada, etc.).
0 21 13 32 30 6 4 51 56 4 3 19 4 0 0 124 21 0 23 2 0 23 53 2 0 26 12 1 0 0 117 0 8 14 0 2 2 38 7 1 1 9 25 0 0 104 1 0 15 4 3 0 36 2 2 3 2 2 0 21 99 0 0 0 7 3 1 30 0 1 0 0 1 1 0 80 11 0 0 0 2 6 28 1 0 0 3 0 0 4 81 0 0 13 0 0 0 20 5 2 0 3 0 0 0 76 0 0 0 1 2 0 12 3 0 5 2 1 1 0 63 0 0 0 1 0 0 0 5 1 0 0 1 0 0 61 0 0 0 0 1 0 0 0 0 18 4 0 0 2 48 0 0 0 0 0 0 1 4 0 3 1 13 0 0 43 3 0 0 2 0 0 0 5 0 0 0 0 0 12 44 0 0 1 0 0 0 0 8 0 0 0 0 0 0 25 3 0 0 0 0 0 0 3 0 0 0 0 0 0 20 0 0 2 0 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A matriz a seguir, no mesmo formato, é para jogos das Quatro Finais (quinta rodada):
12 6 2 5 1 0 1 1 1 0 0 0 0 0 0 0 4 2 3 1 0 1 0 0 0 0 1 0 0 0 0 0 4 2 0 2 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
E, finalmente, para jogos do campeonato: