A fórmula de valorização

O mistério chega ao fim

João Coelho
CartolaAnalitico
5 min readSep 9, 2020

--

Atualização 14/09/2020

Após investigar mais a fundo consegui desvendar a fórmula exata de valorização do CartolaFC:

A fórmula geral de valorização do CartolaFC

A fórmula foi testada e obtive erros insignificantes. Aqui o resultado da análise de erro nas 10 primeiras rodadas de 2020:

Erro observado para as 10 primeiras rodadas de 2020

É importante enfatizar que esse modelo não tem nenhum parâmetro de ajuste, portanto não pode sofrer de sobreajuste. Os erros observados parecem ser relacionados à pequenas indefinições sobre qual é o preço mínimo de um jogador, que ainda não entendi como é tratado pelo Cartola. Há também alguns pequenos desvios devido a problemas técnicos com alguns jogadores que são removidos do mercado no meio da rodada.

Para os jogadores que foram inseridos no meio do campeonato, as médias de preço e pontos são calculadas com base no número de rodadas desde que foram adicionados. Existe também uma “feature” do sistema que conta a média de preços ao fim de cada rodada. A primeira rodada então é tratada de forma especial, já que não houve rodada anterior.

Assim declaro que a fórmula de valorização agora é conhecida e disponível para todos publicamente aqui. Disponibilizamos também um exemplo de implementação do modelo aqui.

Ao longo dos anos venho aprimorando meu entendimento da fórmula de valorização do CartolaFC. Já escrevi sobre isso aqui e o algoritmo foi atualizado em 2019 e está disponível aqui.

Já em 2019 notamos que o erro do modelo era maior que o avaliado em 2018, ou seja, o modelo sofre de sobreajuste. Como já havia dito na descrição anterior do modelo, um dos problemas é que não levamos em conta o controle de inflação do CartolaFC. Isso faz com que os parâmetros do modelo dependam das médias de pontos dos jogadores na rodada, entre outras variáveis.

Hoje cheguei a um modelo que parece funcionar bem para lidar com esse controle de inflação. A ideia é embutir na fórmula o controle de forma que ele ocorra automaticamente. Começamos pela rodada 1, onde é bem claro que são necessárias apenas 2 variáveis: pontos e preço. Olhando os ajustes de 2018 a 2020 observamos o seguinte:

Fórmulas de valorização na rodada 1.

Os ajustes são extremamente precisos, mas como podemos ver, cada ano teve coeficientes diferentes. O padrão mais interessante aqui é que soma dos coeficientes (em valor absoluto) é exatamente igual a 1 em todos os anos. Com esse insight, podemos deduzir a fórmula geral pra todos os anos:

Dedução da fórmula geral para a rodada 1.

Se aplicarmos essa fórmula aos anos de 2018 a 2020 obtemos um ajuste praticamente perfeito. Só temos que tomar cuidado com alguns pequenos ajustes para evitar que qualquer jogador custe menos de C$0.7 e sempre restará um erro insignificante devido ao arredondamento dos preços.

Comparação entre valorizações previstas e observadas na rodada 1. Os erros observados foram menores que C$0.01.

Agora podemos tentar buscar um insight similar para a rodada 2. Com nosso modelo anterior, temos as seguintes fórmulas:

Fórmulas de valorização na rodada 2.

Novamente, a soma dos coeficientes é igual a 1. Porém nesse caso não temos como deduzir uma fórmula geral baseada só nisso, pois agora temos 3 variáveis e apenas 2 restrições. Mas podemos generalizar a fórmula da rodada 1 para N variáveis da seguinte forma:

Fórmula geral de valorização em qualquer rodada.

Com essa fórmula, sempre garantimos que não há inflação, e podemos ajustar os coeficientes [A,B,C,…] para ajustar os dados de cada ano. Se observarmos que os coeficientes são iguais para todos os anos, confirmamos que a fórmula funciona.

Fizemos então essa análise para algumas rodadas. Ela funciona perfeitamente para as rodadas 2 e 3. Na rodada 2 usamos apenas as variáveis [pontos, preço, última pontuação]. E obtivemos os coeficientes [3, 5, 2]. Números redondos* que são bem interessantes e podem indicar um novo insight. Para a rodada 3 temos um modelo mais complexo, com variáveis [pontos, preço, m+u, v×(d-1)], onde u é a última pontuação, m é a média excluindo a última pontuação, v é a última valorização, e d é o número de jogos desde a última pontuação. Os coeficientes foram [14, 30, 8, 15]. Novamente números inteiros, mas sem uma aparente lógica.

Comparação entre valorizações previstas e observadas nas rodada 2 e 3. Os erros observados foram menores que C$0.01.

O mesmo procedimentos funciona de certa forma para as outras rodadas, mas precisamos de mais variáveis (utilizamos até 10) e os coeficientes não parecem simples ou completamente estáveis ao longo dos 3 anos. Apesar disso, a variação é pequena o suficiente para que possamos usar o conceito como forma aproximada.

Comparação entre valorizações previstas e observadas nas rodada 4 e 5. Os erros observados giram em torno de C$0.05 e são dominados por alguns pontos fora da curva. A maioria deles são jogadores que começaram a rodada com o preço mínimo no CartolaFC.

Uma das questões mais importantes agora é definir quais variáveis são melhores para o nosso ajuste. Além disso queremos investigar a possível relação entre os coeficientes e o número da rodada. Vamos continuar estudando esse problema e atualizaremos o nosso modelo assim que possível. Fiquem ligados!

*Existe uma arbitrariedade na fórmula em que podemos multiplicar todos os coeficientes por um número e o resultado não muda. Os números redondos representam na verdade a razão entre os coeficientes.

Adendo 11/09/2020

Analisando as fórmulas das 3 primeiras rodadas, descobrimos um padrão interessante:

Fórmulas de valorização das 3 primeiras rodadas

--

--