O que o número significa
Uma estimativa de 0,20 xG representa cerca de 20 gols em 100 chutes comparáveis segundo este modelo. Não é uma probabilidade exata para um jogador específico. Aqui, a cena é inventada e simplifica o contexto real.
Fonte e população
Usamos StatsBomb Open Data com resultados observados de gol/não gol; o xG da fonte nunca é o alvo. A população inclui chutes com os pés de homens em jogo aberto. Cabeceios, pênaltis e outras situações ficam fora do treino. Frames do evento são a observação principal; disponibilidade de 360 não garante que todos os defensores estejam visíveis. Goleiros ausentes e casos singulares na linha do gol são excluídos, sem imputação.
StatsBomb Open DataOito entradas posicionais
Geometria descreve a oportunidade; contagens e distâncias descrevem os adversários observados. O cone é o triângulo finito entre chute e traves. Posições usam metros, independentemente do SVG. Com zero defensores, a distância usa a diagonal do campo como sentinela junto da contagem explícita. Outros atacantes, identidade, pé preferido, técnica, velocidade e contexto temporal são omitidos.
| Característica | Racional |
|---|---|
| Distância do chute (m) | Distância ao centro do gol. |
| Ângulo de abertura (°) | Abertura entre as traves. |
| Deslocamento lateral (m) | Assimetria lateral sem distinguir esquerda/direita. |
| Defensores representados | Quantos adversários estão representados. |
| Defensores no cone | Ocupação do triângulo de chute. |
| Defensor mais próximo (m) | Proximidade do adversário observado mais perto. |
| Goleiro até o gol (m) | Posicionamento do goleiro em relação ao gol. |
| Goleiro até o chute (m) | Proximidade entre goleiro e chute. |
Treino, escolha e congelamento
Partidas inteiras são separadas em treino, calibração, seleção e teste, evitando compartilhar lances da mesma partida entre grupos. A busca limitada usa cinco folds só no treino; a padronização logística é ajustada dentro de cada fold. Três regressões logísticas isolam geometria, defensores e todas as entradas. XGBoost raso testa interações não lineares. Não há balanceamento de classes ou refit após a seleção.
| Partição | Partidas | Chutes | Gols |
|---|---|---|---|
| Calibração | 183 | 3.440 | 314 |
| Seleção | 180 | 3.643 | 324 |
| Teste final | 363 | 7.160 | Não aberto na seleção |
| Treino | 1.087 | 20.777 | 1.966 |
A regra declarada escolheu XGBoost pelo desempenho observado e pelo limite de deterioração de Brier para preferir simplicidade. Os intervalos de seleção não demonstraram superioridade conclusiva. A calibração sigmoide não cumpriu os critérios de adoção. Congelar significa fixar entradas, pré-processamento, árvores e calibração antes de abrir o teste final; a tela só executa esses parâmetros.
- XGBoost
- 300 árvores · profundidade 2 · taxa de aprendizado 0,05 · peso mínimo de nó 5
- Calibração
- Sem recalibração (identidade)
Validação e teste final
Log loss penaliza probabilidades erradas com confiança; Brier mede o erro quadrático da probabilidade. Menor é melhor. Seleção escolhe o modelo; o teste final avalia o modelo já fixado. Não foi usado para retunar. Intervalos de 95% reamostram partidas inteiras, preservando a dependência dos chutes.
Seleção — não é o teste final
| Modelo | Chutes | Gols | Log loss | Brier |
|---|---|---|---|---|
| Prevalência constante | 3.643 | 324 | 0,300265 | 0,08106 |
| Logística: geometria | 3.643 | 324 | 0,245876 | 0,069567 |
| Logística: defensores | 3.643 | 324 | 0,240204 | 0,067658 |
| Logística completa | 3.643 | 324 | 0,238355 | 0,067612 |
| XGBoost completo | 3.643 | 324 | 0,235208 | 0,066974 |
Teste final intocado até o congelamento
| Modelo | Chutes | Gols | Log loss | Brier |
|---|---|---|---|---|
| XGBoost completo | 7.160 | 655 | 0,239965 | 0,068339 |
| Logística completa | 7.160 | 655 | 0,242871 | 0,069261 |
| Prevalência constante | 7.160 | 655 | 0,306008 | 0,083122 |
Diferenças pareadas no teste final
XGBoost menos referência: valores negativos favorecem XGBoost. Os intervalos globais favorecem o candidato neste teste; isso não garante vantagem em todo recorte nem transferência para outros campeonatos ou cenas.
| Referência | Métrica | Diferença | Intervalo de 95% |
|---|---|---|---|
| Prevalência constante | Brier | -0,014783 | [-0,017492; -0,012139] |
| Prevalência constante | Log loss | -0,066043 | [-0,075388; -0,056869] |
| Logística completa | Brier | -0,000922 | [-0,001781; -0,000067] |
| Logística completa | Log loss | -0,002906 | [-0,005424; -0,000343] |
Calibração e amostras escassas
A diagonal indica concordância entre média prevista e frequência observada. Barras mostram intervalos de 95% da frequência observada por partidas; pontos vazados são bins escassos. Nenhum bin com suporte foi sinalizado, mas as faixas de alta probabilidade têm poucos exemplos e não sustentam precisão em cenas extremas.
| Faixa prevista | Chutes | Média prevista | Frequência observada | Intervalo de 95% | Escasso |
|---|---|---|---|---|---|
| 0%–10% | 5.324 | 3,5% | 3,7% | 3,1% – 4,2% | Com suporte |
| 10%–20% | 818 | 14,3% | 13,6% | 11,2% – 15,9% | Com suporte |
| 20%–30% | 429 | 24,8% | 21,7% | 17,9% – 25,6% | Com suporte |
| 30%–40% | 282 | 34,4% | 33,7% | 28,2% – 39,6% | Com suporte |
| 40%–50% | 164 | 44,4% | 47% | 39,6% – 53,5% | Com suporte |
| 50%–60% | 69 | 54,7% | 49,3% | 37,3% – 60,3% | Escasso |
| 60%–70% | 41 | 64% | 58,5% | 44,2% – 73,3% | Escasso |
| 70%–80% | 17 | 74,2% | 82,4% | 62,5% – 100% | Escasso |
| 80%–90% | 9 | 85,3% | 55,6% | 20% – 87,5% | Escasso |
| 90%–100% | 7 | 91,8% | 100% | 100% – 100% | Escasso |
O recorte adverso também importa
Com dois defensores dentro do cone, o XGBoost foi pior que a regressão logística neste teste. Isso se refere à contagem dentro do cone, não ao total no campo. Mantemos esse resultado visível; médias globais não apagam falhas locais.
Chutes: 815 · Com suporte
| Métrica | Diferença | Intervalo de 95% |
|---|---|---|
| Brier | 0,000877 | [-0,000344; 0,002305] |
| Log loss | 0,005375 | [0,000098; 0,011708] |
Cenas ilustrativas e transferência
A referência descritiva usa vizinhos em características padronizadas apenas do treino, com um limiar de 99% e grupo separado para zero defensores. Não publicamos linhas de referência, então a tela não calcula suporte conjunto para cada edição. Quatro presets de jogo aberto ficam fora dessa referência; estar dentro também não prova realismo. Cenas raras continuam exploráveis. Comparações não são efeitos causais; visibilidade parcial, poucos defensores e outros domínios limitam a interpretação.
Execução e reprodução
TypeScript extrai as mesmas oito entradas do pipeline Python. O carregador valida e captura parâmetros imutáveis; XGBoost preserva comparações e acumulação float32 com tolerância de 1e-7. Árvores podem manter o resultado após pequenos movimentos. Entradas inválidas ou modelo indisponível não recebem heurística substituta. Pênaltis usam a convenção fixa de 0,76, separada do modelo aprendido.
A revisão científica foi aceita com limitações e a distribuição do artefato exato foi revisada no escopo gratuito/não comercial. O status automático original continua “needs_review”; revisão não autoriza publicação. O treino privado e a reprodução completa foram executados pelo autor; o assistente revisou agregados e checks, sem rerodar os dados privados.
Identidade e revisão
- Artefato
- 758526873b8a3a2681f655c064dee52f8bd33749accd499d015420dbe8e11b9a
- Execução de treino
- 222909fe801f4865897fea3541e023fed626f6736dca6ef69ceada1f7c57945a
- Evidência
- e579e10f9699077ddf05e7433af5ed63edf0e03c3ea8c7ca295844951d74ea08
- Revisão científica · 11 de out. de 2026
- Aceita com limitações
- Status automático original
- Revisão necessária
- Autorização de publicação
- Não
- Teste final intocado até o congelamento
- 7.160 Chutes · 655 Gols