Análise do Zero #1 - Criando um modelo de PSxG

Aplicação do modelo na Copa do Mundo de 2022

xG
PSxG
Do Zero
Tática
Author

Volante Subversivo

Published

19/01/2024

Introdução

Os avanços estatísticos, usados para a análise da performance dos jogadores, trazem, dia após dias, várias nomenclaturas e novidades que certamente deixam os torcedores de futebol cada vez mais encucados sobre o que se está falando. xG, PSxG, xA, xAG, xT, PPDA, etc., são apenas alguns nomes que você já deve ter visto por aí. Estes dados, diferentemente dos mais comuns que se referem a ações mais claras do jogo (como o número de gols, chutes, passes, desarmes, etc.), são criados a partir de dados de eventos e/ou modelos estatísticos que nos permitem inferir valores completamente novos para cada ação pertinente no jogo.


O que são dados de evento? São dados que representam cada ação tomada em um jogo, sem agregar os valores. Ou seja, estamos falando de dados mais granulares, com mais detalhes e informações imediatas sobre cada ação em campo. Assim, conseguimos ter uma análise mais apropriada sobre as jogadas e qualidades das equipes e jogadores. Veja logo abaixo um vídeo que mostra como estes dados são coletados:

Também falamos sobre estes dados em outro texto aqui no Volante, ao estrearmos a análise de dados do Statsbomb:


Assim, por exemplo, quando falamos de chutes e xG, a diferença entre estes é que todo chute tem o mesmo valor para a análise, sendo uma unidade de evento que nos permite contabilizar suas ocorrências, enquanto, para o xG, já precisamos de modelos estatísticos, treinados a partir de dados pregressos de outros jogos, para estimar seu valor. Não é preciso ir muito além para notar, pois, que estes modelos claramente dependem dos avanços computacionais dos últimos anos: é preciso guardar mais dados e processá-los mais rapidamente para lidar com as complexidades de seus modelos1.


Não sabe o que é xG e PSxG citados aqui? Cheque os outros trabalhos nos quais explicamos estes conceitos e alguns outros artigos de sites que recomendamos:


Apesar desta demada, estes dados trazem uma contextualização de nossas estatísticas, permitindo avaliar de forma mais apropriada a qualidade dos jogadores e determinados conceitos do jogo: se falássemos apenas de finalizações, não teríamos ideia de como são os chutes de um jogador, sem ter noção se este se aproxima do gol, se consegue se desmarcar, etc.; se falamos de passes e assistências, não temos ideia de como estes foram gerados, se o passe veio de lado para um gol de fora da área ou se foi uma bola que quebrou linhas defensivas. Em outras palavras, estas estatísticas mais comuns não são precisas, já que podem facilmente incluir o que chamamos de “barulho” (no caso, um passe simples que vira gol por mérito do companheiro ou gols que entram mais por falha do goleiro adversário) para inferir “sinais” que nos interessam. Para ilustrar o que queremos falar, veja a imagem do alvo abaixo:

Imagem explicando o que é acurácia e precisão. Fonte: medicalbiochemist.com

Utilizando a analogia do alvo, pense no caso das finalizações: toda finalização, se formos pensar a partir de gols, nos retorna apenas 0 ou 1 – se este chute foi convertido em gol ou não. Não consideramos, por exemplo, o chute na trave e a defesaça do goleiro, os quais certamente não deveriam valer 0 para nosso jogador. Por isso, os dados são muito dispersos e se distanciam de seu sentido mais preciso, e, assim, eles são afetados por elementos externos que diminuem sua precisão.

Com estas novas métricas, criadas a partir de metodologias mais sofisticadas, torna-se possível fazer análises cada vez mais refinadas sobre a qualidade de vários jogadores: com o xG (gols esperados), por exemplo, podemos ver como este jogador, mesmo que não marque gols, se coloca em posições adequadas para fazê-lo; com o PSxG, vemos quão bons estes jogadores são na finalização, sem se ter a influência do goleiro na decisão das estatísticas; e, com o xT, podemos ver quão progressivos e participativos do jogo eles são, sem depender da qualidade dos seus companheiros de equipe.

