Behloul774

07/12/2020
Bonjour,

Voici une proposition pour estimer la valeurs des joueurs VF qui permet de pallier les incohérences de la précédente estimation.

Déjà je décris la fonction mediane() comme suit :
soit n valeurs a(1)<a(2)<...<a(n),
- si n est impair, il existe alors p entier tel que n = 2p + 1, alors mediane([a(1), ..., a(2p+1)])= a(p+1)
- si n est pair, il existe alors p entier tel que n = 2p, alors mediane([a(1), ..., a(2p)])= [a(p)+a(p+1)]/2

Voici l'idée globale :

1/ On prend les X derniers joueurs transférés :
2/ On les sépare en 3 catégories : ceux qui connaissent un seul poste, ceux qui connaissent 2 postes, ceux qui connaissent 3 postes et plus
3/ Pour chaque joueur, on calcule le nombre d'années qui lui reste à jouer "narj" : Pour les joueurs dont la retraite est déclarée on fait narj = floor(nb de jours restants /49) (floor étant la partie entière).
Un joueur qui va à la retraite à la fin de la saison ne peut être vendu, son narj = 0, on reste cohérent.
Pour les autres on prend pour estimation qu'ils iront à la retraite à 33ans, donc narj = 33 - âge du joueur. Par exemple pour un joueur de 28 ans, narj = 5 (29, 30, 31, 32, 33), l'année en cours ne comptent pas comme les joueurs sur leurs années de retraite.
On verra pourquoi c'est important pour la suite, il y a une notion d'amortissement du joueur sur l'investissment mis.
=> narj peut aller de 0 à 17(17 saisons pleines pour un joueur de 16 ans)
4/ Pour chaque joueur, on calcule un nombre de points qu'il vaut : "NP".
NP = (somme des points dans chaque caractéristique) + (marge de progression x potentiel x2)
Je crois que c'est ce qui est plus ou moins fait, mais l'idée est de comparer des joueurs qui ont ou auront le même nombre de points.
Evidemment les caractéristiques avec uniquement 1 point on ne les compte pas.
Qu'importe sa note, sa consigne ou son poste. En effet comme les joueurs peuvent changer de postes et de consignes, il ne faut pas prendre en compte la NG qu'elle soit atteinte ou pas.
D'ailleurs meme les joueurs non optimisés ont maintenant un intérêt, donc autant de valeur qu'un joueur non optimisé à une consigne.
=> NP peut aller grosso modo de 30 à 200.

5/ Ensuite, pour chacune des 3 catégories, on classe chaque joueur dans une matrice (narj, NP)

- Pour chaque ensemble de joueurs dans une case (narj, NP) de la matrice, on calcul la médiane des prix de transfert.
Pour la case (narj, NP), on va appeler v(narj, NP) la valeur de transfert médiane calculée sur les q derniers transferts.
Je pense qu'on n'a pas besoin de plus de 7 à 11 joueurs dans chacune des cases (q = 7 à 11, voir même 5, il faut faire des tests pour ça).
A chaque nouveau transfert on ajoute le prix du joueur dans sa case.
Si on dépasse le nombre q de joueur à prendre en compte dans chaque case (7 à 11 pour moi), on enleve le prix de transfert le plus anciens.

- Une fois qu'on a la valeur médiane de chaque case, il faut rendre les valeurs cohérentes entre elles et donc pour chaque case (narj, NP) :

On va remplacer la valeur v(narj, NP) par :
Pour chaque narj fixe :
v(narj, NP) = médiance[(narj, NP-5), (narj, NP-4), (narj, NP-3), (narj, NP-2), (narj, NP-1), (narj, NP), (narj, NP+1), (narj, NP+2), (narj, NP+3), (narj, NP+4), (narj, NP+5)]
Pour les valeurs aux extrêmes :
Valeur extrême bas : v(narj, NP) = v(narj, NP)
2ème valeur extrême bas : v(narj, NP) = médiance[(narj, NP-1), (narj, NP), (narj, NP+1)]
3ème valeur extrême bas : v(narj, NP) = médiance[(narj, NP-2), (narj, NP-1), (narj, NP), (narj, NP+1), (narj, NP+2)]
... Jusqu'à 5ème valeur extrême bas
Valeur extrême haute : v(narj, NP) = v(narj, NP)
2ème valeur extrême haute : v(narj, NP) = médiance[(narj, NP-1), (narj, NP), (narj, NP+1)]
... Jusqu'à 5ème valeur extrême bas

