Classement ELO des écoles de commerce


Chaque année en France, des milliers d’étudiants de classes préparatoires ECG, ECT, AL et BL concourent pour intégrer les 24 grandes écoles de commerce BCE et Ecricome.

Les concours sont organisés d’avril à juillet selon les étapes suivantes :

  1. épreuves écrites
  2. résultats d’admissibilité
  3. épreuves orales
  4. résultats d’admission
  5. voeux des candidats
  6. affectation des candidats

En résumé, les écoles classent les candidats (étapes 1 à 4) puis les candidats classent les écoles (étape 5). L’affectation des candidats (étape 6) résulte des compatibilités entre ces deux classements.

L’étape 5 permet également d’établir le célèbre classement SIGEM, qui reflète l’attractivité des 24 écoles les unes par rapport aux autres.

Ce classement, fortement médiatisé, permet à chaque acteur de la filière de se positionner : écoles, étudiants, enseignants. Par la suite, il servira à classer les CPGE entre elles, en fonction des résultats de leurs étudiants.

Aussi utile que soit le classement SIGEM, il est bon de garder à l’esprit que, comme tout classement :

Dans ce document, on présente un classement des écoles de commerce basé sur le calcul d’un score ELO, bien connu des joueurs d’échecs.

On verra qu'on obtient des résultats proches du classement SIGEM, avec deux avantages :

On commence par rappeler le modèle du classement SIGEM et présenter le modèle ELO.

Puis on donne le classement ELO 2024 et son évolution depuis 2017.

Enfin, on présente des pistes d'améliorations de l’application du modèle ELO au classement des écoles de commerce.

Pour les plus curieux, l’algorithme du calcul de score ELO est détaillé en annexe.

Principes des classements SIGEM et ELO

Plaçons-nous dans le cadre général d’un tournoi. Chaque joueur joue plusieurs matchs contre ses adversaires, et on comptabilise le nombre de victoires.

(Pour le classement SIGEM, les “joueurs” sont les écoles. Chaque candidat admis dans deux écoles constitue un “match”. L’école choisie par le candidat gagne le match).

Par exemple, dans un tournoi à trois joueurs A, B, C on pourrait obtenir les résultats suivants :

joueur

vs A

vs B

vs C


25

29

B

5


15

C

2

22



Ce tableau signifie que le joueur A a gagné 25 matchs contre B et 29 matchs contre C. B a gagné 5 matchs contre A et 15 matchs contre C. C a gagné 2 matchs contre A et 22 matchs contre B.

Intuitivement, on a l’impression que le meilleur joueur est A, et que C est meilleur que B. Voyons ce qu’en dit le classement SIGEM.

Principe du classement SIGEM

Pour chaque duel possible (ici A-B, A-C et B-C) on attribue 1 point à celui qui a gagné le plus de matchs. Puis on classe les joueurs selon le nombre de duels gagnés. Concrètement :

joueur

vs A

vs B

vs C

duels gagnés

rang SIGEM


25

1

29

1

2

1er 

B

5

0


15

0

0

3eme

C

2

0

22

1


1

2eme


Ce modèle est simple à comprendre et à mettre en œuvre et, sur cet exemple, il correspond à l’intuition : un bon outil de décision.

Cependant, il ne tient pas compte de deux phénomènes :
Pour prendre en compte ces deux phénomènes, on peut se tourner vers le classement ELO.

Principe du classement ELO

Le système ELO a été inventé dans les années 1960 pour classer des joueurs d’échecs, et a depuis acquis une solide légitimité. Utilisé par la fédération internationale d’échecs depuis environ 50 ans, il a été adapté et utilisé pour d’autres sports : go, football, e-sports.

Chaque joueur X se voit attribuer un score (notons le S
X). Les grands principes sont les suivants :

Cette récente vidéo présente de manière très claire la mise à jour du score ELO suite à un match.

Voici ce que donne une application du système ELO sur l’exemple de tournoi précédent.

joueur

vs A

vs B

vs C

score ELO

rang ELO


25

29

113

1er 

B

5


15

16

3eme

C

2

22


24

2eme


Le modèle ELO peut être utilisé comme un outil de prédiction. En effet, l’écart de score entre deux joueurs indique une probabilité de victoire.

Ici par exemple, les scores nous apprennent que le joueur B a environ 46% de chances de gagner son prochain match contre le joueur C.

Ceci provient de la formule de prédiction générale (1) donnée en annexe.

Différences entre SIGEM et ELO

Contrairement au modèle SIGEM, le modèle ELO tient compte :

  • de l’ensemble des matchs disputés sur le tournoi
  • pour chaque match : du niveau relatif des deux adversaires

Sur l’exemple précédent, les rangs SIGEM et ELO des trois joueurs sont identiques.

En modifiant les résultats, on peut obtenir des classements différents. Il suffit, par exemple, d’augmenter un peu le nombre de victoires de B contre A (qui est un très bon joueur)  et de resserrer le score entre B et C :

joueur

vs A

vs B

vs C

duels gagnés

rang SIGEM

score ELO

rang ELO


25

29

2

1er 

102

1er 

B

5  8


15 19

0

3eme

28

2eme

C

2

22


1

2eme

23

3eme

On retiendra que les modèles ELO et SIGEM peuvent diverger :

  • lorsque les duels SIGEM sont serrés
  • lorsque des joueurs faibles ont quelques victoires contre des joueurs forts

On pourrait se demander dans ce cas “quel est le vrai classement ?”. La réponse est bien sûr : aucun. Tout classement repose sur des hypothèses et met en avant certains phénomènes. La question doit plutôt être remplacée par : “quel classement met le plus l’accent sur les phénomènes que je souhaite prendre en compte ?”

