14 мин.

Составляем рейтинг европейских лиг с помощью Glicko-2 и объясняем почему он лучше рейтинга УЕФА

Это уже не первая моя статья про рейтинги. Не буду оставлять здесь кучу ссылок, а напишу всеобъемлющий текст с опусканием технических деталей.

Рейтинг УЕФА

Как считается рейтинг УЕФА можно почитать здесь. Все просто, разобраться нетрудно. Однако за прозрачность приходиться расплачиваться следующими проблемами.

Не учитывается сила соперников

Рейтинг УЕФА почти никак не учитывает уровень оппонентов, поэтому стоимость победы над Мальме будет стоить как победа над Челси.

Инертность системы

Текущая система чересчур зависима от выступлений 4-5 летней давности. Жеребьевка зависит от клубных рейтингов, которые считаются за последние пять лет. Причем рейтинговые баллы не зависят от сезона. Из-за этого могут пострадать, вообще говоря, сильные команды, которые долгое время не участвовали в еврокубках.

Например, Наполи в десятых годах. Клуб продолжительное время не попадал в ЕК, поэтому несколько сезонов подряд попадал в сильные группы. Поскольку группы были сильными, то и рейтинг было накопить сложновато.

Частично проблема решилась введением такого правила: "Коэффициент ЛИБО являет собой сумму всех очков, набранных клубом за пять лет, ЛИБО приравнивается к рейтингу ассоциации за тот же период (выбирается более высокий показатель из двух). Новая система подсчета действует с сезона 2018/19." Однако баллы от каждого сезона идут в суммарный рейтинг с одинаковым весом, что не совсем правильно. Система должна быть актуальней.

Рейтинг не интерпретируется

Рейтинговые очки почти не несут никакого смысла. Что означает разница в 4 балла между Нидерландами и Австрией? Это говорит нам о том, что клубный уровень этих стран очень близок или все-таки сильно отличается? Как по рейтингам понять насколько один клуб сильнее другого?

Рейтинг страны не есть средняя сила команд в лиге

В определённых задачах нужно понимать, что из себя представляет средний уровень команд в чемпионате. Насколько он ровный. Ведь возможна ситуация, что в стране есть два-три крепких клуба, которые и собирают рейтинг, а остальные команды очень слабого уровня. Однако рейтинг УЕФА это не видит, так как эти команды не участвуют в еврокубках. Да, Шериф хорошо выступает в ЛЧ, но что нам это может сказать об уровне молдавского футбола в целом?

Попробуем решить эти проблемы. В качестве базовой модели будем использовать рейтинг-систему Glicko-2, но сначала расскажем о ее предшественнице — модели Elo. 

Elo

Фильм "Социальная сеть". В формулах есть ошибки

Модель была разработана в 1960 году Арпадом Эло по поручению шахматной федерации США для объективной оценки сил шахматистов.

Идея модели следующая: у каждого игрока есть рейтинг. Рейтинг – это положительное число. Чем рейтинг выше, тем игрок сильнее. Вся модель состоит из двух формул:

Rа , Rв - рейтинги игроков A и B.

Ea - математическое ожидание количества очков, которое наберет игрок A в матче против игрока B.

Вторая формула обновляет рейтинг Ra с учетом разницы между реальным результатом встречи игроков A и B и ожидаемым до игры результатом.

K равен 10 для игроков с рейтингом выше 2400, 20 – для игроков с рейтингом меньше 2400 и 40 для игроков, сыгравших менее 30 матчей.

Sa − количество очков, набранных игроком по итогу матча (1 – за победу, 0.5 – за ничью, 0 – за поражение).

Здесь нужно понимать следующее.

Ea лежит между 0 и 1; в турнирах, где нет ничьих, оно является вероятностью победы. Если рейтинги команд равны, то математическое ожидание равно 0.5.