Faz sentido, então, apresentar melhor como essas estatísticas são criadas e como elas podem nos ajudar na análise de desempenho de equipes e atletas. É para isso que estreamos a série “Do Zero”, na qual desenvolvemos estas métricas tão faladas aqui no Volante Subversivo. Para começar, trataremos sobre o PSxG (Post Shot Expected Goal), com o qual poderemos avaliar a qualidade da finalização de nossos atletas, deduzindo-se um valor de probabilidade de gol do chute. Em um primeiro momento, mostraremos a metodologia que usamos para medir esta estatística e, em seguida, iremos aplicar nosso modelo em dados da Copa do Mundo de 2022.

Metodologia

Para começo de conversa, avisamos que nos limitaremos a compartilhar o passo a passo do modelo e sua base matemática, sendo bastante possível reproduzir em qualquer outra linguagem de programação e/ou software estatístico. Compartilhar o código diretamente aqui poderia tornar este texto um pouco longo demais, então resolvemos não colocá-lo aqui2.

De toda forma, cabe lembrar que o PSxG é o “Post Shot Expected Goal”: em tradução livre, gol esperado pós-chute, que calcula a probabilidade de gol de um chute. Como você já deve saber, o PSxG vale apenas para chutes completos: chutes bloqueados não são analisados, assim como chutes fora do gol ou na trave terão, necessariamente, o valor 0 de PSxG, já que, sem terminar entre as traves, não há como um chute ser gol. A base desta probabilidade, é claro, é a posição final da bola e, para simplificar esta análise, resolvemos dividir o gol em determinadas zonas, dispostas na seguinte imagem:

Probabilidades de gol a partir da localização dos chutes em determinados quadrantes

Acima está um exemplo de divisão do gol em diferentes regiões, dentre as quais está disposta a chance de gol quando a bola vai em seu respectivo quadrante, definida pela proporção de chutes que foram gol. Dividimos, no total, cerca de 35 áreas de gol, sendo 15 delas para fora – nas quais se têm, óbvio, 0 de PSxG.

Quem acompanha futebol (e, em especial, já jogou gol a gol) sabe que estas áreas estão bem coerentes com o que é comum observar num jogo: as maiores chances estão em bolas rasteiras ou no alto do gol e, quanto mais no canto, maior a chance de gol. Neste exemplo em questão, calculamos a média de gols da soma de todos os chutes a partir de seus quadrantes. Ou seja, 44% dos chutes no FxD (leia-se da largura para altura) foram gols, enquanto apenas 17% dos chutes no DxC foram bem-sucedidos.

Óbvio que estes dados são simplistas demais: a chance também depende da posição do goleiro e da velocidade do chute, os quais adicionamos em nosso modelo. Neste caso, nosso procedimento para chegar aos valores se deu da seguinte forma:

  1. Selecionamos apenas os chutes completos (isto é, chutes não bloqueados);
  2. Dividimos os chutes por suas posições, assim como a posição do goleiro;
  3. Calculamos a média de gols de cada quadrante de acordo com a posição dos goleiros;
  4. Realizamos um smoothing destas probabilidades, a partir da média de 5 células (a própria, acima, à esquerda, à direita e abaixo, excluindo os valores de chutes fora do gol), aplicada para cada célula com PSxG maior que 0;
  5. Criamos uma regressão logística da probabilidade de gol a partir das posições definidas e da duração do chute, da qual retiramos o coeficiente de duração do chute;
  6. Montamos uma função de estimação do PSxG usando a probabilidade de gol como intercepto e a duração do chute como coeficiente angular.

Logo, nossa fórmula é basicamente a seguinte:

\[logit(P)_i = logit(P(G | GK_i H_i W_i)) + \beta d_i\]

Onde \(GK\) é a posição do goleiro, \(H\) o quadrante vertical do chute (5 níveis) e \(W\) o quadrante horizontal (7 níveis), que servem para definir a probabilidade inicial de gol. E, por fim, simplesmente adicionamos o produto de nosso coeficiente angular com a duração do chute (em segundos), representados, respectivamente, por \(\beta\) e \(d\).

