Experiência: Prevendo vencedor da copa do Qatar com Python

Entre para nossa lista e receba conteúdos exclusivos!

vencedor da copa do qatar

Na data em que esse artigo está sendo escrito, o Brasil já foi eliminado da copa do mundo do Qatar, para a tristeza de muitos brasileiros. Então, embora o Brasil fosse o favorito para vencer a competição, a realidade é que a Argentina está na final e irá jogar contra a França ou Marrocos. Nesse artigo tentaremos prever o vencedor da copa do Qatar utilizando estatística e, claro, python.

Essa copa do mundo fez muita gente perder dinheiro com apostas. Pois muitas seleções historicamente fortes foram eliminadas logo na fase de grupos. Exemplos dessas são Bélgica e Alemanha. Além disso, houveram derrotas muito improváveis, como a eliminação da Espanha pelo Marrocos nas oitavas de final, a eliminação de Portugal pelo Marrocos nas quarta de final a derrota da Argentina pela Arábia Saudita na fase de grupos.

Com base nisso, eu proponho uma experiência. Vamos tentar prever o vencedor dessa copa do mundo ignorando o histórico das seleções. Afinal, se o histórico importasse tanto assim, o Brasil não teria perdido para os Camarões e para a Croácia. Como diriam por aí, o futebol é inexplicável. 

Fazer isso pode desconsiderar fatores muito importantes, e levar a erros grotescos. Mas como as previsões nessa copa do mundo erraram muito, vale sair da caixinha e ver o resultado, afinal, se a previsão estiver errada, iremos aprender que o histórico do país em copas era muito relevante e não deve ser desconsiderado. Se a previsão estiver certa, teremos uma bela história para contar para nossos netos.

Faremos a previsão com base nos jogos dessa copa mesmo. Vamos tentar avaliar as seleções que estão se saindo melhor nessa edição. A métrica de desempenho utilizada serão as médias de gols feitos e sofridos, nessa copa.

Prevendo vencedor da copa do Qatar: Modelo

Iremos utilizar a distribuição de Poisson para estimar a probabilidade de ocorrer uma quantidade x de gols feitos e sofridos de uma seleção em um jogo. A distribuição de Poisson tem a seguinte fórmula:

Nesse caso, X é a quantidade de gols marcados ou sofridos, P(X) é a probabilidade de uma seleção fazer ou sofrer X gols em um jogo,e lambda(esse símbolo) é a média de gols marcados/sofridos. Já o numero ‘e’ é a constante de Euler.

Prevendo vencedor da copa do Qatar: Código

Primeiro de tudo, iremos importar a biblioteca numpy, para operar com arrays, e definir a média de gols marcados e sofridos das seleções que ainda estão na competição.

import numpy as np


#definindo media de gols das seleçoes [media de gols pro, media de gols contra]

mediaArgentina = np.array([12/6, 4/6])
mediaCroacia = np.array([6/6, 6/6])
mediaMarrocos = np.array([5/5, 1/5])
mediaFranca = np.array([11/5, 5/5])

Após isso, iremos usar a função poisson para calcular as probabilidades do nosso espaço amostral. Nosso espaço será as possibilidades das seleções marcarem e sofrerem até 10 gols, então vamos calcular a probabilidade de cada caso.

Exemplo, vamos supor que estaremos calculando a probabilidade do placar ser 3 para a holanda e 2 para a argentina, e o valor dessa probabilidade foi igual a 0,1, então iremos somar 0,1 a uma variável scoreHolanda, pois nesse caso a holanda que ganhou. Depois de fazer isso para todos os casos, iremos decidir pelo maior score quem venceu a partida.

#%% importando modelo poisson

from scipy.stats import poisson

#funçao recebe arrays de medias de gols e retona o score de cada um

def vencedor(time1, time2):
    
    #definindo score de cada time
    prob1, prob2, probEm = 0,0, 0
    
    #vamos analisar todos os casos, onde cada time pode fazer ate 10 gols
    
    for i in range(0,10):  #gols do time 1
        for j in range(0,10): # gols do time 2
            
        # p e a probabilidade do placar ser i x j
          
            p = poisson.pmf(i,time1[0]*time2[1]) * poisson.pmf(j,time1[1]*time2[0])
        
            if i>j:#time 1 ganhou
                prob1+= p
            if i<j: #time 2 ganhou
                prob2+=p
            if i==j:
                probEm+=p
    return prob1, prob2, probEm

Agora, basta tentar prever. Prevendo os vencedores dos próximos jogos, temos:

JogoTime 1Time 2Vencedor
semifinalMarrocosFrançaMarrocos
Terceiro LugarFrançaCroáciaFrança
FinalMarrocosArgentinaMarrocos

Prevendo vencedor da copa do Qatar: Discussão dos resultados

Então, o nosso modelo diz que o Marrocos será o campeão da copa do mundo. Falar isso chega a ser até engraçado, mas devemos admitir que essa seleção já é uma campeã, afinal, é o primeiro país africano a chegar as semifinais de uma copa do mundo.

Claro que é improvável que o Marrocos seja o vencedor da copa do mundo. Esse resultado é devido a boa campanha que a seleção vem demonstrando nessa edição. O que esse resultado realmente nos diz é: Se essas seleções continuarem obtendo os mesmos resultados nas partidas, o Marrocos sairia vitorioso.

Isso porque ele só levou, até agora, um gol, em cinco partidas. A própria França, que é a favorita, sofreu cinco gols por partida, nas cinco partidas que jogou. Ou seja, nosso algoritmo levou em consideração que o Marrocos sofreu cinco vezes menos gols que a França. Por isso esse resultado. 

Então, valeu a pena fazer esse experimento, mas ficamos com a lição de que devemos sempre procurar a maior quantidade de variáveis relevantes possíveis para fazer previsões e classificações. Confesso que estou ansioso para saber o real vencedor dessa edição e fazer a comparação com esses resultados. Até mais!

Referências

https://towardsdatascience.com/predicting-the-fifa-world-cup-2022-with-a-simple-model-using-python-6b34bdd4f2a5

https://ge.globo.com/futebol/copa-do-mundo/2022/

Copa do mundo ícones criados por Guillem Rodriguez – Flaticon

Outros Artigos

A Guerra Fria: Principais Eventos e Consequências
História

A Guerra Fria: Principais Eventos e Consequências

O artigo oferece uma análise dos principais eventos da Guerra Fria, como a crise dos mísseis de Cuba, a corrida espacial e a queda do Muro de Berlim. Discute as consequências políticas, econômicas e sociais desse período, além de seu impacto nas relações internacionais contemporâneas.

Ciclo do Nitrogenio
Curiosidades

Ciclo do Nitrogênio: Importância e Etapas

Este post explica as etapas do ciclo do nitrogênio, desde a fixação até a desnitrificação. Discute a importância desse ciclo para os ecossistemas e a agricultura, além de abordar os impactos da atividade humana sobre o ciclo natural do nitrogênio.

Fotossíntese
Biológicas

Fotossíntese: Processo e Importância para os Ecossistemas

Este post aborda o processo da fotossíntese, explicando as fases clara e escura, os pigmentos envolvidos e a importância desse processo para a vida na Terra. Discute também a relação da fotossíntese com a produção de oxigênio e a sustentabilidade dos ecossistemas.

Legal

® 2021-2024 Meu Guru | 42.269.770/0001-84 • Todos os direitos reservados

Entre para nossa lista e receba conteúdos exclusivos!