Pour toute les valeurs manquantes, v(narj, NP), dans le calcul de la médiane on ne prend pas en compte les valeurs manquante.
Exemple :
on a que les valeurs : v(23, 154), v(23, 155), v(23, 161), v(23, 163), v(23, 164)
On souhaite calculer v(23, 160) :
v(23, 160) = mediane[v(23, 154), v(23, 155), v(23, 161), v(23, 163), v(23, 164)]

Ensuite on fait la même chose par âge :
Pour chaque NP fixe :
v(narj, NP) = médiane[(narj-1, NP), (narj, NP), (narj+1, NP)]
Pour les valeurs aux extrêmes :
Valeur pour 17 ans avant retraite : v(17, NP) = v(17, NP)
Valeur pour 1 ans avant retraite : v(1, NP) = v(1, NP)

Cela permet de garantir qu'un joueur plus âgé sera moins cher qu'un joueur moins âgé, et qu'un joueur avec plus de points sera plus cher qu'avec un joueur avec moins de points.
Avec la valeur médiane, on exclue les transferts abérrant trop cher, ou trop peu cher, alors qu'avec la moyenne ce genre de transferts ont beaucoup trop d'influence.
On aura une estimation stable, cohérente et qui va rapidement s'adapter au marché.

Ces calculs de médiane dépendent en effet des valeurs calculées avant, il faut donc commencer par une des extémité (narj, NP)=(17, 200) le plus cher à (narj, NP)=(1, 30) le moins cher.

Ensuite on harmonise avec les joueurs des 3 catégories (ceux qui connaissent un seul poste, deux postes, 3 postes et plus).
On va noter :
- v1(narj, NP), la valeur des joueurs (narj, NP) connaissant 1 seul poste
- v2(narj, NP), la valeur des joueurs (narj, NP) connaissant 1 seul poste
- v3(narj, NP), la valeur des joueurs (narj, NP) connaissant 1 seul poste

On doit s'assurer que v3>v2>v1 :
v3(narj, NP) = max[v1(narj, NP), v2(narj, NP), v3(narj, NP)]
v2(narj, NP) = mediane[v1(narj, NP), v2(narj, NP), v3(narj, NP)]
v1(narj, NP) = min[v1(narj, NP), v2(narj, NP), v3(narj, NP)]

On a donc environ (200-30+1)x17x3 = 8721 cases dans lesquels on place les joueurs. Si on prend q=7 joueurs par case, ça fait 61047 transferts pris en compte (X derniers joueurs transférés, X = 61047 donc).
Mais ce n'est qu'un majorant, beaucoup de cases seront sans doute vide pour le calcul de médiane, ils se rempliront par des montants de transfert au fil du temps ou bien jamais, mais ce n'est pas grave.

Un dernier point : les échanges, on prend en compte comme valeur de transfert des joueurs échangés :

Joueur 1 échangé contre Joueur 2 + somme

Valeur transfert Joueur 1 = Valeur VF joueur 2+ somme
Valeur transfert Joueur 2 = Valeur VF joueur 1 - somme

Sinon on ne prend pas en compte.

Voilà, j'espère avoir été clair dans mes explications, je pourrais tester si on peux exporter les données de transferts et voir ce que cela donne.

Galywat

07/12/2020
Sauf si j'ai mal lu, quid des joueurs en cours de formation ?

Behloul774

07/12/2020
Galywat : Sauf si j'ai mal lu, quid des joueurs en cours de formation ?
Ils sont mis sur le même pied de comparaison que les autres :

4/ Pour chaque joueur, on calcule un nombre de points qu'il vaut : "NP".
NP = (somme des points dans chaque caractéristique) + (marge de progression x potentiel x2)

Pour les joueurs formés la marge de progression sera de 0, mais pas ceux en formation : c'est une projection du nombre de points qu'ils peuvent avoir en fin de formation.

Galywat

07/12/2020
oki en effet j'avais mal lu.

Behloul774

07/12/2020
Voici un exemple du calcul de la "NP" sur un joueur en formation.
Deleted player

Il a aujourd'hui 4+4+8+6 = 22 pts de caractéristiques.
Et il pourra avoir encore : potentiel x marge de progression x 2 = 77*0,9102*2 = 140 (arrondi) points de caractéristiques