Важно, что за победу над андердогом фаворит получает меньше баллов, чем андердог получит за победу над фаворитом. Эта логика интуитивна, потому что: 

  1. Если побеждает фаворит, то оппоненты подтвердили результатом отношение своих рейтингов до игры, поэтому нет смысла существенно обновлять их рейтинги.

  2. Если побеждает андердог, то рейтинг надо существенно обновить, потому что рейтинги до игры не отображали истинного соотношения сил.

  3. Если матч заканчивается вничью, то андердог получает очки рейтинга, а фаворит теряет очки рейтинга.

Другая особенность модели — коэффициент K. Рейтинги новичков меняются быстрее, чем у игроков с богатой историей матчей: модель изначально ничего не знает о действительном рейтинге игрока, поэтому у игрока должна быть возможность быстро прийти к своему истинному рейтингу.

Glicko, Glicko-2

Марк Гликман

В 1995 году Марк Гликман (сейчас возглавляет лабораторию спортивной аналитики в Гарварде) изобретает новую модель Glicko, в 2012 году появляется Glicko-2.

Основное отличие моделей Гликмана от Elo состоит в том, что вводится понятие “степени доверия к рейтингу”, параметр rating deviation. Эта функция заменяет коэффициент K из системы Elo. По мере накопления истории матчей, рейтинги команд меняются все меньше и меньше. 

Неопределенность также вносится в математическое ожидание очков. В формуле модели заложена логика, что в матче с участием команд с небольшой историей матчей, победа аутсайдера более вероятна, чем в матче с участием более знакомых модели команд.

Модель существенно сложнее, чем модель Эло, поэтому так же подробно описывать ее не будем.

В целом, модель строится на тех же принципах, что и модель Elo, только точность Glicko-2 значительно выше.

Данные

Обучать модель будем на результатах матчей за последние четыре года, включая текущий. Выборка включает матчи первых и вторых лиг Европы, матчи национальных кубков и супер кубков, а также переходные матчи. И конечно же, матчи еврокубков. Из данных выкидываем технические поражения, а также матчи с участием команд из "неизвестной" лиги, например, матчи кубка с участием команды из третьей лиги. Всего используется около 80 000 игр.

Данные собраны с сайта flashscore.com

Адаптируем Glicko-2 к футболу

Модели Elo и Glicko-2 в своем классическом виде не совсем применимы к футболу. 

В футболе есть ничьи, а формулы математического ожидания очков в Elo и Glicko не позволяют посчитать вероятность ничьи. Здесь нужно понимать, что эта вероятность зависит не только от разницы в уровне команд, но и от результативности. В матче с участием мало забивающих команд шанс наступления ничьи выше. Как именно учитывались эти факторы, подробно расписывать не буду, так как это описание можно растянуть на отдельную статью. Поверьте на слово.

Текущие модели не учитывают фактор домашнего поля. Чтобы учесть этот признак, нужно добавить некоторое число к рейтингу домашней команды и отнять это же число от рейтинга гостевой команды перед расчетом вероятности исхода и обновлением рейтинга. После подсчета этих функций это же число отнять от домашней команды и добавить к гостевой.

Поскольку в разгар пандемии болельщиков не пускали на стадион, преимущество домашнего поля должно быть слабее. Поэтому для матчей с марта 2020-го года по июнь 2021 будем считать свой параметр преимущества домашнего поля.

Инициализация рейтингов. Glicko-2 обладает интересным свойством: рейтинг команды внутри формул существует не сам по себе, а только в связке с рейтингом соперника. Когда нам нужно посчитать вероятность победы, нам нужно знать разницу рейтингов команд. Такая же история с обновлением рейтинга. Это свойство дает нам право ко всем рейтингам команд одного чемпионата добавить некоторое число. Это ничего не сломает, так как (x+c) – (y + c) = (x – y). 

Таким образом, добавляем в модель новый параметр начальный рейтинг лиги. Это никак не повлияет на прогнозирование матчей внутри чемпионата, но отразится на матчах еврокубков (если соперники из разных чемпионатов), потому что рейтинги лиг будут разными. Будем инициализировать рейтинги только перед самым ранним сезоном. Рейтинги, полученные по итогам сезона, будем передавать в следующий.