Este logit posteriormente é convertido em probabilidade a partir da fórmula de conversão de logit em probabilidade3 e temos, enfim, o nosso PSxG. Como podem ver, é um modelo bastante simples de ser usado, feito especialmente para analisar a capacidade de finalização dos jogadores4. Utilizamos todos os jogos das temporadas 15/16 da Premier League e Série A italiana, disponibilizados integralmente pelo Statsbomb, o que demandou algum tempo de scraping. No total, analisamos mais de 13000 chutes completos para chegar nestes dados5.

Após algumas sequências de testes, chegamos em resultados que consideramos consistentes. Obviamente, não se terá exatamente os mesmos valores que os outros modelos, mas enxergamos vantagens em termos um modelo tão simples, que permite que seu treino e aplicação sejam bastante rápidos. Para demonstrar ele funciona, iremos analisar alguns chutes do jogo entre Brasil e Croácia, nas quartas de final de 2022.

Exemplos: Brasil 1 x 1 Croácia (2022)

Para iniciar nossa análise, podemos ilustrar o local final dos chutes completos a partir dos dados à nossa disposição. Os chutes estão coloridos de acordo com seus resultados (se foram gols, fora ou defendidos) e representados com um número que demonstra sua ordem no jogo. Veja logo abaixo:

No caso, o chute 1, bem no meio do gol, foi o primeiro chute do jogo e foi defendido pelo goleiro. Note que estas são posições aproximadas, coletadas com a ajuda de codificadores manuais e algoritmos de visão computacional, e podem, em uma situação ou outra, conter erros. Para o jogo em questão, não sentimos que houve algo muito diferente do observado e, por isso, seguimos sem problemas. Outro ponto que deve ser apontado é que alguns chutes estão como defesa e se encontram como fora do gol porque o goleiro defendeu a bola antes dela chegar na pequena área.

De toda forma, podemos notar alguns pontos interessantes: primeiro, a maioria dos chutes foram no canto direito dos goleiros; eles também se concentraram, em especial os que foram na direção do gol, na parte inferior. Contudo, o mero local do chute não diz tanto sobre a qualidade do chute, já que esta depende, obviamente, da posição do goleiro e da duração do chute. Para representar esta, podemos plotar os chutes no campo, mostrando sua origem, destino, jogador (através do número da camisa) e valor de PSxG. Comecemos com os chutes da seleção brasileira:

O Brasil, como é demonstrado acima, criou e chutou muito! Lembremos: estamos analisando apenas chutes completos, sem contar os bloqueados, tendo-se 13 destes. E a maioria das finalizações foram dentro da área (no total, tivemos 9 dentro e 4 fora), o que mostra que as chances criadas não foram, a princípio, ruins. Pelo contrário, tivemos 1.81 de xG acumulados, mais do que o suficiente para termos dois gols, se a finalização estivesse um pouquinho mais calibrada.

Pela cor dos chutes, fica evidente que não tivemos tanta qualidade nestes, com exceção de dois chutes de Neymar (o do gol, que analisaremos logo mais, e uma cobrança de falta defendida pelo goleiro). Contudo, com 1.71 PSxG acumulados, tínhamos condições, sim, de ganhar o jogo com mais de um gol, mas a boa atuação do goleiro croata complicou a seleção, evitando 0.71 gols. Enfim, houve volume, mas faltou caprichar um pouco mais.

Vejamos uma exceção deste padrão: o gol de Neymar.

Podemos ver que, claramente, o gol era o esperado nesta jogada, tendo um xG de 0.47 (pode parecer baixo, mas o xG é, em geral, bem conservador mesmo)6, mas Neymar caprichou na jogada, finalizando de tal forma que seu PSxG foi de 0.83. Ou seja, ele adicionou 0.36 gols neste chute e praticamente selou a classificação brasileira para as semi-finais. Esta qualidade absurda simplesmente impediu que o zagueiro que se aproximava interceptasse a bola. Nosso próprio modelo demonstra que, quando o goleiro está fora da jogada, chutar alto é mais garantia de gol do que rasteiro. E Neymar aparentemente sabe disso, com sua experiência, e garantiu o gol com este cuidado a mais.

