Categorias
Algoritmo Análise de Dados Inteligência Artificial

Copa do Mundo, algoritmos e previsões: é possível usar inteligência artificial para descobrir quem será o campeão?

Quando a Copa do Mundo começa, bilhões de olhos se voltam para os gramados. Torcedores fazem suas apostas, comentaristas apontam favoritos e especialistas analisam elencos, táticas e retrospectos.

Mas existe outra competição acontecendo fora dos estádios. Em universidades, centros de pesquisa, empresas de análise de dados e até bancos de investimento, cientistas, estatísticos e especialistas em inteligência artificial travam uma disputa silenciosa: desenvolver modelos capazes de prever o desempenho das seleções e estimar quem tem mais chances de levantar a taça.

A pergunta parece simples: É possível usar ciência de dados para prever o campeão da Copa do Mundo? 

A resposta é muito mais interessante do que um simples “sim” ou “não” e nos leva a uma fascinante combinação de estatística, aprendizado de máquina, simulações computacionais e teoria das probabilidades.

Quando a ciência entrou em campo

A ideia de prever resultados esportivos não é nova. Há décadas, pesquisadores utilizam métodos estatísticos para analisar o desempenho de equipes e estimar resultados futuros. Nas últimas décadas, porém, a quantidade de dados disponíveis transformou completamente esse cenário. 

Hoje, cada partida produz uma enorme quantidade de informações: posse de bola, finalizações, passes, desempenho individual dos atletas, histórico de confrontos, rankings internacionais e indicadores de desempenho físico e técnico.

Com esse volume de dados, cientistas passaram a desenvolver modelos capazes de estimar a força relativa de cada seleção e calcular probabilidades para os diferentes cenários de um torneio. 

O objetivo não é adivinhar o futuro. É algo mais sofisticado: medir a probabilidade de que determinados eventos aconteçam. 

Nessa imensidão de dados, a Copa do Mundo passou a ser vista também como um grande laboratório para cientistas de dados.

Entre os grupos mais conhecidos nessa área estão pesquisadores da TU Dortmund University, na Alemanha, e da University of Innsbruck, na Áustria. Há anos, esses pesquisadores desenvolvem modelos estatísticos para prever resultados de grandes competições internacionais, combinando estatística clássica, aprendizado de máquina e simulações computacionais.

O estatístico Achim Zeileis, da University of Innsbruck, integra uma das equipes acadêmicas mais conhecidas por desenvolver modelos de previsão para Copas do Mundo.

Mas as universidades não estão sozinhas. Instituições financeiras como o Goldman Sachs também publicam previsões para a Copa do Mundo, utilizando modelos próprios baseados em rankings e probabilidades. Para a Copa de 2026, por exemplo, o banco utilizou uma versão aprimorada do sistema Elo para calcular as chances de cada seleção conquistar o título.

Durante muitos anos, outro protagonista importante foi o site esportivo FiveThirtyEight, que se tornou referência mundial por suas previsões baseadas em dados para eleições, esportes e eventos diversos. Seus modelos para Copas do Mundo ficaram conhecidos pela transparência metodológica e pela riqueza das análises apresentadas ao público. 

O que exatamente esses modelos tentam prever?

Ao contrário do que muita gente imagina, os pesquisadores não tentam responder apenas à pergunta “quem será campeão?”. Na verdade, essa é apenas uma das dezenas de previsões produzidas pelos modelos. 

Antes mesmo do início da competição, é comum que eles estimem:

  • Probabilidade de classificação na fase de grupos;
  • Probabilidade de chegar às oitavas de final;
  • Probabilidade de alcançar as quartas;
  • Probabilidade de disputar as semifinais;
  • Probabilidade de chegar à final;
  • Probabilidade de conquistar o título.

Alguns pesquisadores vão além. Modelos estatísticos também já foram utilizados para analisar a justiça dos sistemas de classificação para a Copa do Mundo, calcular probabilidades de qualificação de seleções e avaliar o impacto de mudanças no formato do torneio. Ou seja, a ciência de dados não se limita a prever resultados. Ela também ajuda a compreender a própria estrutura das competições. 

