FIFA-Brasil

Clauder Noronha

2022-02-27

A evolução dos esquemas táticos no futebol:

Temos uma bela explicação sobre a evolução das táticas dos melhores do mundo." (Nexo)

Como vamos atacar o problema?

vamos montar a seleção brasileira de futebol seguindo a formação 4 - 1 - 4 - 1 utilizada pelo Tite na Copa do Mundo de 2018. Isso significa que iremos precisar de 4 zagueiros, 1 volante, 2 meias, 2 pontas e 1 atacante. Agora, quais as habilidades necessárias em cada uma dessas posições?

A partir dessas habilidades podemos criar métricas para medir o quão bom um jogador é para uma determinada posição.

Quais variáveis vamos utilizar?

###Filtrando para a Seleção Brasileira

data <- data %>% 
  filter(Nationality == "Brazil")

###Criando as Métricas

data <- data %>% 
  mutate(metrica_goleiro = GKHandling * GKReflexes,
         metrica_defesa  = Marking * Interceptions,
         metrica_volante = LongPassing * Crossing,
         metrica_meia    = ShortPassing * Finishing,
         metrica_pontas  = Finishing * Crossing,
         metrica_atacante = Finishing * Volleys)

##Análise Exploratoria

###Goleiros

ggplot(data, mapping = aes(x = metrica_goleiro)) +
  geom_histogram()
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#> Warning: Removed 2 rows containing non-finite values (stat_bin).

Mas o que raios aconteceu? É de se esperar que nem todo jogador tenha habilidade de goleiro. Logo para ter uma noção da distribuição dos goleiros nos limitar àqueles que jogam nessa posição.

data %>% 
  filter(Position == "GK") %>% 
  ggplot(data, mapping = aes(x = metrica_goleiro))+
  geom_histogram()
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.


data %>% 
  ggplot(mapping = aes(x = GKReflexes, y = GKPositioning)) +
  geom_point()
#> Warning: Removed 2 rows containing missing values (geom_point).

data %>% 
  select(Name, metrica_goleiro) %>% 
  arrange(desc(metrica_goleiro)) %>% 
  head(10)
#> # A tibble: 10 x 2
#>    Name             metrica_goleiro
#>    <chr>                      <dbl>
#>  1 Alisson                     7128
#>  2 Ederson                     6960
#>  3 Raphaelito Anjos            6552
#>  4 Neto                        6478
#>  5 Gabri Prestão               6150
#>  6 Gomes                       5976
#>  7 Fred Aníbão                 5929
#>  8 Renan Ribeiro               5850
#>  9 Matheus                     5840
#> 10 Douglas                     5775

###Zagueiro

data %>% 
  ggplot(mapping = aes(x = Marking, y = Interceptions ))+
  geom_point()
#> Warning: Removed 2 rows containing missing values (geom_point).

ggplot(data, mapping = aes(x = metrica_defesa)) + 
  geom_histogram()
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#> Warning: Removed 2 rows containing non-finite values (stat_bin).

data %>% 
  select(Name, metrica_defesa) %>% 
  arrange(desc(metrica_defesa)) %>% 
  head(10)
#> # A tibble: 10 x 2
#>    Name             metrica_defesa
#>    <chr>                     <dbl>
#>  1 Thiago Silva               7832
#>  2 Casemiro                   7656
#>  3 Miranda                    7650
#>  4 Fernandinho                7480
#>  5 Allan                      7310
#>  6 Marquinhos                 7140
#>  7 Josué Chiamulera           7140
#>  8 Naldo                      7138
#>  9 Lucas Leiva                7134
#> 10 Fabinho                    6972

Volantes

data %>% 
  ggplot(mapping = aes(x = LongPassing, y = Crossing)) +
  geom_point()
#> Warning: Removed 2 rows containing missing values (geom_point).

ggplot(data, mapping = aes(x = metrica_volante)) +
  geom_histogram()
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#> Warning: Removed 2 rows containing non-finite values (stat_bin).

data %>% 
  select(Name, metrica_volante) %>% 
  arrange(desc(metrica_volante)) %>% 
  head(10)
