Как работают наши прогнозы
Каждое число на этом сайте — результат одного и того же конвейера, который работает одинаково для любого матча. Ни один редактор не выбирает матчи, ни один человек не переписывает вероятность, и ничто не убирается тихо после проигрыша.
Вкратце: рейтинги атаки и обороны, взвешенные по давности матчей, оцениваются по нескольким сезонам результатов, превращаются в полное распределение возможных счетов, сверяются с тем, что закладывает букмекерский рынок, и в итоге публично рассчитываются по реальному результату. Разделы ниже разбирают каждый из этих шагов.
Данные в основе
Движок настраивается на нескольких сезонах завершённых матчей во всех охваченных здесь турнирах: счёт по итогам матча и первого тайма, поданные и пропущенные угловые, а также удары и владение мячом, которые приходят из фида и питают контекстные панели страниц и цепочку запасных вариантов модели угловых. Рядом с ними хранится снимок букмекерских котировок, снятый в момент генерации прогноза и обновляемый, пока матч ещё не начался. Киберспорт, виртуальные и симулированные турниры исключаются через поддерживаемый вручную реестр, а не по совпадению названий, поэтому их счета никогда не смогут исказить рейтинг настоящей команды.
Рейтинги атаки и обороны с затуханием по времени
У каждой команды есть рейтинг атаки и рейтинг обороны — сколько она создаёт и сколько позволяет создать относительно своей среды. Оба оцениваются совместно методом итеративного пропорционального приближения: это решение в замкнутой форме, которое поочерёдно уточняет атаку и оборону, пока весь пул не воспроизведёт реально наблюдавшуюся в нём результативность, причём каждый исторический матч дисконтируется экспоненциальным ядром давности. Свежая форма доминирует, а более старые сезоны угасают плавно, а не обрезаются по произвольной границе сезона. Настройка идёт внутри пулов по странам, объединяющих дивизионы страны вместе с её национальными кубками: кубковые пары становятся мостами между дивизионами, а новичок высшего дивизиона приходит с рейтингом, заработанным против реальных соперников, а не с чистого листа.
Когда данных мало
Сырые рейтинги слишком остро реагируют на малые выборки, поэтому каждый из них подтягивается к опорному значению своего пула пропорционально стоящим за ним данным — это шаг эмпирического байесовского сжатия, который не даёт клубу с горсткой сыгранных матчей выглядеть непобедимым только потому, что два из них закончились со счётом 4:0. Базовые показатели лиг проходят ту же процедуру в сторону среднего по пулу, что не даёт небольшому турниру внутри крупного пула уплывать на шуме. Сила этого притяжения определяется эффективным размером выборки, а не числом матчей, поэтому сильно дисконтированные старые игры справедливо весят меньше.
От рейтингов к распределению счетов
Для каждого матча рейтинги обеих команд и базовые домашние и гостевые показатели турнира дают ожидаемое число голов для каждой стороны. Эти ожидания разворачиваются в полную сетку вероятностей счетов — каждый правдоподобный исход начиная с 0:0 — с поправкой Диксона — Коулза на хорошо задокументированную зависимость между двумя счетами в малорезультативных матчах, то есть ровно там, где независимые пуассоновские модели ошибаются и где реально живёт футбол. Исход матча, точный счёт, тотал больше/меньше, обе забьют, двойной шанс и азиатский гандикап читаются с одной и той же нормированной сетки. Поэтому два публикуемых нами рынка не могут противоречить друг другу: котировка тотала и котировка точного счёта — это одно распределение, показанное дважды.
Как правильно читать рынок
Там, где есть букмекерские котировки, они не принимаются за чистую монету. Опубликованные коэффициенты включают маржу букмекера, поэтому сначала маржа снимается, а коэффициенты переводятся в справедливые вероятности. Затем линии гандикапа и тотала решаются как система относительно двух величин, которые рынок выражает на самом деле, — превосходства одной команды над другой и ожидаемого числа голов; это гораздо более устойчивый сигнал, чем любая отдельная котировка. Четвертные линии оцениваются ядром с разделённой ставкой, точно обрабатывающим случаи половинного выигрыша и половинного проигрыша, вместо округления до ближайшей целой линии, как молча делает большинство публикуемых моделей.
Отдельная модель угловых
Угловые не выводятся из голов. У них собственные рейтинги атаки и обороны — поданные и пропущенные угловые, рассчитанные тем же взвешенным по времени методом; они прогнозируются для каждой стороны, а затем оцениваются против точной линии угловых конкретного матча через дискретизированное непрерывное распределение, а не по таблице соответствий. Если история угловых команды слишком бедна, модель спускается по заданной цепочке: сначала рейтинги, затем статистика матча в реальном времени, затем только рынок. Если ни один из уровней не проходит порог, модель сообщает об отсутствии данных, а не выдумывает число.
Объединение с весами по точности
Модель и рынок объединяются взвешиванием по точности на основе эффективного размера выборки: для команд с бедной историей основную часть веса берёт рынок, в глубоко покрытых лигах — модель, а переход между ними непрерывный, а не переключатель. Если после такого объединения сохраняется разрыв в ценности 5% и более, прогноз помечается как value — модель заявляет о преимуществе, которого нет в котировке, и говорит об этом публично до стартового свистка, где это потом можно проверить.
Калибровка и тесты вне выборки
Ничего не выходит в продакшен только потому, что бэктест красиво выглядит. Движок проверяется примерно на полумиллионе исторических матчей при строгом разделении вне выборки: рейтинги считаются только по тому, что было известно до конкретного стартового свистка, а исходы оцениваются логарифмической функцией потерь и оценкой Брайера — строгими правилами оценивания, которые наказывают уверенную ошибку, а не поощряют её, — вместе с процентом попаданий против линии и разбитыми по интервалам кривыми калибровки, проверяющими, действительно ли прогноз с вероятностью 60% выигрывает примерно в 60% случаев. Версия, не достигшая порогов приёмки, в продакшен не идёт.
Без ручного отбора
Прогноз получает каждый подходящий матч настоящего футбола — никакого выбора удобных случаев. Прогнозы замораживаются за 30 минут до стартового свистка, и каждый замороженный прогноз рассчитывается по итоговому результату и учитывается в публичном реестре точности — как выигрыши, так и проигрыши.