Football market intelligence, probability and research-grade learning.

Entrar no curso

Contexto do curso

Modelos Estatísticos para Mercados de Previsão

Distribuições Estatísticas Aplicadas a Golos

Ensinar um sistema completo de análise quantitativa de mercados de previsão desportivos, desde os fundamentos probabilísticos até à construção de modelos preditivos, validação estatística e operacionalização com inteligência artificial.

Análise Avançada de Mercados de Golos Intermediario 24 min

Aula 10

Distribuições Estatísticas Aplicadas a Golos

A probabilidade de observar exatamente k golos num jogo, dado um lambda médio, é dada por:

Fórmula 4.1

Distribuição de Poisson para Golos

P(X = k) = (λ^k × e^(-λ)) / k!

Onde λ é o número médio esperado de golos, k é o número de golos que queremos calcular, e e é a base do logaritmo natural (≈ 2.71828). Para λ = 2.8, a probabilidade de 0 golos é 6.1%, 1 golo é 17.0%, 2 golos é 23.8%.

Porque Poisson Funciona no Futebol

O futebol satisfaz as condições de Poisson melhor do que a maioria dos desportos. Um golo é um evento relativamente raro — num jogo médio da Primeira Liga, há cerca de 2.4 a 2.8 golos, distribuídos por 90 minutos. Cada ataque tem uma probabilidade baixa de resultar em golo, e os ataques sucedem-se de forma aproximadamente independente.

Há limitações, claro. Os golos não são perfeitamente independentes — um golo muda o estado emocional e tático do jogo, o que afeta a probabilidade de golos subsequentes. Mas como aproximação de primeira ordem, Poisson é surpreendentemente precisa.

Calcular Over/Under com Poisson

A vantagem de usar Poisson é que podemos calcular analiticamente a probabilidade de qualquer intervalo de golos sem precisar de simulação.

Fórmula 4.2

Probabilidade de Under/Over

P(Under 2.5) = P(X ≤ 2) = P(X=0) + P(X=1) + P(X=2) P(Over 2.5) = 1 - P(Under 2.5)

Para λ = 2.8: P(0) = 6.1%, P(1) = 17.0%, P(2) = 23.8% → P(Under 2.5) = 46.9% → P(Over 2.5) = 53.1%. Odd justa Over 2.5 = 1/0.531 = 1.88. Se o mercado oferece 2.00, há value de aproximadamente 6.4%.

Leitura em código

Poisson: Over/Under 2.5 com lambda=2.8



    01
    P(Under 2.5)
    =
    46.9%
     // poisson.cdf(2, 2.8)
  
    02
    P(Over 2.5)
    =
    53.1%
     // 1 - P(Under 2.5)
  
    03
    odd_justa_over
    =
    1.88
    
  
    04
    odd_mercado
    =
    2.00
     // oferece 6.4% de value
  
    05
    value_estimado
    =
    +6.4%
    
  
  

O Problema do Lambda Único

Usar um único lambda para os 90 minutos inteiros é a abordagem mais comum entre principiantes. E é um erro que custa precisão.

O ritmo de um jogo de futebol não é uniforme. Há períodos de estudo tático, explosões de ataque, e fases de gestão de resultado. Ignorar esta dinâmica temporal significa perder granularidade — e granularidade é edge.

PeríodoLambda AjustadoContexto
0’-15’0.7× médiaEstudo tático, equipas a medir forças
15’-30’0.9× médiaJogo a aquecer, primeiras oportunidades
30’-45’1.1× médiaRitmo estabelecido, pressão crescente
45’+1.3× médiaUrgência pré-intervalo, erros defensivos
45’-60’0.8× médiaReinício, ajustes de balneário
60’-75’1.0× médiaRitmo normal de jogo
75’-90’1.4× médiaCansaço defensivo, substituições ofensivas
90’+1.6× médiaTudo ou nada, guarda-redes sobe

Exemplo de mercado

Poisson temporal aplicado — Benfica vs. Braga

Contexto

Jogo da Primeira Liga, Benfica-Braga. λ original estimado = 2.6. Queremos calcular a probabilidade de golo entre os 75' e 85'.

Leitura de preço

Lambda ajustado para período 75'-90': 1.4 × (2.6/2.8) = 1.3 para 15 min. P(0 golos neste período) = Poisson(0, 1.3) = 27.3%. P(1+) = 72.7%.

Hipótese

Dividir o jogo em períodos com lambdas diferentes permite identificar ineficiências nos mercados live. Quando o mercado ainda usa o lambda médio dos 90 min, podes precificar melhor o momento atual.

Risco

O ajuste de lambda por período é empírico. Cada liga tem o seu perfil temporal. Usar os fatores de uma liga europeia numa liga diferente introduz ruído.

Distribuições Alternativas