Мы должны учесть то, что в межсезонье составы команд могут сильно поменяться. В этом нам поможет параметр rating deviation из самой модели Glicko-2. В начале турнира рейтинги меняются сильно, так как модель плохо знакома с командами, но по мере накопления истории матчей рейтинги меняются все меньше и меньше. Мы будем обновлять этот параметр перед каждым сезоном.

Также введем параметр "склонности усиливаться/ослабляться при переходе в другую лигу". Командам, поднявшимся в высшую лигу или опустившимся во вторую, немного изменим рейтинг. Это позволит нам хоть немного уловить тенденцию в разных странах проводить активную трансферную компанию при переходе из одной лиги в другую.

Инициализация рейтинга для новых команд. Командам, пробившимся во вторую лигу из третьей, будем присваивать особенный рейтинг в начале сезона. Введенный выше параметр рейтинг лиги характеризует средний рейтинг лиги. Будет неправильно этим значением инициализировать рейтинги новых команд. Очевидно, что средний рейтинг новых команд будет, скорее всего, ниже среднего рейтинга старых.

Здесь есть и другая проблема. Такой подход приведет к инфляции рейтингов в лиге. Напомним суть модели. Команды начинают сезон с определенным рейтингом. После каждого матча рейтинги меняются: у победителя рейтинг увеличивается, у проигравшей команды - уменьшается. Соответственно, в каждой лиге сумма рейтинговых очков примерно постоянна (пополнение/убывание происходит только за счет кубков и еврокубков), и по итогам сезона она просто перераспределится. С приходом новых команд сумма очков возрастет. Новые команды раздадут свои рейтинги более сильным соперникам. Так как часть из них будет возвращаться в более слабую лигу, то средний рейтинг команд в чемпионате с каждым сезоном будет расти. (На самом деле, сумма рейтингов команд в лиге в начале и конце сезона может немного отличаться, так как у команд разные параметры rating deviation, но сути это не меняет.)

Заметим, что вышеописанные параметры привязаны к каждой лиге, а не к команде. С одной стороны, это не вполне верно, так как, например, фактор домашнего поля для разных команд разный. С другой, если мы будем вводить свой набор параметров для каждой команды отдельно, то модель переобучится.

Мера качества модели

Подберем параметры таким образом, чтобы точность прогноза была максимальной. Точность будем оценивать метрикой log loss. Особенность этой функции ошибки состоит в том, что она учитывает не сам факт исхода (предсказывали победу, а команда не выиграла), а вероятность. "Модель посчитала 70%, что команда выиграет, а она не выиграла" хуже, чем "модель посчитала 40%, что команда выиграет, а она не выиграла".

Преимущества данного подхода

Модель учитывает уровень соперников. 

Модель учитывает текущую силу команды во время участия в еврокубках. Это помогает более трезво оценивать силу лиги в том плане, что если команда в прошлом сезоне играла хорошо (потому и попала в еврокубки), а в этом сезоне играет хуже, то модель через рейтинг команды учтет это. Алгоритм неявно учитывает, что представители страны в еврокубках могут не являться лучшими командами в лиге на данный момент.

Рейтинги лиг неплохо интерпретируются. В таблице ниже представлены вероятности победы, ничьи, поражения в зависимости от разницы в рейтингах.

Например, разница в 200 баллов между рейтингами означает, что прогноз на матч между командами на нейтральном поле будет примерно таким: 64% на победу фаворита, 20% на ничью, 16% на поражение.

Рейтинги более-менее актуальны. Да, мы обучали алгоритм на 4 сезонах, однако, результаты предыдущих сезонов со временем становятся менее важными. Сложно сказать, с какой скоростью затухают результаты старых матчей, но такой эффект есть. При этом мы можем управлять этим затуханием, меняя параметр rating deviation.

Проблемы

Основная проблема модели в том, что она строится только на результатах матчей.