O ranking que nasceu no xadrez e conquistou o futebol

Uma das ferramentas mais importantes na previsão esportiva surgiu com o xadrez. 

Na década de 1960, o físico e enxadrista americano Arpad Elo desenvolveu um método para medir a força relativa dos jogadores. A lógica era simples. Se um jogador forte derrota um adversário fraco, o resultado era esperado e gera poucos ajustes na pontuação. Mas, quando um jogador considerado inferior vence um favorito, a pontuação sofre uma mudança significativa.

Com o tempo, essa ideia foi adaptada para diversas modalidades esportivas, incluindo o futebol.

Hoje, o sistema Elo é um dos pilares de inúmeros modelos de previsão da Copa do Mundo. Ele permite estimar a força relativa das seleções com base em seus resultados recentes, considerando também a qualidade dos adversários enfrentados.

Um exemplo pode ser visto na imagem abaixo. Nela, pesquisadores analisaram partidas de Brasil e Alemanha antes da Copa de 2018 para verificar como a força dos adversários, medida pelo sistema Elo, se relacionava com o número de gols marcados e sofridos. Nos gráficos superiores, cada ponto representa uma partida e mostra a relação entre o rating Elo do adversário e os gols marcados pela seleção. Nos gráficos inferiores, a mesma análise é feita para os gols sofridos. As linhas pretas indicam a tendência estimada pelo modelo estatístico. De forma geral, observa-se que, à medida que a qualidade do adversário aumenta, o número de gols marcados tende a diminuir, enquanto a quantidade de gols sofridos pode aumentar. Esse tipo de relação ajuda os modelos a estimar o desempenho esperado de uma seleção diante de diferentes oponentes. 

Relação entre o rating Elo dos adversários e o desempenho ofensivo e defensivo de Brasil e Alemanha. Fonte: Gilch e Müller (2018), On Elo Based Prediction Models for the FIFA World Cup 2018.

O sistema Elo atribui uma pontuação para cada equipe com base em seus resultados anteriores. Vencer uma seleção forte gera mais pontos do que vencer uma seleção considerada mais fraca. 

Esse método não serve apenas para classificar seleções. Ele também fornece informações que ajudam os modelos a estimar quantos gols uma equipe tende a marcar ou sofrer contra adversários de diferentes níveis. 

Ao longo do tempo, esse mecanismo produz uma estimativa bastante consistente da força relativa de cada seleção.

Quando a estatística encontra a inteligência artificial

O Elo é apenas o ponto de partida. Os modelos mais modernos combinam diferentes técnicas estatísticas e de aprendizado de máquina.

Em um estudo desenvolvido para a Copa de 2018, pesquisadores liderados por Andreas Groll compararam diversas abordagens, incluindo regressões estatísticas, métodos de ranking e algoritmos de Random Forest. O resultado mostrou que a combinação de diferentes técnicas produzia previsões mais precisas do que qualquer método isolado.

Mais recentemente, pesquisadores desenvolveram modelos híbridos que combinam:

  • Modelos lineares generalizados;
  • Random Forest;
  • Extreme Gradient Boosting (XGBoost);
  • Rankings de seleções;
  • Dados históricos de partidas;
  • Avaliações individuais de jogadores.

Essa combinação ilustra uma tendência cada vez mais comum na ciência de dados; em vez de buscar um único algoritmo perfeito, os pesquisadores combinam diferentes modelos para aproveitar os pontos fortes de cada abordagem. 

A técnica que simula milhares de Copas do Mundo

Imagine que você pudesse assistir à mesma Copa do Mundo cem mil vezes.

Em algumas versões, o Brasil seria eliminado precocemente 😫. Outros cenários mostrariam o país chegando à final. Certas simulações resultariam em uma seleção considerada favorita conquistando o título. Em outras, ocorreria uma zebra histórica.