Poisson é a base, mas não é a única ferramenta. Em certos contextos, distribuições alternativas capturam melhor a realidade.

Negative Binomial

Quando a variância dos golos observados é maior que a média (overdispersion), a Negative Binomial é mais adequada. Isto acontece em ligas com muita heterogeneidade — equipas muito fortes contra equipas muito fracas produzem caudas mais pesadas que Poisson prevê.

A Negative Binomial introduz um parâmetro adicional que modela a heterogeneidade não observada entre jogos. Na prática, para ligas como a Liga Portugal Betclic, a Negative Binomial ajusta-se melhor a jogos que envolvem equipas dos extremos da tabela.

Zero-Inflated Poisson (ZIP)

Há ligas ou contextos onde o número de 0-0 é muito superior ao que Poisson prevê. Isto acontece quando há um mecanismo extra que gera zeros — por exemplo, jogos entre equipas ultra-defensivas, ou condições meteorológicas extremas.

O ZIP modela dois processos: (1) um processo binário que determina se o jogo é “zero absoluto”, (2) um processo Poisson para os restantes jogos.

Modo de falha

Usar Poisson cego sem diagnosticar overdispersion

Aplicar Poisson a uma liga com alta variância (ex: jogos entre Porto e equipas de fundo de tabela, que frequentemente terminam 4-0 ou 5-0) subestima a probabilidade de eventos extremos. O mercado também usa Poisson — mas se a liga tem overdispersion, as odds para Over 3.5, 4.5 e 5.5 podem estar sistematicamente sobrevalorizadas. Diagnóstico simples: calcula a variância dos golos e compara com a média. Se variância > média * 1.2, considera Negative Binomial.

O Erro de Usar Médias Históricas sem Contexto

O erro mais comum na construção de modelos de Poisson é usar a média histórica de golos de uma equipa como lambda. Isto ignora o contexto mais importante: o adversário, a forma recente, e as condições do jogo.

Um lambda ajustado combina múltiplas fontes de informação:

Com λ = 2.45, calculamos:

  • P(Under 2.5) = 46.0% → odd justa 2.17
  • P(Over 2.5) = 54.0% → odd justa 1.85

Se o mercado tem Over 2.5 a 2.05, isso representa value de aproximadamente 11%. A pergunta que deves fazer: o mercado está a subestimar a capacidade ofensiva do Porto em casa, ou há informação que o teu lambda ajustado está a ignorar?

BTTS via Poisson

O mercado de “Ambas Marcam” (BTTS) também pode ser modelado analiticamente a partir dos lambdas de cada equipa:

Leitura em código

BTTS via Poisson com Lambdas Individuais



    01
    lambda_casa
    =
    1.6
    
  
    02
    lambda_fora
    =
    1.1
    
  
    03
    P(Casa marca)
    =
    79.8%
     // 1 - Poisson(0, 1.6)
  
    04
    P(Fora marca)
    =
    66.7%
     // 1 - Poisson(0, 1.1)
  
    05
    P(BTTS)
    =
    53.2%
     // produto das probabilidades
  
    06
    odd_justa
    =
    1.88
    
  
    07
    odd_mercado
    =
    2.10
     // value de +11.7%
  
  

Atenção à independência

O cálculo acima assume independência entre os golos de casa e fora. Na realidade, há correlações: jogos com muitos golos de um lado tendem a ter menos do outro (quando uma equipa domina), ou mais de ambos (quando o jogo é aberto). Esta simplificação significa que o Poisson simples subestima ligeiramente a probabilidade de BTTS em jogos equilibrados e sobrestima em jogos desequilibrados.

Checklist de decisão

Checklist: Modelação de Golos com Poisson

  • Calculei o lambda base para cada equipa separadamente (casa vs. fora)?
  • Ajustei o lambda pela média de golos sofridos do adversário?
  • Incorporei um fator de forma recente (últimos 5 jogos)?
  • Considerei o contexto tático do jogo (pressão de resultado, eliminatória)?
  • Dividi o jogo em períodos temporais para análise live?
  • Verifiquei se a liga tem overdispersion que justifique Negative Binomial?
  • Comparei as odds de mercado com as odds justas calculadas?

Resumo

  • A distribuição de Poisson é a base matemática dos mercados de golos, modelando eventos raros num intervalo fixo
  • P(Over/Under) calcula-se analiticamente somando as probabilidades de Poisson para k golos
  • Dividir o jogo em períodos com lambdas diferentes melhora a precisão, especialmente em live
  • Distribuições alternativas (Negative Binomial, ZIP) capturam fenómenos que Poisson simples não modela
  • Normaliza sempre o lambda pela média da liga e pela forma específica do adversário
  • BTTS calcula-se a partir dos lambdas individuais, mas a independência assumida é uma simplificação
  • O valor está nos ajustes contextuais que o mercado não está a fazer