Como as probabilidades são calculadas
Nenhum número aqui é um coeficiente escolhido à mão. Tudo sai de distribuições de probabilidade ajustadas a dados reais, e toda previsão é gravada para ser medida depois.
1. Força dos times: Dixon & Coles (1997)
Gols do mandante ~ Poisson(λ), gols do visitante ~ Poisson(μ), com λ = exp(casa + ataque_i − defesa_j) e μ = exp(ataque_j − defesa_i). Uma correção ρ ajusta os placares 0-0, 1-0, 0-1 e 1-1, onde o Poisson independente erra. Os parâmetros são obtidos por máxima verossimilhança com peso decrescente para jogos antigos (meia-vida ≈ 107 dias).
2. Ao vivo: placar atual + gols restantes
O placar já feito é certo. Os gols que faltam seguem Poisson com taxa = taxa pré-jogo × fração do jogo restante, usando um perfil temporal em que o 2º tempo concentra mais gols. O que o jogo mostra (chutes no alvo) atualiza a taxa por inferência bayesiana conjugada Gama-Poisson: o pré-jogo é o prior, os chutes no alvo convertidos pela taxa média de conversão são a evidência. A distribuição do placar final dá 1X2, over/under, ambos marcam, placar exato e próximo gol.
3. Escanteios: Gama-Poisson (binomial negativa)
Escanteios têm variância maior que a média, então a taxa do jogo é tratada como incerta (Gamma). Prior: escanteios esperados pelo modelo da liga (tendência a ganhar e ceder escanteios por time, vantagem de casa). Cada escanteio observado atualiza a taxa de forma exata; o total final segue binomial negativa. Isso produz over/under por linha e a chance de escanteio nos próximos 10 minutos.
3b. Expulsões
Com um jogador a menos, a taxa de gols do time no tempo restante é multiplicada por um fator menor que 1 e a do adversário por um fator maior que 1. Os valores iniciais (0,67 e 1,33) vêm da literatura sobre o efeito do cartão vermelho e estão marcados como provisórios até serem reestimados com os eventos dos jogos coletados.
4. Valor contra o mercado
As odds ao vivo vêm da API-Football. Para cada seleção calculamos EV = probabilidade do modelo × odd − 1 e a probabilidade justa do mercado (margem removida proporcionalmente). EV positivo não é garantia de lucro em uma aposta; é vantagem esperada no longo prazo se, e só se, o modelo estiver calibrado. Por isso a página de calibração existe. Alertas por Telegram disparam quando EV supera o mínimo configurado.
5. Calibração
Toda probabilidade exibida é gravada com o minuto. Quando o jogo termina, calculamos Brier score, log loss e Brier Skill Score contra a frequência base, por faixa de minuto. Se o modelo não superar a frequência base, isso aparece em vermelho na página de calibração, não fica escondido.
Limites conhecidos
- Ligas sem modelo ajustado usam médias globais como prior e ignoram a força dos times (rótulo “prior global”).
- O perfil temporal (γ) e a conversão de chutes no alvo em gols são estimados dos jogos no banco (
npm run estimate): conversão = gols ÷ chutes no alvo; γ vem da fração de gols do 1º tempo. A nota de cada jogo mostra os valores e o tamanho da amostra. - A força do prior ao vivo (90 minutos-equivalentes, ou seja, um jogo inteiro de evidência pesa igual ao pré-jogo) ainda é uma escolha de modelagem, não estimada. Será calibrada quando houver previsões suficientes gravadas.