tl;dr: São R$ 849.300, em média, para cada ponto no Campeonato Brasileiro até a 30ª rodada.

Introdução

Sempre me pareceu óbvio que, quanto mais caro um time de futebol, melhor seria o desempenho dele nos campeonatos em que participa. Dado que o Globo Esporte publicou a matéria Quanto seu time gasta com salários? Veja ranking e entenda por que é tão difícil responder, decidi modelar estes dados e ver se isto de alguma forma se reflete na realidade.

Pra tal, combinei duas fontes:

Tabela do Brasileirão 30ª Rodada
Tabela do Brasileirão 30ª Rodada

Note que Vasco e Chapecoense disputaram apenas 29 jogos até o momento, um a menos que os demais, o que os deixa com um pouco menos pontos possíveis, mas acredito que isso não muda a leitura geral feita. Afinal, são dados de 299 partidas realizadas até o momento, em vez das 300 esperadas ao final da 30ª rodada do campeonato.

Análise

O cruzamento de informações foi feito pelo nome do clube, e o gráfico usa a folha salarial no eixo X e os pontos conquistados até o momento no eixo Y.

library(tidyverse)
theme_set(theme_minimal())
library(performance)
library(ggrepel)

folha <- data.frame(
  clube = c(
    "Flamengo", "Corinthians", "Cruzeiro", "Palmeiras", "Atlético-MG",
    "Santos", "Bahia", "Fluminense", "Grêmio", "São Paulo",
    "Vasco", "Botafogo", "Athletico-PR", "Internacional", "Bragantino",
    "Vitória", "Coritiba", "Mirassol", "Remo", "Chapecoense"
  ),
  folha_salarial = c(
    37.5, 30, 30, 30, 27,
    25, 22, 20, 20, 18,
    16, 15, 14, 12.5, 10,
    9, 8, 6, 5.5, 3.8
  )
)


classificacao <- data.frame(
  clube = c(
    "Flamengo", "Palmeiras", "Athletico-PR", "Fluminense", "Bahia",
    "Cruzeiro", "Atlético-MG", "Santos", "Bragantino", "São Paulo",
    "Coritiba", "Vitória", "Botafogo", "Vasco", "Mirassol",
    "Corinthians", "Internacional", "Grêmio", "Remo", "Chapecoense"
  ),
  P  = c(64, 63, 53, 51, 49, 48, 47, 42, 40, 39, 39, 36, 36, 35, 33, 32, 32, 31, 25, 18),
  J  = c(30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 29, 30, 30, 30, 30, 30, 29),
  V  = c(19, 18, 15, 14, 13, 14, 13, 11, 11, 11, 10, 10, 9, 9, 8, 8, 7, 7, 5, 3),
  E  = c(7, 9, 8, 9, 10, 6, 8, 9, 7, 6, 9, 6, 9, 8, 9, 8, 11, 10, 10, 9),
  D  = c(4, 3, 7, 7, 7, 10, 9, 10, 12, 13, 11, 14, 12, 12, 13, 14, 12, 13, 15, 17),
  GP = c(58, 52, 49, 48, 44, 46, 41, 46, 38, 35, 38, 33, 43, 36, 34, 31, 33, 32, 33, 30),
  GC = c(25, 22, 35, 37, 36, 44, 35, 45, 35, 35, 48, 44, 48, 42, 44, 38, 38, 40, 48, 61),
  SG = c(33, 30, 14, 11, 8, 2, 6, 1, 3, 0, -10, -11, -5, -6, -10, -7, -5, -8, -15, -31),
  `%` = c(71, 70, 58, 56, 54, 53, 52, 46, 44, 43, 43, 40, 40, 40, 36, 35, 35, 34, 27, 20)
)

dados <- folha |> left_join(classificacao, by = "clube")

ggplot(dados, aes(x = folha_salarial * 1e6, y = P)) +
  geom_point() +
  geom_smooth(method = "lm", se = TRUE, colour = "orange", fill = "gray80") +
  geom_label_repel(aes(label = clube), alpha = 0.7) + 
  scale_x_continuous(labels = scales::label_comma(big.mark = ".", decimal.mark = ",")) + 
  labs(x = "Folha Salarial (R$)", y = "Pontos no Brasileirão até 30ª Rodada",
       caption = "Vasco e Chapecoense disputaram apenas 29 jogos até o momento")