Contudo, não esperávamos que um contra-ataque da Croácia faltando poucos minutos para o fim do jogo desmoronasse essa vantagem. Para se ter uma ideia do quão inesperado foi o gol de Petkovic, veja logo abaixo os chutes da Croácia:

No caso da Croácia, poucas chances foram criadas e justamente no seu melhor chute, igual o Brasil, saiu o gol. Eles apenas acertaram o alvo nesta única finalização e não tiveram a melhor qualidade nos chutes, como podemos ver na distância do gol em algumas finalizações e no total de xG, limitando-se a 0.63, quase um terço do que o Brasil criou. O chute de Petkovic, embora tenha sido muito bom, não chegou no nível do de Neymar: teve apenas 0.1 de xG, mas chegou a um aumento significativo pós-chute, tendo um PSxG de 0.43, adicionando-se, pois, 0.33 gols. Sendo assim, já que este foi o único chute certo deles, no total, a Croácia teve apenas 0.43 de PSxG, o que demonstra que o esperado, de longe, era que a equipe europeia terminasse em branco, em especial após finalizar mal. Note, aliás, que eles foram pior que o Brasil, uma vez que nossa diferença entre PSxG e xG foi de -0.09 e da Croácia foi de -0.2. Alisson, no caso, sofreu 0.57 gols a mais do que o esperado.

Seria injusto, porém, deixar de observar que o goleiro brasileiro foi traído pelo desvio da bola em Marquinhos, representado logo abaixo, com a camisa 4:

Este freeze frame é interessante porque prova a completa desorganização defensiva do Brasil: todos se deslocaram para a esquerda, visando isolar os jogadores croatas, e deixaram a direita livre, a qual ficou sem recomposição do ponta e volante deste lado – os quais, aliás, tinham entrado depois no jogo! Fred, com a camisa 8, pode ser visto completamente atrasado na jogada e Anthony sequer aparece no freeze frame da finalização. Além disso, fica claro que o chute de Petkovic foi muito bem colocado, e, mesmo que Alisson não se encontrasse mal posicionado, assim, conseguiu levar o jogo para os pênaltis. Nossa análise, então, consegue mostrar explicitamente como a seleção perdeu o jogo em um completo lapso de atenção, esperando-se que, pelas chances criadas, saíssemos com a classificação.

Após realizar uma análise mais apropriada destes dados, e tendo-se uma ideia clara de como este método é aplicado, vamos ampliar nossa análise para todos os jogos da Copa do Mundo e tentar encontrar quais foram os melhores e piores finalizadores da Copa.

Melhores e piores finalizadores da Copa de 2022

Para definir quais jogadores são os melhores finalizadores, iremos seguir os seguintes passos:

  • Primeiro, selecionamos apenas aqueles que tiveram pelo menos 5 chutes na Copa do Mundo

  • Calculamos a diferença entre os xGs e PSxGs de suas finalizações

  • Somamos todas as diferenças de cada jogador e chegamos ao valor final da eficiência ofensiva destes

Note-se que também decidimos retirar os pênaltis na análise, por acreditarmos que eles são uma situação de chute completamente diferente e devido à imprecisão nas medidas providenciadas pelo Statsbomb. Além disso, apresentaremos apenas os números absolutos, sem utilizar a média, por conta de nossa amostra possuir um N muito pequeno e, assim, tenderíamos a distorcer ainda mais os dados com este tratamento. Chegamos, então, às seguintes posições dos 10 melhores e piores finalizadores da Copa do Mundo:

Talvez surpreendentemente, não temos aqui os maiores craques do mundo (Messi, Cristiano Ronaldo, Neymar, De Bruyne, etc.) liderando a eficiência à frente do gol. Na verdade, a tendência é justamente o contrário: Cristiano Ronaldo e Lewandowski, grandes artilheiros, estão entre os piores finalizadores! O motivo para isto é muito simples: primeiro, a Copa é um campeonato de tiro curto, o que facilita com que os valores destes jogadores sejam mais aleatórios. Para se ter uma ideia de como esta análise é insuficiente, o jogador com mais chutes foi Mbappé, com apenas 29 destes. Enquanto isso, na Premier League de 2022/2023, Harry Kane liderou a estatística de chutes com 124 destes. Ou seja, nossa amostra é, definitivamente, muito pequena, limitando-se a, no máximo, 8 jogos, e, por isso, não recomendamos que se use esta análise como parâmetro para dizer se, de fato, algum jogador é ou não bom na finalização7.

