Introdução a Análise Esportiva

Acesso a dados de futebol

2023-10-19

Introdução

Para acesso a dados abertos sobre futebol - jogadores, equipes, competições - podem ser utilizadas as seguintes plataformas:

Do mesmo modo, para integração do R (RStudio) com estes sites, pode-se utilizar o pacote worldfootbalR.

Acesso aos dados

Para saber as URL´s de identificação de cada jogador, disponíveis nos sites Fbref TransferMarkt, basta utilizar a função player_dictionary_mapping() do pacote worldfootballR, como mostrado abaixo:

#Carregando o pacote
library(worldfootballR)
#Conhecendo a base de dados dos jogadores
id_jogadores <- player_dictionary_mapping()

Do mesmo modo, para obter os dados dos campeonatos disponíveis em cada país, basta utilizar a função fb_league_urls do mesmo pacote.

#Conhecendo os identificadores de campeonatos
brasileirao_a <- fb_league_urls(country = 'BRA',
                                 gender = 'M',
                                 season_end_year = 2022,
                                 tier = '1st')

Por fim, é possível identificar os dados de uma equipe. Como nos casos anteriores, o identificador de equipe é dado a partir da URL.

library(magrittr)

#Conhecendo os identificadores de equipes
equipes_brasileirao_a22 <- fb_teams_urls(brasileirao_a) %>% 
    as.data.frame()

Primeira Aplicação

A média de gols e assistências do Tiquinho Soares no brasileirão foi maior que a média da competição?

library(dplyr)

id_tiquinho <- player_dictionary_mapping() %>% 
  select(PlayerFBref, UrlFBref) %>% 
  filter(PlayerFBref == 'Tiquinho Soares')

analise_tiquinho <- fb_player_season_stats(id_tiquinho[1,2],
                                           stat_type = 'standard') %>% 
  filter(Season == '2023', Comp == '1. Série A')

Agora, devemos avaliar as estatísticas das equipes na mesma competição.

analise_brasileirao <- fb_season_team_stats(
                                 country = 'BRA',
                                 gender = 'M',
                                 season_end_year = 2023,
                                 tier = '1st',
                                 stat_type = 'standard') %>% 
                                 select(Num_Players, Gls, Ast) %>% 
                                 mutate(Gls = Gls/Num_Players,
                                        Ast = Ast/Num_Players) %>% 
                                 summarise(Gls = mean(Gls),
                                           Ast = mean(Ast))
library(ggplot2)
analise_tiquinho <- analise_tiquinho %>% 
  select(Gls,Ast) %>% 
  mutate(referencia = 'Tiquinho Soares')

analise_brasileirao <- analise_brasileirao %>% 
  mutate(referencia = 'Média Jogadores')
  
consolidado <- bind_rows(analise_brasileirao, analise_tiquinho)

Analisando Graficamente a superioridade do Tiquinho Soares

library(plotly)
grafico_gols <- consolidado %>% 
  ggplot() +
  geom_col(mapping = aes(x = Gls, y = referencia)) +
  labs(title = 'Superioridade de Tiquinho Soares no Brasileirão',
       subtitle = 'Botafogo Campeão',
       x = 'Número de Gols',
       y = '')
  
ggplotly(grafico_gols)