Score ELO des écoles de commerce de 2017 à 2024

Le score ELO que nous proposons est calculé à partir des tableaux de désistements croisés du SIGEM publiés sur le site Major Prepa.

Le score est initialisé avec les données du tableau 2017, puis pour chaque année n ≥ 2018, on actualise les scores des 24 écoles simultanément, à partir :
  • des scores de l’année n-1
  • du tableau de désistements croisés de l’année n.

selon un estimateur de type maximum de vraisemblance à modèle gaussien.

Plus de détails sur l’algorithme ici.

Voici les 24 grandes écoles classées selon leur score ELO 2024 :

école

score ELO

rang ELO

rang SIGEM

HEC

1502

1

ESSEC

1285

2

ESCP

1145

3

EDHEC

894

4

EM Lyon

813

5

SKEMA

677

6

AUDENCIA

595

7

NEOMA

580

8

Grenoble EM

491

9

KEDGE

461

10

TBS

425

11

Rennes SB

342

12

MBS

319

13

IMT

317

14

BSB

308

15

14

ICN

308

15

14

EXCELIA

277

17

EM Normandie

238

18

EM Strasbourg

235

19

20

INSEEC

203

20

19

ESC Clermont

187

21

ISC Paris

184

22

SCBS

131

23

22

Brest BS

104

24

22

Le classement ELO 2024 est proche du SIGEM 2024. On observe quelques différences en deuxième partie de tableau.

En particulier, les positions EM Strasbourg/INSEEC et SCBS/Brest BS sont inversées. Ceci n’est pas étonnant : les rangs SIGEM de ces écoles reposent sur des duels très serrés.

En appliquant la formule (1) à ces résultats, on constate par exemple que, selon notre modèle ELO, Audencia a environ 15% de chances de “prendre” un étudiant à SKEMA. Même écart pour EM Lyon / EDHEC.

Evolution du score ELO depuis 2017

Pour plus de clarté, on sépare en trois graphiques : rangs 1-5, 6-12 et 13-24.

Comment améliorer le modèle

Toutes suggestions ou données complémentaires susceptibles d’améliorer le modèle sont les bienvenues : lionel.magnis At ac-lille.fr

Matchs multi-joueurs

Les données publiques présentent les désistements croisés sous la forme de matchs à 2 écoles. En réalité, la plupart des étudiants font leur choix parmi plusieurs écoles.

Par exemple, prenons le cas d’un étudiant admis à BSB, l’IMT, Excelia et l’INSEEC, et qui choisit d’aller à Excelia. Il s’agit donc d’un match à 4 écoles, remporté par Excelia.

Dans le tableau de désistements croisés, ceci donnera lieu à 3 victoires pour Excelia et 1 défaite pour chacune des trois autres écoles : 3 matchs au lieu d’1 seul.

Les calculs seraient plus fidèles à la réalité si on disposait des données concernant les multi-admis. Autrement dit, pour chaque groupe d’écoles possible, le nombre d’étudiants admis dans toutes les écoles du groupe et leur répartition finale.

A partir de ces données,  on pourrait adapter le modèle ELO pour traiter des matchs multi-joueurs.

Si quelqu’un dispose des données multi-admis et accepte de les partager, je l’en remercie chaleureusement.

Remplissage

Certaines écoles ne remplissent pas toutes les places ouvertes au concours. Pour ces écoles, le nombre d’étudiants intégrés est un indicateur d’attractivité. Par exemple, Brest BS a intégré 3 étudiants en 2023, et 11 étudiants en 2024.

Cette progression, qui semble indiquer une augmentation d’attractivité, n’apparaît pas dans le score ELO, car  10 de ces 11 étudiants ne rapportent pas de victoire contre une autre école : ils n’ont été admis qu’à Brest.

Toute suggestion sur la prise en compte de ce phénomène (et plus généralement : des étudiants admis à une seule école) est la bienvenue.

Annexe : algorithme de calcul du score ELO

On considère un tournoi à n joueurs. On souhaite évaluer leurs niveaux en fonction des résultats du tournoi, à l’aide d’un score.

Pour tous entiers i et j entre 1 et n, on note Vi,j le nombre de victoires du joueur i contre le joueur j lors du tournoi.

Pour tout i entre 1 et n, on note 𝜇i le score du joueur i avant le tournoi et Xi son score après le tournoi.

Hypothèses :

  • les scores 𝜇1, 𝜇2, …, 𝜇n sont connus
  • pour tout i, Xi est une variable aléatoire qui suit une loi normale d’espérance 𝜇i et d'écart-type σ = 5
  • pour tous entiers i et j, la probabilité que le joueur i batte le joueur j sur 1 match est :

  • les résultats des matchs sont indépendants
  • les variables aléatoires X1, …, Xn sont indépendantes

(L'écart-type 5 est un choix arbitraire. Concrètement, ceci signifie que les scores avant/après tournoi diffèrent de quelques points. On pourrait choisir une autre valeur, voire même des écarts-types différents pour les différents joueurs.)

L’idée est de trouver des réels x1, …, xn qui maximisent la probabilité P(X1=x1, …, Xn=xn) conditionnelle au résultat du tournoi.

(en toute rigueur, X1=x1 signifie plutôt ici x1-hX1 ≤ x1+h avec h petit).

En appliquant la formule de Bayes, ceci revient à maximiser la fonction :

Ceci est encore équivalent (et c’est plus pratique) à minimiser la fonction :

Remarque 1 : pour l’année d’initialisation, pas de modèle d’évolution : on enlève ce terme.

Remarque 2 : ce terme est constant, il ne change rien à la minimisation.

Pour la minimisation, on a utilisé la méthode BFGS disponible via la commande scipy.optimize.minimize de Python.