É exatamente isso que os computadores fazem. Depois de estimar as probabilidades de cada partida, os pesquisadores utilizam um método conhecido como Simulação de Monte Carlo.

Nesse processo, o torneio inteiro é reproduzido milhares, ou até centenas de milhares, de vezes virtualmente. Ao repetir esse processo milhares de vezes, o modelo calcula com que frequência cada cenário ocorre. O resultado não é um único campeão previsto, mas uma distribuição de probabilidades.  

Os resultados dessas simulações permitem calcular a frequência com que cada cenário acontece. Por exemplo: se uma seleção vencer 18 mil vezes em um conjunto de 100 mil simulações, seu modelo atribuirá aproximadamente 18% de chance de título.

Probabilidade de conquista da Copa do Mundo de 2026 estimada por modelos de aprendizado de máquina e simulações estatísticas. Os percentuais foram obtidos a partir de milhares de simulações do torneio. Observe que, mesmo entre as seleções favoritas, as chances de título permanecem relativamente baixas, refletindo a elevada incerteza característica da competição. Fonte: Zeileis et al. (2026), Football meets machine learning: Forecasting the 2026 FIFA World Cup.

Perceba algo importante. Mesmo a seleção favorita costuma ter probabilidades relativamente baixas. 

E isso nos leva a uma das principais lições da ciência de dados.

O maior erro de interpretação sobre previsões

Quando uma previsão aponta uma seleção com 18% de chance de ser campeã, muitas pessoas interpretam isso como: 

“O modelo está dizendo que ela será campeã.”

Mas não é isso que significa. Na verdade, o modelo está afirmando justamente o contrário. Ele está dizendo que existe 82% de chance de outro cenário acontecer.

A ciência de dados não trabalha com certezas. Ela trabalha com probabilidades.

Por isso, os pesquisadores frequentemente alertam que o objetivo dos modelos não é eliminar a incerteza, mas quantificá-la.

O estatístico Andreas Groll, um dos pesquisadores mais conhecidos nessa área, costuma destacar que até mesmo os favoritos raramente ultrapassam a marca de 20% de probabilidade de título em torneios internacionais.

Isso ajuda a explicar por que o futebol continua sendo tão difícil de prever. 

Quando os modelos acertam…

Ao longo dos anos, diversos sistemas de previsão ganharam notoriedade por apontar corretamente algumas seleções campeãs entre os favoritos.

Antes da Copa de 2014, a Alemanha aparecia entre os principais candidatos em diversos modelos. Em 2018, a França figurava consistentemente entre os favoritos. Em 2022, a Argentina também aparecia entre as seleções com maiores probabilidades de conquista do torneio em diferentes sistemas de previsão.

A Alemanha aparecia entre as principais favoritas em diversos modelos estatísticos antes da Copa de 2014 e acabou conquistando o título.

Esses acertos frequentemente chamam atenção da imprensa e ajudam a popularizar os modelos. 

Mas a história não termina aí.

…e quando eles erram feio

A Copa do Mundo também está cheia de exemplos que mostram os limites da previsão estatística.

Em 2018, alguns modelos acadêmicos apontavam a Alemanha como favorita ao título. Um estudo baseado em rankings Elo e simulações de Monte Carlo indicava os alemães como os candidatos mais fortes ao troféu.

O que aconteceu? A Alemanha foi eliminada ainda na fase de grupos.

Foi uma das maiores surpresas da história recente do torneio e um lembrete poderoso de que o futebol continua sendo um ambiente altamente imprevisível.

Apesar de figurar entre as favoritas em alguns modelos de previsão, a Alemanha foi eliminada ainda na fase de grupos da Copa de 2018.

Lesões, expulsões, erros de arbitragem, decisões táticas e até fatores psicológicos podem alterar completamente o destino de uma competição. Nenhum modelo consegue capturar tudo.

A Copa do Mundo como laboratório da incerteza

Talvez seja justamente por isso que tantos pesquisadores se interessam pelo tema.