Contudo, alguns nomes são bem interessantes de serem notados e percebemos com alguma facilidade porque eles aparecem neste gráfico. Cristiano Ronaldo, por exemplo, de fato não fez uma boa Copa, chegando a perder a titularidade para Gonçalo Costa. Lukaku também não se destacou positivamente, despedindo-se do Qatar sem um único golzinho na mala. Lewandowski, por sua vez, marcou dois gols, mas, pelo xG (acumulou, no total, 2.93 deste, de acordo com dados da Opta), deveria ter feito mais. E Lautaro Martínez, então, foi comentado por todos que assistiram os jogos da campeã Argentina, ao criar boas chances, mas o hermano desperdiçou todas elas.

Rafael Leão, Saka, Enzo Fernández, Dí Maria e Theo Hernández foram os finalizadores mais eficientes. Você deve ter notado algo comum entre os de cima e os mais abaixo: estes tendem a chutar mais próximos ao gol, sendo centroavantes, enquanto os outros, sendo meias e pontas, chutavam mais distantes ao gol. Isto se dá porque este método, de fato, tende a favorecer quem chuta de longe (quanto menor o xG, maior diferença a ser acumulada pelo chute), o que pode ser corrigido ao se selecionar apenas chutes de dentro da área, mas não o faremos aqui por conta do tamanho minúsculo de nossa amostra.

De toda forma, acreditamos que temos aqui um modelo interessante que possui condições de ser utilizado para outros jogos. Pretendemos, futuramente, usar este modelo para analisar os jogos antigos disponibilizados pelo Statsbomb e avançar na compreensão da qualidade de vários jogadores esquecidos pelas estatísticas. Fica aqui nosso agradecimento ao Statsbomb por deixar estes dados disponíveis e possibilitar o estudo e desenvolvimento de novas técnicas e comunicação científica. Esperamos que este texto tenha esclarecido o que é o PSxG e como ele pode ser construído para ser usado em análises estatísticas.

Footnotes

  1. Apesar desta consideração, muitos jogos antigos têm sido codificados pelas companhias de dados e, com isso, nos permitem dimensionar de outra forma a qualidade dos jogadores do passado. Após concluirmos esta série, pretendemos avançar com a análise de jogos e campeonatos antigos a partir destas nossas estatísticas.↩︎

  2. Em caso de dúvidas ou de interesse do uso do modelo, fique à vontade para entrar em contato conosco para disponibilizarmos o código e/ou aplicarmos o modelo sobre outros dados, dependendo da finalidade de uso (fins acadêmicos, serviço de análise de desempenho e análise jornalística). Pode entrar em contato pelas redes sociais ou por nosso e-mail vsubversivo@gmail.com↩︎

  3. Para quem não se lembra dela, é a seguinte: \(P_i = \frac{e^{logit(P)_i}}{1 + e^{logit(P)_i}}\)↩︎

  4. Como já podem ter percebido, ele não é recomendado para analisar a capacidade do goleiro: se este estiver mal posicionado, ele será menos penalizado, já que o PSxG será maior. Portanto, outro modelo precisa ser pensado para este caso, talvez um que considere a melhor posição possível para o goleiro ao invés de sua posição real.↩︎

  5. Ainda pretendemos ampliar o modelo adicionando a Bundesliga, que possui uma temporada completa disponível no Statsbomb↩︎

  6. Além disso, também temos diferenças entre certos cálculos. O Opta, por exemplo, previa um total de xG de 2.55 para o Brasil e, neste chute, havia dado 0.7 xG, números bem maiores que os previstos pelo Statsbomb. Estes números estão disponíveis no Sofascore: https://www.sofascore.com/brazil-croatia/pUbsYUb↩︎

  7. Também precisamos confessar que escolhemos a Copa do Mundo para fazer estas análises por ser justamente um campeonato com menos jogos, o que nos permitiu gastar menos tempo para ler os dados de evento e aplicar os modelos.↩︎