#> # A tibble: 10 x 2
#>    Name            metrica_volante
#>    <chr>                     <dbl>
#>  1 Alex Telles                7654
#>  2 Marcelo                    6840
#>  3 Ronaldo Cabrais            6806
#>  4 Dani Alves                 6715
#>  5 Filipe Luís                6622
#>  6 Coutinho                   6557
#>  7 Jefferson                  6468
#>  8 Ganso                      6320
#>  9 Adriano                    6237
#> 10 Mariano                    6225

Meias

data %>% 
  ggplot(mapping = aes(x = ShortPassing, y =  Finishing)) + 
  geom_point()
#> Warning: Removed 2 rows containing missing values (geom_point).

ggplot(data, mapping = aes(x = metrica_meia)) +
  geom_histogram()
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#> Warning: Removed 2 rows containing non-finite values (stat_bin).

data %>% 
  select(Name, metrica_meia) %>% 
  arrange(desc(metrica_meia)) %>% 
  head(10)
#> # A tibble: 10 x 2
#>    Name             metrica_meia
#>    <chr>                   <dbl>
#>  1 Roberto Firmino          7482
#>  2 Neymar Jr                7308
#>  3 Coutinho                 6952
#>  4 Paulinho                 6804
#>  5 Jonas                    6688
#>  6 Willian José             6552
#>  7 Oscar                    6536
#>  8 Anderson Talisca         6480
#>  9 Giuliano                 6478
#> 10 Raffael                  6474

Pontas

data %>% 
  ggplot(mapping = aes(x = Finishing, y = Crossing)) + 
  geom_point()
#> Warning: Removed 2 rows containing missing values (geom_point).

ggplot(data, mapping = aes(x = metrica_pontas)) +
  geom_histogram()
#> `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
#> Warning: Removed 2 rows containing non-finite values (stat_bin).

data %>% 
  select(Name, metrica_pontas) %>% 
  arrange(desc(metrica_pontas)) %>% 
  head(10)
#> # A tibble: 10 x 2
#>    Name             metrica_pontas
#>    <chr>                     <dbl>
#>  1 Neymar Jr                  6873
#>  2 Marcelo                    6300
#>  3 Roberto Firmino            6264
#>  4 Coutinho                   6241
#>  5 Anderson Talisca           6240
#>  6 Jonas                      6160
#>  7 Hulk                       6156
#>  8 Ronaldo Cabrais            6142
#>  9 Raffael                    6084
#> 10 Giuliano                   6083

Atacantes

data %>% 
  select(Name, metrica_atacante) %>% 
  arrange(desc(metrica_atacante)) %>% 
  head(10)
#> # A tibble: 10 x 2
#>    Name             metrica_atacante
#>    <chr>                       <dbl>
#>  1 Jonas                        7480
#>  2 Neymar Jr                    7308
#>  3 Roberto Firmino              7047
#>  4 Louri Beretta                6970
#>  5 Willian José                 6720
#>  6 Charles                      6720
#>  7 Raffael                      6474
#>  8 Taison                       6232
#>  9 Anderson Talisca             6080
#> 10 Paulinho                     6075

Selecionando nossos Jogadores

goleiro <- data %>%
  arrange(desc(metrica_goleiro)) %>% 
  head(1)

zagueiros <- data %>%
  arrange(desc(metrica_defesa)) %>% 
  head(4)

volante <- data %>%
  arrange(desc(metrica_volante)) %>% 
  head(1)
  
meias <- data %>%
  arrange(desc(metrica_meia)) %>% 
  head(1)
  

  
atacante <- data %>%
  arrange(desc(metrica_atacante)) %>% 
  head(1)


nosso_time <- goleiro %>% 
  bind_rows(zagueiros, 
            volante,
            meias,
           
            atacante)

###pelo estudo e pelas metricas de cada jogador, temos uma seleção perfeita para a competição.

nosso_time %>% 
  select(Name)
#> # A tibble: 8 x 1
#>   Name           
#>   <chr>          
#> 1 Alisson        
#> 2 Thiago Silva   
#> 3 Casemiro       
#> 4 Miranda        
#> 5 Fernandinho    
#> 6 Alex Telles    
#> 7 Roberto Firmino
#> 8 Jonas

Caso um olheiro precise de jogadores ele pode usar essa metricas para escolher o melhor jogar para ser contratado par ao seu time.