Para Achim Zeileis, pesquisador da University of Innsbruck e colaborador de diversos projetos de previsão esportiva, grandes torneios representam uma oportunidade única para aproximar o público dos conceitos de probabilidade e estatística. Afinal, poucas situações ilustram tão bem a diferença entre possibilidade e certeza quanto uma Copa do Mundo.

Uma seleção pode ser a favorita, mas isso não significa que ela vencerá. Uma equipe pode ter apenas 5% de chance de conquistar o título, mas isso não significa que seja impossível.

Na linguagem da ciência de dados, ambos os cenários são perfeitamente compatíveis.

Muito além do futebol

No fundo, a história dos algoritmos que tentam prever a Copa do Mundo não é apenas uma história sobre esporte. Ela é uma história sobre como lidamos com a incerteza.

Os mesmos conceitos utilizados para estimar as chances de uma seleção chegar à final também aparecem em áreas como saúde, economia, logística e segurança pública.

Em todos esses contextos, o objetivo não é prever o futuro com perfeição, é compreender padrões, medir riscos e tomar decisões melhores com base nos dados disponíveis.

Talvez por isso a Copa do Mundo seja tão fascinante para cientistas de dados, porque ela nos lembra de algo fundamental: mesmo em uma era de algoritmos avançados, aprendizado de máquina e IA, ainda existem acontecimentos que escapam das previsões.

Mas diante da incerteza, conhecimento e probabilidade costumam ser aliados muito mais valiosos do que qualquer palpite.

Categorias
Análise de Dados Seminário Webinar

Seminário debate políticas públicas de enfrentamento à violência doméstica e familiar contra a mulher

No dia 06 de maio, será realizado o seminário “Políticas Públicas de Enfrentamento à Violência Doméstica e Familiar Contra a Mulher e o Papel do Sistema Judiciário“, organizado pelo Grupo de Pesquisa Estado e Políticas Públicas (EPP/UFRN).

Será apresentado o cenário da violência doméstica e familiar contra a mulher, sobretudo no sistema judiciário cearense e os desafios no desenvolvimento de políticas públicas. Na oportunidade, a idealizadora do “Painel da Mulher” – Software Proteção na Medida – Tribunal de Justiça do Estado do Ceará (TJCE), Profa. Ms. Rebeca Sabóia Quezado, explanará acerca da rede protetiva voltada à conscientização e orientação sobre o tema da violência contra a mulher no contexto estudado.

 

Palestrantes:

Prof. Dr. José Macêdo: Cientista-chefe de Dados do Governo do Estado do Ceará e Coordenador do Insight Data Science Lab da Universidade Federal do Ceará (UFC).

Profa. Ms. Rebeca Sabóia Quezado
: Mestre em Direito Privado – Relações privadas, sociedade e desenvolvimento e Docente e Pesquisadora no Insight Data Science Lab da Universidade Federal do Ceará (UFC).

 

Público-alvo: discentes, docentes, pesquisadores, gestores e demais interessados no tema.

Data: 06/05/2022

Hora: 10h

Google Meet – Vagas limitadas (100 pessoas)

Inscrições: Via SIGAA UFRN – Caminho: SIGAA > Extensão > Eventos > Filtrar evento por departamento > Inserir “Departamento de Políticas Públicas”> Inscrever-se no evento.

 

Em caso de dúvidas, envie mensagem para: estadoepoliticaspublicasufrn@gmail.com.

 

Categorias
Análise de Dados Dataframes Pandas

10 funções mais usadas para manipular dataframes no Pandas

O Pandas é uma das bibliotecas mais utilizadas para analisar dados em Python, além de ser uma ferramenta poderosa, flexível e confiável para muitos analistas de dados. Existem algumas funções conhecidas, bem como técnicas não tão formais que podem tornar a vida mais fácil para qualquer analista de dados, seja ele um profissional ou um entusiasta.

Neste artigo, serão discutidas algumas funções úteis e técnicas significativas, todas  com exemplos. Com certeza você já usou algumas dessas funções com frequência, mas elas podem não ser tão familiares para todos. No geral, você enriquecerá suas habilidades em Análise de Dados.