Modelo

A linha laranja indica o resultado esperado de pontos para cada valor de folha salarial na 30ª rodada. Por exemplo, um time com folha salarial de R$ 20 milhões, de acordo com este modelo, se espera que tenha obtido 42,38 pontos no torneio até a rodada atual.

Uma maneira de interpretar os resultados obtidos é comparar a linha laranja com a pontuação e folha salarial de cada time. Os times que estão acima da linha laranja estão fazendo mais pontos do que o esperando (ou seja, tem um desempenho melhor por real investido), enquanto os que estão abaixo tem desempenho pior do que o esperado.

Tomemos os times com folha salarial em torno de R$ 20 milhões. Grêmio, com 31 pontos, está com um desempenho 11,38 pontos pior do que o esperado, que seria de 42,38 pontos. Já o Fluminense, com 51 pontos, faz mais pontos com menos dinheiro: tem 8,62 pontos a mais do que se espera de um time com a sua folha salarial.

Para obter estes valores, ajustei uma regressão linear simples aos pontos obtidos no campeonato em função da folha salarial (em milhões de reais).

ajuste <- lm(P ~ folha_salarial, data = dados)
summary(ajuste)
## 
## Call:
## lm(formula = P ~ folha_salarial, data = dados)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -18.872  -4.162  -1.502   6.276  15.718 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     25.3915     4.1443   6.127  8.7e-06 ***
## folha_salarial   0.8493     0.2043   4.157 0.000593 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.602 on 18 degrees of freedom
## Multiple R-squared:  0.4898,	Adjusted R-squared:  0.4614 
## F-statistic: 17.28 on 1 and 18 DF,  p-value: 0.0005926

O efeito encontrado é estatisticamente significante e distinguível de zero, ou seja, a relação entre folha e pontos não parece obra do acaso. Na prática, a cada R$ 849.300 a mais na folha salarial, se espera que o clube tenha um ponto a mais na tabela de classificação da 30ª rodada.

Entretanto, o R² de 0,4898 nos informa que mais da metade da variabilidade dos pontos é explicada por outros fatores não considerados na análise, como qualidade do elenco além do salário, técnico, lesões, sorte e demais campeonatos disputados.

Quem faz mais (e menos) com o dinheiro que tem

O resíduo mostra a diferença entre os pontos que o clube fez e os que o modelo previa para a sua folha.

Acima do esperado

ClubeFolha (R$ mi)PontosPrevistoDiferença
Athletico-PR14,05337,3+15,7
Palmeiras30,06350,9+12,1
Fluminense20,05142,4+8,6

Abaixo do esperado

ClubeFolha (R$ mi)PontosPrevistoDiferença
Corinthians30,03250,9−18,9
Grêmio20,03142,4−11,4
Chapecoense3,81828,6−10,6

Alguns destaques:

  • Athletico-PR é o clube que mais entrega pontos por real investido: tem a 13ª folha e está na 3ª colocação.
  • Palmeiras divide a segunda maior folha com Corinthians e Cruzeiro (R$ 30 mi cada) e está na vice-liderança.
  • Corinthians tem a mesma folha do Palmeiras e 31 pontos a menos. É o resíduo mais extremo do conjunto.
  • Flamengo lidera com a maior folha, mas ainda assim acima do que o modelo previa, ou seja, não é só dinheiro.

Validade do Modelo

Ao validar o modelo, vemos que nenhuma das hipóteses a respeito dos resíduos é violada.

check_model(ajuste)

Cuidados antes de tirar conclusões

Lembre-se que correlação não é causa. Clubes com mais dinheiro também têm mais torcida, estrutura e elenco. Salário alto é um sinal de investimento, não uma alavanca isolada.

Além disso, utilizei apenas 20 observações e uma temporada parcial. Os intervalos de confiança são largos (de 0,42 a 1,28 ponto por milhão).

A salarial folha é uma estimativa, conforme diz a matéria do ge. Seu próprio título afirma que é difícil responder quanto cada time gasta, então os valores têm margem de erro que o modelo não considera.

Por fim, a folha salarial não é tudo. Premiações, bônus, direitos de imagem e custo de contratações ficam de fora ou entram de forma desigual.