Ce qui fait NP = 162 ( points de caractéristiques total qu'il aura en fin de formation avec un entraînement classique, sans blessures, cartons rouges etc.)

Après le manager peut le sur-entrainer dans une caractéristique ou monter l'endurance ou l'optimiser pour une consigne.

Behloul774

07/12/2020
Suite à une remarque de Merior en MP, j'aimerais changer un peu la proposition ci dessous. Je sais déjà comment, mais en m'expliquant ce sera aussi illisible que le premier post.

L'idée finale serait de :
- assurer qu'un joueur qui a ou aura N points de caractéristiques sera plus cher qu'un joueur ayant un nombre de points de caractéristiques inférieur à N
- au-dessus de 24 ans : plus un joueur sera proche de la retraite, moins il sera cher
- en-dessous de 24 ans : moins un joueur est formé, moins il sera cher en comparaison aux joueurs qui atteindront le même nombre de points de caractéristiques (pour valoriser effort de formation).
(Ce dernier point n'est pas traduit dans mon premier post, mais je pourrais le décrire, ou montrer sur des données exporté).
- Il n'y a pas de prix mini ou maxi, ce n'est que les montants des transferts qui rentrent en données d'entrée.
- les montants exhorbitants ou sous évalués sont noyés par la valeurs médiane plutôt qu'une valeur moyenne.
- un joueur formé à plusieurs postes sera plus cher qu'un joueur formé a un seul poste.

rocheteau

07/12/2020
Bravo pour le travail ! Une question : ne devrait-on pas (si c'est possible) plus valoriser l'endurance dans le calcul de la valeur des joueurs car on voit passer des joueurs avec une endu <15, voire <10 qui, de fait, perdent beaucoup de point et d'impact en match. On voit des NG80 avec parfois 5, 6, 8 pts d'endu.
Certaines équipes qui jouent tous les jours souhaitent des joueurs au minimum à 40, d'autres comme moi souhaitent des joueurs susceptibles de jouer tous les 2 jours sans trop baisser, des joueurs à 25 ou 30 d'endurance. Ces joueurs dont la note est relativement stable pendant 90 mn devraient avoir une valeur supérieure. Qu'en pensez-vous ?

Merior

07/12/2020
rocheteau : Bravo pour le travail ! Une question : ne devrait-on pas (si c'est possible) plus valoriser l'endurance dans le calcul de la valeur des joueurs car on voit passer des joueurs avec une endu <15, voire <10 qui, de fait, perdent beaucoup de point et d'impact en match. On voit des NG80 avec parfois 5, 6, 8 pts d'endu.
Question de point de vue : prenons deux joueurs similaires, montés de A à Z par le même club. À 24 ans :
- le premier a une NG de 80, avec 40 d'endu : il sera meilleur que le second, en fin de match.
- le second a une NG de 85, avec 20 d'endu : il sera meilleur que le premier, en début de match.
De plus, avoir une NG plus haute permet d'avoir plus d'impact lors de la rentrée d'un joueur.
rocheteau : Certaines équipes qui jouent tous les jours souhaitent des joueurs au minimum à 40, d'autres comme moi souhaitent des joueurs susceptibles de jouer tous les 2 jours sans trop baisser, des joueurs à 25 ou 30 d'endurance. Ces joueurs dont la note est relativement stable pendant 90 mn devraient avoir une valeur supérieure. Qu'en pensez-vous ?
Si j'en crois mes dernières ventes de joueurs endurantes, un 18 ans endu 30 vaut trois fois moins qu'à 17 ans... à croire que l'endurance n'a finalement aucune valeur :)

Gabi

07/12/2020
Je partage , 2 joueurs formés , l'un endu 15 , l'autre endu 45 = le premier aura une NG bien meilleure maintenant malgré les 20 matchs de moins par saison

Skywiing

07/12/2020
Trop compliqué pour moi ?

Morgan

07/12/2020
Plusieurs problème se posent :
- Quid de l'endurance ?
- Combien vaut la polyvalence sur un joueur?
- Sur un DFC en consigne normal 75 25 25 25, si il est entrainé en ATC aura t-il une valeure plus élevé malgré le fait que cela ne serve à rien?

Behloul774

07/12/2020
Morgan : Plusieurs problème se posent :
- Quid de l'endurance ?
- Combien vaut la polyvalence sur un joueur?
- Sur un DFC en consigne normal 75 25 25 25, si il est entrainé en ATC aura t-il une valeure plus élevé malgré le fait que cela ne serve à rien?
Quid de l'endurance : Je pense que c'est le total des points sur les caractéristiques (incluant l'endurance) qui doit être pris en compte. Entre un 70 de NG et 40 d'endurance et un 80 de NG et 20 d'endurance, on préfère quoi ? Ça dépend, mais ayant le même nombre de points, ils auront la même valeur.
Ce qui est sûr c'est qu'on préfère un 80 de NG et 40 d'endurance qu'un 80 de Ng et 20 d'endurance. Le premier a 200 pts, le deuxième 180. La relation d'ordre est garantie.

Ce sont les personnes qui achète qui donnent un poids plus ou moins important à la polyvalence. En tout cas, entre un joueur polyvalent et un qui ne l'est pas, le polyvalent coutera plus cher. De combien ? Ce sont les achats qui le diront.
Sur ton exemple, alors oui ça sert peut être a rien, mais il aura une valeur plus élevée en fonction de ce que les joueurs donnent comme importance a la polyvalence. Si ça se trouvent aucune importance n'y sera donnée.
En tout cas un MOL qui peut jouer a droite et à gauche, devrait couter plus cher qu'un MOD uniquement, Ou bien un MDG/D/C devrait coûter plus cher qu'un MDC, no ?

Behloul774

08/12/2020
Morgan : Plusieurs problème se posent :
- Quid de l'endurance ?
- Combien vaut la polyvalence sur un joueur?
- Sur un DFC en consigne normal 75 25 25 25, si il est entrainé en ATC aura t-il une valeure plus élevé malgré le fait que cela ne serve à rien?
Et puis faut que ça reste assez simple, à gérer trop de cas particuliers ça va aboutir à des incohérences.
Là ce qui est proposé est simple (malgré le long post pas très lisible), c'est juste un calcul de mediane, d'abord entre joueur comparable en terme d'âge, de pts de caractéristiques, et polyvalence.
On s'arrête là.
Le reste c'est ensuite un calcul de mediane suivant ces 3 dimensions pour maintenir une relation d'ordre.

Papanico

08/12/2020
Salut
Oui mais quand les stats « bonus » seront intégrées ça va changer les choses.

Behloul774

08/12/2020
Papanico : Salut
Oui mais quand les stats « bonus » seront intégrées ça va changer les choses.
Justement non, on prend en compte le nombre de pts dans les caractéristiques et non la NG.
D'ailleurs aujourd'hui, et meme sur la précédente valeur VF c'était le nombre de points de caractéristiques qui était pris en compte pour comparer les joueurs entre eux. Et non la NG

Morten34

08/12/2020
Bravo Behloul pour ton boulot, ta démonstration mathématique et ta proposition. S'il est possible de la mettre en œuvre, je suis pour à 100%!

michbou

08/12/2020
Morten34 : Bravo Behloul pour ton boulot, ta démonstration mathématique et ta proposition. S'il est possible de la mettre en œuvre, je suis pour à 100%!
oui , d'accord aussi ; mais sur la valeur vf qui sera affichée au joueur , il faudrait avoir une marge supérieur et inferieur pour les achats direct ; aux enchères cela doit rester aléatoires :) ou fixé un plafond pour les joueurs en fonctions de leurs valeurs .

Merior

08/12/2020
Ou mettre cette valeur en indicative. Ça pourrait être intéressant.
Le plus compliqué étant de trouver une valeur "logique" acceptable par tout le monde, libre à chacun ensuite de vendre moins cher ou d'acheter plus cher que cette indication. Il ne faudrait pas non plus totalement restreindre le marché, mais pour autant cette valeur pourrait servir de base pour l'admin anti-triche (on ne pourra alors plus dire "je ne savais pas quel prix mon joueur valait, c'est pour ça que j'ai vendu un 28 ans NG 99 15M).

michbou

08/12/2020
michbou :
Morten34 : Bravo Behloul pour ton boulot, ta démonstration mathématique et ta proposition. S'il est possible de la mettre en œuvre, je suis pour à 100%!
oui , d'accord aussi ; mais sur la valeur vf qui sera affichée au joueur , il faudrait avoir une marge supérieur et inferieur pour les achats direct ; aux enchères cela doit rester aléatoires :) ou fixé un plafond pour les joueurs en fonctions de leurs valeurs .
je penses que ma proposition , vas dans le sens de morten et Behloul ; si Aymeric voulait bien y jeté un œil et nous donnés son avis :)