No decorrer deste artigo você verá as seguintes funções:

  • unique e nunique 
  • describe
  • sort_values
  • value_counts
  • isnull 
  • fillna 
  • groupby 
  • map e seu uso para codificação categórica
  • apply e lambda
  • pivot
Vamos começar

Antes de usar as funções mencionadas acima, você pode criar um dataframe usando o dataset Kaggle Titanic, você pode baixá-lo aqui . Dessa forma, uma variedade de opções pode ser explorada. Como alternativa, qualquer conjunto de dados de código aberto pode ser usado para a prática.

 

1.  unique e nunique

A função unique no Pandas retorna uma lista dos elementos únicos com base na ocorrência. Esta função é mais rápida do que a unique do NumPy e também inclui valores NaN. Isso é particularmente útil para verificar os diferentes valores em um campo categórico.

data['Embarked'].unique()

Saída:

array (['S', 'C', 'Q', nan], dtype = objeto)

A função Nunique, por outro lado, conta os valores distintos das colunas. Os valores NaN podem ser ignorados. Isso mostra apenas o número de categorias diferentes presentes em uma coluna de um dataframe.

data['Embarked'].nunique()

Saída: 3

 

2. describe

Esta função mostra estatísticas descritivas, como média, desvio padrão, máximo, mínimo e outras tendências centrais, além da forma da distribuição. Isso exclui os valores NaN do resumo. Isso é útil para se ter uma ideia sobre a distribuição dos campos de dados e outliers, se houver. O percentil da saída pode ser personalizado mencionando a faixa de percentis no parâmetro da função.

data.describe()

data.describe()

 

Saída:

3. sort_values

Esta função altera a ordem dos valores em uma coluna classificando-a. Portanto, podemos usar isso para mostrar o dataset de acordo com nossa necessidade, classificando em ordem crescente ou decrescente.

Podemos definir o parâmetro “ascending” verdadeiro ou falso, que por padrão é verdadeiro. Também podemos alterar a classificação por índice ou coluna definindo o parâmetro “eixo” 0 ou 1. Além disso, podemos classificar várias colunas mencionando-as em uma lista, por exemplo:

(e.g. data.sort_values(by=[‘Age’,’Pclass’, ascending=[False,True])
data.sort_values(by='Age',ascending=False)

Saída:

 

4. value_counts

Esta função retorna o valor da contagem para cada item exclusivo presente na coluna. Os valores são exibidos em ordem decrescente para que o elemento mais frequente venha primeiro. Isso exclui os valores nulos. Aqui, veremos o número de homens e mulheres a bordo em diferentes classes, chamando a função value_counts () da seguinte maneira:

data[['Pclass','Sex']].value_counts()

 

Saída:

5. isnull 

Esta função descobre se há algum valor ausente presente em um objeto do tipo array. Esta função retorna valores booleanos após verificar os valores ausentes. Estamos criando uma lista com um valor nulo e quando ela é passada pela função isnull (), ela dá saída com uma lista booleana.

Isso também pode ser útil quando verificamos se há valores ausentes em um grande dataframe. Podemos calcular o número total de valores ausentes de uma coluna adicionando a função sum () ao final da função isnull (). Aqui, pegamos nosso dataset  e verificamos para cada coluna se há algum valor ausente e mostramos o mesmo.

 

#tirando cada coluna do dataframe

forcolindata.columns:

#verificando se há algum nulo na coluna

ifdata[col].isnull().sum()>0:

#se for nulo, número total de nulos nas colunas armazenadas

total_null=data[col].isnull().sum() print('Column{}hastotalnull{},i.e.{}%'.format(col,total_null,round(total_null*100/len(data),2)))

 

Saída:

 

6. fillna

Esta função é usada para preencher os valores ausentes com base no método especificado. Fillna usa parâmetros como valor (um valor que é usado para preencher o valor ausente) e método (como bfill, ffill, etc). Em nosso conjunto de dados de exemplo, o campo “Idade” tem um total de 177 valores ausentes. Vamos preenchê-lo com a mediana de “Idade” usando a função fillna ().

 

data['Age'].fillna(value=data['Age'].median(),inplace=True)
data['Age'].isnull().sum()

Saída: 0

O parâmetro “valor” de fillna () também pode ser obtido de outro groupby complexo ou dataframe ou dicionário.

 

7. groupby 

A função Pandas groupby( ) é usada para dividir os dados e ajudar a aplicação de alguma função a eles e no final combinar o resultado para outro objeto. Frequentemente precisamos dividir os dados e aplicar alguma agregação (por exemplo, soma, média, contagem, etc.) ou transformá-los (por exemplo, para preencher valores ausentes ou padronizar dados), a função groupby é útil nessas situações.

 

# queremos ver para cada campo de gênero máximo, mínimo, média e mediana de idade

data.groupby(['Sex'])['Age'].agg(['max','min','mean','median'])

Saída:

 

8. map 

A função map ( ) no Pandas é usada para mapear séries e substituir valores de uma série por outro valor associado a um dicionário, série ou função. Esta função é frequentemente usada para substituir valores de uma coluna de um dataframe ou uma série, mas lembre-se que todos os valores têm de ser do mesmo tipo!

Em nosso dataset, suponha que queremos converter o campo de gênero em um campo binário, ou seja, substituir “masculino” pelo valor 1 e feminino pelo valor 0. O mesmo pode ser feito facilmente da seguinte maneira:

data['Sex'].head()

 

Saída:

#crie um dicionário para substituir os valores
gender = {'male':1, 'female':0}
#chame a função map e passe o dicionário para mapear os valores da coluna
data['Sex'].map(gender).head()

 

Saída:

 

9. apply

A função apply() no Pandas certamente é uma das funções mais versáteis entre todas. Nós podemos utilizar uma função apply() e ela se aplicará a todo o dataframe (ou a uma série particular). Isso ajuda a modificar os dados de acordo com a condição de uma maneira muito flexível. Vamos ver um exemplo simples, aqui temos um dataframe e uma das colunas tem marcas que queremos converter em uma porcentagem.

df=pd.DataFrame({'Name':['X','Y','Z'],'Marks':[150,120,175]})
df

 

Saída:

def percentage_marks(x):
return x/2
df['Marks'].apply(percentage_marks)

 

Saída:

Aplicar função também pode ser usada com função anônima ou função lambda. Suponha que tenhamos que converter um campo contínuo como “idade” em uma coluna de faixa etária diferente ou converter um campo categórico em um campo codificado por rótulo e, em seguida, aplicar a função junto com a função lambda é muito útil nessas situações.

data['Age_bin']=data['Age'].apply(lambda x : 1 if x<=30 else
(2 if x>30 and x<=45 else</pre>
 (3 if x>45 and x<=60 else 4)))

 

A coluna Age_bin será criada da seguinte forma

 

10. pivot

A função pivot remodela o dataset por valores de índice ou coluna. Essa função é basicamente semelhante à tabela dinâmica. Ele usa o valor exclusivo de uma coluna para formar um índice de um dataset. Ao contrário da função groupby, o pivot não oferece suporte à agregação de dados. Veja exemplo abaixo:

df=pd.DataFrame({'Class':['1st','2nd','3rd','1st','2nd','3rd'],'Section':</pre>
<pre>['A','A','A','B','B','B'],'Gr':[1,2,3,4,5,6]})</pre>
<pre>df

 

Saída:

 

df.pivot(index='Class',columns='Section',values='Gr')

 

Saída:

__  __  __

 

Esperamos que estas funções contribuam ainda mais na sua Análise de Dados, especialmente para você que está iniciando no  mundo do Python e Pandas. Acompanhe o nosso blog para saber sempre mais!

Artigo original, Analytics Vidhya

 

Sair da versão mobile