4 мин.

Предсказываем xG 13 тура РФПЛ

"Зачем нужно это ваше xG?" - могут подумать многие, впервые увидев этот показатель. Может сложиться впечатление, что это какая-то ерга и оторванная от жизни математическая абстракция. Однако это далеко не так, и цель систем xG, как и любых других математических моделей, лучшее приближение и, следовательно, лучшее понимание реальных событий. И как любая теория, эта модель получает абсолютное право на существование, как только она начинает обладать предсказательной способностью.

Все, кто обсчитывают xG, так или иначе пытаются предсказывать результаты сезона с помощью проекций текущей формы на последующие матчи. В основе этой методики лежат два факта: во-первых, сумма xG на дистанции стремится к количеству голов, во-вторых, показано (например, тут и ещё в нескольких статьях от Майкла Кэйли и 11против11), что xG хорошо кореллирует с будущими результатами.

Но как предсказать результаты в чуть более близкой перспективе? Логично, что если бы мы знали сколько и какие моменты создадут команды, то наше предсказание результата матча будет точнее. На такой вопрос как раз даёт некоторый ответ методика, предложенная ранее Лёшей Черновым в этом самом блоге. Я решил возобновить подсчёт предсказаний xG на ближайшие матчи, слегка подрехтовав формулы, и даже посмотрел на точность таких предсказаний за последние 3 тура РФПЛ, но обо всём по порядку.

Формула состоит из нескольких логичных предположений:

1. Каждая команда, как правило, играет немного лучше дома, чем в гостях, а у некоторых команд эта разница прямо-таки огромная. Чтобы понять, где и насколько лучше играет команда, посчитаем её суммарные xG дома и в гостях и определим поправочные коэффициенты (если команда забивает дома в 2 раза больше, чем в гостях, то её домашняя поправка будет 1,33, а гостевая 0,66):

 

2. xG, набранные в матчах с сильными соперниками, должны стоить больше, чем xG, набранные с командой без обороны, поэтому каждой команде мы присвоим её силу в последних 5 матчах как сумму её xG в этих матчах:

 

3. Для каждого проведённого командой матча мы будем считать усреднённое (не зависящее от места и противника) качество игры в матче:

4. Для каждой команды посчитаем её атакующий и защитный коэффициенты c как взвешенное среднее качества игры с коэффициентами: 

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

6. Итоговый результат считаем как среднее геометрическое полученных ожиданий:

Вот и все формулы, применим их теперь к матчам трёх последних туров в РФПЛ. Чтобы оценить качество предсказаний, посмотрим на возможные величины, которые могут нас интересовать: разница xG, тотал xG, xG каждой из команд. В зависимости от ошибки будем говорить, что предсказание было идеальным, хорошим, плохим или ошибочным. Например, для разницы xG ошибочным будем называть предсказание, где неправильно назван победитель, плохим, где победитель назван верно, но ошибка больше 0,6, хорошим, если ошибка между 0,3 и 0,6, и идеальным, если ошибка меньше 0,3. В итоге получим следующие результаты:

В общем методику надо ещё тестировать на больших объёмах данных, но видно, что результаты, которые она даёт, довольно релевантны. Так, например, победитель по xG был правильно определён в 14 случаях из 24 и вообще если посмотреть по турам, то правильно угадан победитель по xG в среднем в 5 матчах из 8. Из того, что бросается в глаза, это недооценка Зенита в гостях и переоценка Спартака, в остальном, всё нормально. Ах да, матч Терек-Урал следовало бы исключить из выборки, ведь он и тут довольно странным получился.

В конце хотелось бы применить эту методику к следующему туру:

Здесь вновь скорее всего недооценён Зенит и переоценён Спартак, но остальные цифры выглядят правдоподобно.