И если противостояний внутри чемпионата достаточно, то матчей еврокубков не очень много. Эта проблема особенно актуальна для не топовых лиг, команды которых сыграли буквально пару десятков матчей в ЕК за последние 4 сезона. Здесь, кстати, проявляется еще одна проблема рейтинга УЕФА: последний квалификационный раунд в ЛЕ становится очень ценным. Во-первых команда получает приличный бонус за попадание в группу, во-вторых у нее есть 6 матчей, чтобы набрать дополнительные очки, а штрафов за поражения не предусмотрено.

Частично эта проблема решилась сама собой. Появился новый турнир Лига Конференций. Матчей стало больше, осталось подождать, чтобы накопить историю встреч. А пока сложно трезво оценить уровень чемпионатов за пределами топ-40 рейтинга УЕФА, матчей мало.

Похожая история со вторыми лигами. Рейтинг считается на "взаимодействии" с первой лигой. Но переходных и кубковых матчей не очень много, а в межсезонье команды могут сильно поменять состав. Да, мы придумали соответствующий параметр, но он описывает ситуацию в среднем. Да и сами вторые лиги в большинстве стран представляют собой что-то не совсем постоянное. Много молодежных/дублирующих составов команд, которые сильно меняются в течение сезона. Нередки ситуации, когда команды вообще снимаются с турнира. Поэтому к рейтингам вторых лиг нужно относится с долей скепсиса.

Другая проблема заключается в том, что модель будет медленно реагировать на резкие изменения составов команд. Мы уже понимаем, что Ньюкасл в ближайшее время будет сильнее, однако модель это поймет только тогда, когда команда начнет всех выигрывать.

Чем рейтинг УЕФА лучше?

Мы показали, чем наш рейтинг лучше рейтинга УЕФА. Однако сможет ли подобный метод заменить текущий рейтинг? Думаю, что нет, так как у рейтинга УЕФА есть одно неоспоримое преимущество - прозрачность. Будет очень сложно объяснять футбольным чиновникам, что их клуб не участвует в ЕК, потому что так модель насчитала.

Многие слышали фразу, что все модели неправильные, но некоторые из них полезны. Однако нужно понимать, что все модели неправильны по-своему. Дурацкий пример: предположим мы построили две модели, которые предсказывают будущего чемпиона РПЛ. Одна модель предсказала Спартак, вторая предсказала Локомотив, а чемпионом станет Зенит. Точность обеих моделей одинаковая, только прогнозы разные.

Однако я все равно считаю, что текущую версию рейтинга УЕФА можно сделать лучше, при этом сохраняя ее прозрачность. Например, баллам полученным в недавних сезонах давать больший вес. Так рейтинг станет актуальнее и страны не будут пользоваться былыми заслугами.

Результаты

В первой таблице представлены средние по командам рейтинги лиг. Поскольку количество команд в разных лигах отличается, также посчитаем средние рейтинги по лучшим десяти и пяти командам (вторая и третья таблицы).

Средний рейтинг команд в лигах
Средний рейтинг десяти лучших команд в лигах
Средний рейтинг пяти лучших команд в лигах
Рейтинг УЕФА
Топ-50 клубов Европы
Рейтинг клубов РПЛ

Зачем тогда это все нужно? Селекция

Одна из самых больших проблем футбольной аналитики - это перенос статистики. Игрок продемонстрировал такой-то уровень в чемпионате Дании, но что он покажет, если перейдет в чемпионат Италии? Четкого ответа на такой вопрос нет, и вряд ли когда-то будет при текущем количестве матчей.

Однако подобные рейтинги могут помочь в принятии решений относительно трансферов.

Также рейтинги могут помочь в планировании зимнего трансферного окна. Примерно в ноябре-декабре на основе рейтингов команд можно просимулировать остаток сезона, оценить шансы на попадание в ЕК или вылет (например, так). На основе прогнозов подумать, нужно ли команде усиление в зимнее ТО.

***

Скинул в телеграмм-канал весь список клубов. Можно поиграться.