Análise Estatística de Futebol com Python:
Os três modelos estatísticos que casas de apostas usam pra precificar odds de futebol — explicados com código Python funcional e exemplos reais do Brasileirão.
Carregando
Os três modelos estatísticos que casas de apostas usam pra precificar odds de futebol — explicados com código Python funcional e exemplos reais do Brasileirão.
Análise Estatística de Futebol com Python:. Os três modelos estatísticos que casas de apostas usam pra precificar odds de futebol — explicados com código Python funcional e exemplos reais do Brasileirão.
Dashboard interativo para visualizar odds e arbitragens em tempo real
Critério de Kelly, flat betting e gestão de banca com código Python
Galera, se você acha que casas de apostas definem odds olhando pra torcida ou pra fase do time, está enganado. Os departamentos de trading das casas grandes como Pinnacle, Bet365 e Betfair usam modelos quantitativos pra precificar cada mercado. Os três pilares pra futebol são:
Primeiro, a distribuição de Poisson — que modela a quantidade de gols que cada time deve fazer num jogo. Segundo, o sistema ELO — que mede a força relativa de cada time com base nos resultados recentes. Terceiro, o Expected Goals (xG) — que avalia a qualidade das chances criadas, não só o resultado final.
Nenhum modelo sozinho é perfeito. A Poisson ignora contexto tático. O ELO não diferencia uma vitória dominante de uma vitória no sufoco. O xG depende de dados detalhados que nem sempre estão disponíveis. Mas combinados, eles formam uma base analítica sólida. E o melhor: dá pra implementar tudo em Python com menos de 200 linhas de código.
Modela a probabilidade de cada placar possível baseado na média de gols.
Sistema de ranking que atualiza a força do time a cada resultado.
Mede a qualidade das finalizações, não só a quantidade de gols.
A ideia da Poisson é simples: se um time marca em média 1.5 gols por jogo em casa, qual a probabilidade de ele marcar 0, 1, 2, 3 ou mais gols? A distribuição de Poisson responde exatamente isso. É uma distribuição de probabilidade discreta que modela o número de vezes que um evento raro ocorre num intervalo fixo.
Pra futebol: o evento raro é gol, o intervalo fixo é 90 minutos. A fórmula é P(k) = (lambda^k * e^(-lambda)) / k!, onde lambda é a média de gols esperados e k é o número de gols que você quer calcular a probabilidade.
O sistema ELO foi criado pro xadrez — pra ranquear jogadores com base nos resultados dos jogos. A adaptação pro futebol funciona assim: cada time começa com um rating (geralmente 1500), e a cada jogo o rating é ajustado com base no resultado e na expectativa prévia.
Se o Flamengo, com rating 1700, ganha de um time com rating 1400, o ajuste é pequeno — o resultado era esperado. Mas se o time de rating 1400 ganha do Flamengo, o ajuste é grande — resultado surpreendente. É assim que o sistema captura a forma recente dos times.
O xG é a métrica que mais mudou a análise de futebol nos últimos 10 anos. A ideia: nem todo chute é igual. Um chute de dentro da pequena área, sem marcação, tem 70% de chance de virar gol. Um chute de 30 metros, com dois zagueiros na frente, tem 3%. O xG atribui um valor de probabilidade pra cada finalização baseado na posição, ângulo, tipo de passe anterior, parte do corpo usada e outros fatores.
Por que isso importa pra apostas? Porque gols são voláteis. Um time pode dominar o jogo, criar 2.5 xG de chances, e perder de 1x0 com um contra-ataque do adversário que tinha 0.3 xG. No curto prazo, isso acontece o tempo todo. Mas no longo prazo, o xG converge com os gols reais. Então se um time tem xG consistentemente alto mas poucos gols, a tendência é que a performance real se aproxime do xG — e vice-versa.
A StatsBomb libera dados gratuitos de xG pra competições selecionadas via GitHub (statsbomb/open-data). A FBref tem xG de todas as grandes ligas europeias e do Brasileirão, acessível via scraping. A Understat tem uma API não-oficial que retorna xG por jogo pra as 5 grandes ligas. Pra começar, FBref é a melhor opção — dados mais completos e atualizados.
Usar um modelo só é limitante. A mágica acontece quando você combina os três. A técnica mais simples é fazer uma média ponderada das probabilidades de cada modelo. Mas os pesos não devem ser iguais — eles devem refletir a precisão histórica de cada modelo.
As fair odds calculadas pela Poisson são as odds sem margem — a odd justa matematicamente. Se a casa oferece uma odd maior que a fair odd, você tem um value bet. Se oferece menor, a casa tem vantagem. Simples assim. Compare essas fair odds com as odds reais do mercado e você tem seu primeiro sinal de trading.
O K-factor controla a velocidade de reação do sistema. K=20 é conservador — o sistema muda devagar. K=40 é mais agressivo — reage rápido a resultados recentes. Pra futebol brasileiro, K entre 30 e 40 funciona bem porque o campeonato tem viradas de forma mais bruscas que ligas europeias.
O home_advantage é um bônus fixo de ELO dado ao mandante. No futebol brasileiro, mando de campo vale bastante — algo entre 60 e 100 pontos de ELO, dependendo do estádio e da torcida. Time grande jogando no Maracanã lotado é diferente de time jogando em estádio vazio.
Times com muitos gols acima do xG tendem a regredir — vão começar a fazer menos gols do que o ritmo atual. Times com poucos gols em relação ao xG tendem a melhorar — a qualidade das chances está lá, os gols vão aparecer. Essa análise de regressão à média é uma das formas mais confiáveis de encontrar value bets no mercado de over/under e resultado.
O ensemble consistentemente supera qualquer modelo individual em backtests. No futebol brasileiro, pesos na faixa de 30-35% Poisson, 25-30% ELO e 35-40% xG têm dado os melhores resultados — mas isso varia por competição e temporada. A calibração periódica é o que garante que os pesos continuem fazendo sentido.
Com as fair odds do ensemble calculadas, compare com as odds do mercado usando o dashboard (artigo sobre React + Chart.js) e receba alertas quando detectar valor usando o bot de Telegram. Os três artigos juntos formam um sistema completo.
Esses modelos são a base. Pra ir além, conecte com o dashboard de React pra visualizar as previsões, use o bot de Telegram pra receber alertas de value bets, e aplique gestão de banca com o Critério de Kelly pra definir quanto apostar em cada oportunidade. Cada peça do sistema potencializa as outras. A CrazyStack ensina a construir sistemas desse nível com Node.js, React e Python.