PunchArmy sends 600 soldiers to India for trainingESPNWhat worked -- and what didn't -- in 12 NBA season debutsInquirerLOOK: Paolo Duterte files libel raps vs Matibag, GMAESPN DeportesMaxey y Sixers remontan 29 puntos para vencer a CavaliersBollywood HungamaZee Studios sets February 5, 2027 release for Omung Kumar’s Silaa, starring Harshvardhan RaneThe Jerusalem PostIDF soldier indicted for firing on Palestinian vehicle, seriously wounding 18-year-old womanDaily MaverickBHEKISISA: SA’s regulators are struggling to keep up with black market weight-loss jabsZDF heuteAktuelle Pressemitteilungen des ZDFVariety‘Big Boys Don’t Cry’ Review: Masculinity and Its Constructs Are Explored in a Revealing Docu-Fiction Study of Egyptian BodybuildersRolling StoneLos Tigres del Norte to Headline Voto Latino’s Rally in Texas Ahead of Midterm ElectionsSCMP ChinaWhat Beijing’s two-to-one shipbuilding lead means for the US in war over TaiwanThe Straits TimesSingapore needs 3,000 more volunteers by 2030 as roles expand
The Daily Newsstand · Free, Always
Friday, October 23, 2026

Проанализировал 50 тысяч матчей по настольному теннису в поисках математических закономерностей

Translate

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

В зале для настольного тенниса, в отличие от того же футбола, нет дождя и ветра, у стола стоят только два соперника, партия играется до 11 очков, а весь матч длится до трёх выигранных сетов (или партий, тут как кому удобнее говорить) и укладывается в 15–20 минут. До запуска скриптов мне казалось, что в такой камерной дисциплине класс игрока должен легко переводить игру в предсказуемые рельсы.

Сразу предупрежу: настольный теннис в этой выборке оказался очень непредсказуемым. До матча мой фаворит по рейтингу выигрывал в 54,0% случаев — 23 022 из 42 624 встреч, где перевес Elo был хотя бы 15 баллов. Это на бумаге лучше монетки, но разница гораздо скромнее, чем хотелось бы от системы, которая знает тысячи предыдущих результатов.

При этом закономерности нашлись. Победитель первой партии обычно забирает матч. Лидер 2:0 редко упускает победу. Даже проигранная третья партия оставляет ему хорошие шансы. А некоторые соперники за два месяца успели встретиться десятки раз и устроить между собой отдельный маленький чемпионат.

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

Откуда данные и как устроен сборщик

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

Я написал на Python скрипт-трекер и запустил его на виртуальном сервере. Каждые 20 секунд он опрашивал API линии одного из популярных российских букмекеров по турнирам настольного тенниса и дописывал ход каждого матча в файл архива.

В карточку матча попадали имена и идентификаторы игроков, название турнира, текущий счёт по сетам и текстовая строка комментария вида (11-8 14-12 0*-0). В этой строке зашифрована вся жизнь партии. Завершённые сеты пишутся числами без спецсимволов, а звёздочка * отмечает текущий сет и одновременно указывает игрока, у которого сейчас в руках мяч на подаче. Как только в строке появлялась отметка ИТОГ, матч закрывался и отправлялся в архив.

Первый большой срез я зафиксировал 1 октября 2026 года: в файле тогда было 32 512 завершённых матчей. К 22 октября архив вырос до 50 428 матчей и 202 832 партий с участием 2 134 теннисистов. В итоговых протоколах набрано 3 797 085 очков. Между снимками линия иногда успевает измениться сразу на несколько очков, поэтому по шагам снимков восстанавливается меньше: около 2,05 млн одиночных розыгрышей.

Увеличение базы стало хорошим стресс-тестом. Матчи, которые уже стартовали не позже 1 октября, — это 33 327 игр, включая хвост того вечера после первого среза. На них доли 3:0, 3:1 и 3:2 были 29,9%, 38,0% и 32,2%. На полной базе сейчас 30,0%, 37,8% и 32,2%. Сдвиг не больше 0,2 процентного пункта. То же с главными винрейтами: победитель первой партии был на 71,8%, стал на 71,7%; лидер 2:0 — 90,6% и там, и там.

Анатомия счёта в партиях и матчах

В исследуемых турнирах все встречи проходят в формате до трёх выигранных партий (максимум пять сетов), а каждый сет длится до 11 очков. Если счёт в партии доходит до 10:10, назначается баланс («больше — меньше»), и игра продолжается до тех пор, пока один из соперников не оторвётся ровно на два очка.

Разбор протоколов сразу разрушил стереотип о том, что в настольном теннисе полно проходных матчей в одну калитку. «Сухой» счёт 3:0 — 15 135 матчей, 30,0%. Самый популярный итог — 3:1, 19 038 матчей, 37,8%. Оставшиеся 16 255 встреч, 32,2%, доходят до пятой партии. В сумме четыре или пять партий нужны в 70,0% матчей.

Внутри отдельных партий накал ещё выше. Самый частый счёт сета — 11:9, 34 377 партий, 16,9%. Дальше 11:8 (16,2%), 11:7 (14,6%) и 11:6 (12,4%). Ещё в 17,1% партий соперники доходят до 10:10 и играют баланс: 12:10, 13:11 и дальше. Разгром 11:0 встретился 199 раз на 202 832 партии, это 0,10%. Партия 16:14 нашлась 1 148 раз, 19:17 — 167 раз.

Почему разгром в сете невозможно предсказать до первой подачи

Когда все 199 383 партии разложились на три почти равные корзины (35,19% разгромов с разницей 5+ очков, 30,76% средних сетов и 34,06% упорных концовок с разницей ровно в два очка), возник соблазн научить алгоритм заранее отделять лёгкие сеты от валидольных. Я собрал модель градиентного бустинга LightGBM (алгоритм машинного обучения на деревьях решений) и подал ей на вход всё, что известно о соперниках до удара по первому мячу: разницу в рейтинге, личную склонность обоих теннисистов к разгромам и балансам за карьеру, силу подачи и приёма, историю личных встреч и текущий счёт по сетам.

Проверку устроили без подглядывания в будущее: первые 70% хронологии (139 575 партий) отдали на обучение, а последние 30% (59 808 партий) оставили для экзамена. Результат оказался холодным душем. Метрика ROC-AUC (способность модели отличать один класс от другого, где 0,50 — случайное угадывание, а 1,0 — идеал) составила 0,5177 для предсказания разгрома и 0,5086 для предсказания упорной концовки. Даже когда я убрал из выборки средние сеты и попросил модель решить полярную задачу «Разгром против Паритета», точность составила 51,84% при базовом уровне случайного угадывания 51,14%.

Партия до 11 очков короткая: в ней обычно разыгрывается 15–20 мячей. На такой дистанции пара касаний сетки, удачный край стола или несколько рискованных приёмов навылет легко перекрывают разницу в классе. Поэтому заранее характер партии не угадать, и модель оказывается почти бесполезной до первой подачи.

Ситуация меняется, когда игроки разыграли первые 6–8 мячей. Под разгромом я здесь понимаю партию, в которой набрано меньше 17,5 очка на двоих (например, 11:6 или крупнее). Базовая вероятность такого исхода равна 35,2%. Если после шести мячей счёт 5:1, она вырастает до 53,3%.

Теперь модель можно просить подавать сигнал, только когда она уверена в разгроме на 75% и больше. Чем дальше идёт партия, тем чаще такой сигнал оказывается верным:

Сыграно очков

Пример счёта

Точность сигнала

ROC-AUC

6

5:1

77,5%

0,6380

8

6:2

79,3%

0,6906

10

7:3 или 8:2

82,6%

0,7513

12

8:4 или 9:3

86,3%

0,8157

Равный счёт, наоборот, почти исключает разгром. При 7:7 его вероятность падает до нуля: даже четыре выигранных мяча подряд дадут лишь 11:7, а это уже не разгром. При 8:8 в 75,1% случаев партия закончится минимальной разницей в два очка (11:9 или баланс).

Кто взял первую, обычно выигрывает матч

В футболе я начинал с первого гола. Здесь первым кандидатом стала первая партия. Её победитель забирает матч в 71,7% случаев — 36 163 из 50 428. Обратный исход тоже обычен: примерно три матча из десяти заканчиваются победой того, кто начал с поражения.

Рейтинг немного уточняет картину. Фаворит, выигравший первую, доводит матч до победы в 74,8% случаев (16 633 из 22 233). Если первую он проиграл, остаётся 31,3% (6 389 из 20 391). Уже сыгранная партия даёт для прогноза намного больше, чем небольшая разница рейтингов до неё.

После 2:0 сопернику нужны три партии подряд

Две первые партии один игрок выиграл в 26 700 матчах. Из них он довёл до победы 24 181 — 90,6%. Камбэк со счёта 0:2 случился в 2 519 матчах, или в 9,4% таких ситуаций.

Проверим здравым смыслом, сколько в этих цифрах даёт сам счёт. Представим двух совершенно равных игроков, у которых каждая партия — независимый бросок монетки. Чтобы лидер при 2:0 проиграл матч, ему нужно проиграть три партии подряд: ½ × ½ × ½ = 12,5%. Значит, даже у такого условного лидера 87,5% на победу.

Та же логика работает и для других счетов. Сравним «монетку» с реальными данными:

Счёт по партиям

Шанс лидера у равных игроков

Реальные данные

1:0

68,75%

71,7%

2:0

87,5%

90,6%

2:1

75,0%

77,0–78,2%

Реальные цифры чуть выше, но разница составляет 2–3 процентных пункта. Почти всё преимущество лидера создаёт сам счёт: ему нужно меньше побед, чем сопернику. Чтобы объяснить эти цифры, не нужно предполагать, что лидер психологически подавил соперника. Простая монетка воспроизводит большую часть закономерности.

Если лидер отдал третью, он всё ещё выигрывает в 78% случаев

Меня особенно заинтересовал такой ход матча: 11:8, 11:6, 7:11. Один игрок уверенно повёл 2:0, затем проиграл партию. Хочется решить, что соперник перехватил инициативу и сейчас начнёт отыгрываться.

Таких матчей в архиве 11 565. Лидер первых двух партий всё равно победил в 9 046 из них — 78,2%. По месяцам доля менялась умеренно: 78,8% в августе (1 182 из 1 500), 78,4% в сентябре (4 718 из 6 016) и 77,7% в октябре (3 146 из 4 049). «Отдал» здесь означает только проигранную партию. По счёту нельзя судить, насколько намеренно или небрежно человек её сыграл.

Четвёртую партию этот лидер выигрывает в 55,3% случаев (6 397 из 11 565). Если уступает и её, то при 2:2 забирает пятую в 51,3% (2 649 из 5 168). Получается простая формула:

0,553 + (1 − 0,553) × 0,513 ≈ 0,782

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

Заодно проверилась обратная гипотеза: «выиграл две — теперь отдаст третью». Лидер 2:0 проигрывает третью в 43,3% случаев. В остальных 56,7% он сразу заканчивает матч 3:0. Обязательного отката после двух побед в данных нет.

Размер поражения в третьей кое-что меняет. После проигрыша в два очка лидер берёт матч в 80,2% случаев (3 350 из 4 177), после проигрыша в пять–семь — в 75,7% (2 425 из 3 205). Даже после отставания в восемь очков и больше остаётся 75,4%, хотя таких матчей 668. Это заметная поправка, но основания объявлять лидера «сломавшимся» она не даёт.

К одному счёту 2:1 приходят разными путями

К счёту 2:1 ведут два пути. Первый мы уже разобрали: игрок выиграл две первые партии, а третью проиграл, и дальше побеждает в 78,2%. Второй путь: первые две партии разделили, третью забрал один из них. Такой игрок выигрывает матч в 77,1% случаев — 18 296 из 23 728.

Разница чуть больше одного процентного пункта. Как наблюдение она интересна, но без проверки на новых данных я бы не строил на ней стратегию. К тому же в пятой партии фаворит по Elo выигрывает лишь в 51,7% случаев (7 125 из 13 776): при счёте 2:2 от рейтингового преимущества остаётся совсем немного.

Два разрушенных мифа о подаче и накопительной усталости

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

Даёт ли своя подача перевес, как в большом теннисе

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

Для каждого игрока я вычислил два показателя на основе более чем миллиона розыгрышей:

  • Hold % — доля очков, выигранных на своей подаче;

  • Break % — доля очков, выигранных на подаче соперника.

В среднем по базе Hold составил 52%. Значит, своя подача добавляет лишь около 2 процентных пунктов к шансу выиграть розыгрыш.

Даже у сильнейших игроков лиги эти показатели не превышают 60%:

Роль

Игрок

Показатель

Розыгрышей

Подача

С. Пономаренко

60,4%

849

Подача

А. Журба

58,7%

576

Подача

М. Скакал

58,5%

586

Подача

О. Кубарь

58,0%

1 067

Приём

Л. Гавел

54,7%

508

Приём

С. Сидельцев

54,4%

932

Лучшие подающие выигрывают на своей подаче около 58–60% очков, лучшие принимающие на чужой — 54%.

Дальше проверил на 94 553 тестовых партиях гипотезу: «Если игрок начинает подавать первым при счёте 0:0 (особенно если у него сильная подача), он должен чаще выигрывать сет». Цифры опровергли её полностью:

  • любой игрок, подающий первым в сете, выигрывает партию в 49,7% случаев (46 949 из 94 553 сетов);

  • если у первого подающего показатель Hold выше, чем у соперника, он берёт сет в 50,5% случаев (23 837 из 47 193);

  • если первым подаёт теннисист из топ-10% лиги по силе подачи (удержание своей подачи от 54,7% и выше), он выигрывает сет в 51,73% случаев (4 461 из 8 623 партий; на первом срезе — 50,39%).

Причина кроется в арифметике счёта до 11 очков. В самом частом сете со счётом 11:9 разыгрывается ровно 20 мячей, то есть каждый из соперников подаёт ровно по 10 раз. Даже при 60% удержания подачи шанс забрать оба стартовых очка подряд равен лишь 36% (0,60 умножить на 0,60).

Реальный перевес возникает после того, как очки уже легли на табло. Игрок, который повёл в партии 2:0, забирает её в 68,6% случаев. Тот, кто оказался при 0:2, выигрывает партию в 31,4%.

Устают ли игроки к седьмому матчу за день

В коммерческих турнирах спортсмены играют сериями и проводят за смену от 4 до 8–9 матчей. Логично было предположить, что к пятому или седьмому выходу к столу мышцы забиваются, реакция падает, качество подачи проседает, а «свежий» соперник, только начавший свой игровой день, легко обыгрывает «уставшего».

Самый плотный день в базе по-прежнему 14 сентября 2026 года: 976 матчей и 576 разных игроков. Раньше в заметках у меня стояло 189 игроков. Число матчей то же, уникальных идентификаторов — 576. Затем я повторил проверку на всём архиве. Физического спада к вечеру нет.

Матч за день

Участий

Винрейт

Hold

1-й

33 563

49,9%

51,9%

4-й

12 028

50,5%

52,0%

5-й

5 697

50,1%

51,8%

7-й

1 496

48,7%

51,9%

8-й

760

51,8%

52,0%

Ни винрейт, ни доля очков на своей подаче к поздним выходам не проседают системно. Седьмой и девятый матч чуть ниже 50%, но там уже сотни участий, а не десятки тысяч, и восьмой снова около 52%. Устойчивого вечернего спада нет.

Я отдельно отобрал матчи, в которых «свежий» игрок (у него первый или второй матч за день) играл против «нагруженного» (у него четвёртый и более).  «Свежий» выиграл 49,1% — 2 130 из 4 337. Преимущества у него нет.

Возможные причины: чистая игра занимает 15–20 минут, а перерывы между турами длятся 20–40 минут, так что у игроков достаточно времени на восстановление. К четвёртому матчу они к тому же привыкают к залу, столу и освещению. Это объяснения, а не доказанные факты, потому что в данных нет ни пульса, ни самочувствия.

Вместо мышечной усталости игроков ломает эмоциональный тильт (потеря самообладания после обидных поражений). Если посмотреть на индивидуальные траектории внутри одной смены из 9 матчей, спортсмены резко поляризуются. Например, Д. Мальцев начал день с четырёх побед подряд, а после одной осечки посыпался и выдал серию из пяти поражений кряду (W-W-W-W-L-L-L-L-L). В тот же день С. Скаченко спокойно прошёл дистанцию до поздней ночи с семью победами в девяти играх (W-L-W-W-W-W-W-W-L). Сам по себе порядковый номер матча за день даёт нулевой сигнал, тогда как текущая серия поражений подряд фиксирует психологический надлом.

Одни соперники делят победы, другие месяцами не могут выиграть

В архиве 13 506 разных пар соперников. Когда одни и те же игроки встречаются много раз, можно оценить их личные отношения, не опираясь на общий рейтинг. Самая частая пара — Т. Зика и Я. Шотковски: 42 матча за 58 календарных дней.

Пара

Матчей

Счёт по победам

Особенность

Т. Зика — Я. Шотковски

42

18:24

По партиям 70:97

И. Кузнецов — Р. Зеленский

16

16:0

Кузнецов отдал всего 9 партий

С. Соломко — Э. Популовский

23

22:1

14 побед всухую

История Погонова и Суковатого

Сильнее всего меня впечатлила пара А. Погонов — И. Суковатый. В начале октября у Погонова было 23 победы при нуле поражений. Семь матчей из этих двадцати трёх дошли до пятой партии, и все семь выиграл он: 11:3, 11:6, 11:8, 12:10, 11:4, 11:8 и 11:8.

Дальше серия дошла до 27 побед подряд. 11 и 13 октября Суковатый выиграл. Потом Погонов снова брал свои матчи, включая 22 октября. Итог всего окна — 31:2 по матчам и 95:28 по партиям, 33 встречи. Пятых партий в паре восемь.

Эту серию легко принять за закон. Но я нашёл её, просмотрев тысячи пар, а две победы Суковатого уже показали, чем опасна формулировка «всегда побеждает».

Равные пары бывают разными

Одинаковый счёт по победам не означает одинаково упорной борьбы:

Пара

Матчей

Счёт по победам

Дошли до пятой партии

А. Касьянов — С. Чугай

24

12:12

5 матчей

В. Комар — С. Балабей

13

5:8

11 матчей

Равенство результатов и упорство каждого матча — разные характеристики пары.

Детальный разбор поочковой статистики показал три причины, почему один игрок становится «клиентом» для другого при сопоставимом общем уровне игры:

  1. Конфликт инвентаря и стилей. В настольном теннисе огромное значение имеют тип накладок на ракетке и вращение. Игрок с длинными шипами или антиспином (накладкой, которая гасит чужое вращение и возвращает «плоский» непредсказуемый мяч) может быть лёгкой добычей для тех, кто бьёт плоско, но становится неразрешимой задачей для конкретного атакующего топспинера. Туда же относится неудобная диагональ в паре левши против правши.

  2. Ментальный блок в пятых партиях. В первых 23 матчах Погонова против Суковатого борьба вовсе не всегда была в одну калитку: 7 матчей из 23 дошли до решающего пятого сета (счёт 2:2). При статистической норме 50/50 Погонов выиграл все 7 пятых партий из 7 со счетами 11:3, 11:6, 11:8, 12:10, 11:4, 11:8 и 11:8. Когда счёт становится равным, у «клиента» включается скованность и страх первой победы, а фаворит пары проводит концовку без тени сомнений.

  3. Уничтожение чужой подачи со второго мяча. В доминирующих парах 49–51% всех партий заканчиваются разгромом в 5 и более очков (средний разрыв — 4,4 очка за сет против 3,7 в паритетных парах), потому что доминатор читает вращение соперника на подаче и сразу перехватывает атаку на приёме.

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

Почему Elo знает меньше, чем обещает

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

В шахматах или видеоиграх рейтинг Эло традиционно предсказывает исход партий. В моей системе каждый новый теннисист получал стартовые 1500 баллов, а после каждого матча рейтинг пересчитывался с базовым шагом в 32 очка и надбавкой за уверенность победы (шаг увеличивался в 1,2 раза при счёте 3:1 и в 1,5 раза при разгроме 3:0).

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

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

Игрок с преимуществом минимум в 15 пунктов выиграл 23 022 из 42  624 встреч — 54%. В прежних проходах по истории получалось около 54–55%; новый пересчёт использует более строгий порядок появления и завершения событий. Общий вывод сохранился: преимущество есть, но уверенного прогноза до игры оно не даёт.

Хуже обстоит дело с вероятностями стандартной формулы, где делитель равен 400. В среднем она обещает выбранным фаворитам 61,8%, медиана обещания — 60,2%, а наблюдается 54%. При разрыве 250–399 пунктов формула ждёт 83,5%, игроки выигрывают в 61,6% (397 из 644). Таких встреч мало, и даже там до 90% далеко.

Получается два разных качества. Рейтинг немного помогает выбрать более вероятного победителя, но переоценивает его шансы. Это видно и по логарифмической ошибке — метрике, которая сильнее штрафует уверенные неверные прогнозы. У постоянного прогноза 50% она равна 0,693, у этого Elo на всём архиве — 0,705. Меньше означает лучше. По выбору стороны рейтинг выигрывает у монетки; по качеству заявленных вероятностей в таком виде проигрывает.

Пара вроде Погонова и Суковатого показывает ограничение одного числа на человека: средний рейтинг не описывает все особенности конкретного соперничества. Но и прямая замена Elo на личные встречи не решила задачу. Для большинства пар история короткая, а эффектный счёт 16:0 обнаруживается уже после шестнадцатой победы.

Вывод неутешителен: никаких 80% или 90% вероятности победы до начала встречи в турнирах по настольному теннису не существует. Матч до трёх побед в партиях до 11 очков требует вероятности выигрыша каждого отдельного очка около 57% (и разрыва в Эло около 380 баллов), чтобы фаворит побеждал в 90% матчей. А реальная медиана вероятности очка у фаворита в моей базе составляет около 51%. При таком минимальном перевесе в каждом розыгрыше любая партия превращается в качели. С тем же успехом можно просто подбрасывать монетку (:

Почему даже гибридные рейтинги (Set-ELO и Hold + Break) не спасают прематч

Я попытался улучшить классический Elo с помощью уже посчитанных показателей Hold и Break. Для этого взял 1 370 активных игроков (минимум 200 подач и 200 приёмов у каждого) и сравнил эти показатели с рейтингом с помощью коэффициента корреляции Пирсона. Он показывает силу связи двух величин: от −1 до 1, где 0 означает, что связи нет.

Показатель

Корреляция с Elo

Hold

0,41

Break

0,38

Hold + Break

0,54

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

Сумма Hold + Break растёт вместе с рейтингом. Чем сильнее игрок, тем больше очков он выигрывает и на своей подаче, и на приёме:

Elo

Игроков

Hold

Break

Сумма

ниже 1400

180

50,5%

46,6%

97,1%

1400–1499

542

51,7%

47,4%

99,2%

1500–1599

612

52,5%

48,2%

100,7%

1600–1699

166

53,3%

49,4%

102,6%

1700 и выше

17

53,9%

49,3%

103,2%

Сумма около 100% означает, что игрок в среднем выигрывает примерно столько же очков, сколько проигрывает. Эту границу игроки пересекают в диапазоне Elo 1500–1599: слабее этого уровня они проигрывают больше очков, чем выигрывают, а сильнее — наоборот.

Рейтинг не отражает, как именно человек набирает очки. Это видно на двух группах.

  • «Защитники». Высокий Elo и слабая подача. Т. Винтер (Elo 1631, Hold 47,7%, Break 51,6%) и Ш. Кадавы (Elo 1648, Hold 49,7%, Break 50,5%) берут на своей подаче меньше половины очков.

  • «Однобокие подающие». Невысокий Elo и сильная подача. Я. Новотны (Elo 1441, Hold 57,2%, Break 41,7%) и П. Пузанов (Elo 1408, Hold 56,8%, Break 39,5%) сильны на своей подаче и беспомощны на чужой.

Затем я пробовал усложнить модель: заменил Elo на рейтинг по партиям (Set-ELO с шагом 10 баллов за партию), добавил байесовское сглаживание личных встреч и форму за последние пять игр, обучил на этих признаках бустинг. Точность предматчевого прогноза почти не изменилась:

Модель

Точность

Обычный Elo

54,1%

Set-ELO

54,3%

Комбинированная с личными встречами

54,6%

Почему 90% побед не сделали меня богаче

После всех этих расчётов напрашивается вопрос: если лидер при 2:0 выигрывает в девяти матчах из десяти, что мешает ставить на него? Ничего не мешает, но своими деньгами рисковать не хотелось. Поэтому я проверил идею на виртуальном игроке с виртуальным банком.

Для этого я написал симулятор «бумажных» ставок. Каждые 12 секунд программа опрашивала живую линию и вела несколько независимых виртуальных счетов. Каждый счёт стартовал с 10 000 рублей и ставил по 100 рублей на один сигнал.

Почему самые надёжные проценты сразу оказались убыточными

Первым делом я проверил три простые гипотезы в лоб:

  • входил на победу лидера, забравшего две первые партии (исторический винрейт 90,6%).

  • входил на лидера счёта 2:1, когда тот повёл 2:0 на старте четвёртой партии (исторический винрейт 86,2%).

  • ловил победу догоняющего в отдельно взятом третьем сете при счёте 2:0 (историческая частота 43,3%).

Виртуальные счета подтвердили исторические проценты побед, но всё равно ушли в минус. Дело в безубыточном коэффициенте: чтобы ставки окупались, коэффициент должен быть не ниже, чем единица, делённая на вероятность победы.

Ожидаемый результат ставки в 100 рублей считается так:

100 × (p × k − 1)

, где p — вероятность победы, а k — десятичный коэффициент. Безубыточный коэффициент равен 1 / p.

При вероятности победы 90,6% он равен 1,102. Но букмекер закладывает в линию маржу 6–8%, поэтому на лидера при 2:0 он даёт коэффициент около 1,05–1,08. Выигрыш при таком коэффициенте составляет всего 5–8 рублей со ста, а 9,4% поражений забирают по 100 рублей. В среднем получается минус 2–5 рублей на каждую ставку.

Высокий коэффициент 1,15 и выше букмекер предлагает не просто так: лидер в этот момент уже проигрывает третью партию с отставанием в 6 очков, и его реальные шансы на победу падают до 78%. В итоге все три простых банка я закрыл.

Ловушка «отбора против себя» на счёте 2:1

Основные эксперименты развернулись вокруг счёта 2:1 по партиям, где коэффициенты на лидера держатся в рабочем диапазоне 1,25–1,45. Я запустил в параллельное соревнование три алгоритма:

  1. [табл] — оценка вероятности по эмпирической таблице состояний (путь к счёту 2:1, роль игрока по Эло и текущий счёт внутри 4-й партии).

  2. [модель] — градиентный бустинг LightGBM с изотонической калибровкой вероятностей, обученный на 18 признаках (разница Эло, маржи первых трёх сетов, динамика очков и подача в 4-й партии, форма за 5 игр и история личных встреч).

  3. [отдал] — стратегия под маршрут «вёл 2:0 и отдал третью партию» (базовый винрейт 78,2% на полной базе и 78,7% на обучающем срезе, точка безубытка по коэффициенту — 1,27–1,28).

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

Моя таблица знает среднюю температуру по больнице для счёта 2:1, а букмекерская линия оценивает конкретный матч с учётом стартовых котировок и живого потока ставок. Если при счёте 2:1 букмекер выставляет на лидера подозрительно высокий коэффициент 1,40 или 1,45, он делает это осознанно. Высокая котировка сигнализирует, что фаворит травмирован, поплыл по ходу встречи или изначально шёл глубоким аутсайдером пары. Мой же алгоритм видел в высоком коэффициенте «огромный перевес» и радостно скупал как раз такие проблемные матчи.

Цифры аудита по банку [отдал] показали этот механизм с хирургической точностью: когда расчётный перевес моей таблицы над линией был скромным (менее 3 процентных пунктов), стратегия выигрывала в 79,9% случаев и давала прибыль ROI +2,5% (на 249 ставках). Но когда кажущийся перевес превышал 6 процентных пунктов (коэффициенты выше 1,35–1,40), фактический винрейт обваливался до 64,7%, а убыток достигал ROI −10,1% (а на коэффициентах от 1,40 и выше во всех банках винрейт падал до 60,0% с ROI −12,6%).

Попутно вскрылась поучительная ошибка с попыткой разбить ML-модель на две независимые части: отдельно предсказывать победу в четвёртой партии и отдельно в пятой, складывая из них итоговый шанс на матч. Такая схема считала пятый сет независимым от того, как развалилась игра лидера в четвёртом. В результате при катастрофическом счёте 1:9 в четвёртой партии составная модель продолжала обещать лидеру около 53% на победу в матче (ведь в пятом сете его шанс якобы снова равен 51–53%), хотя в реальности при отставании на 8 и более очков в четвёртой партии лидер выигрывает матч лишь в 45,7% случаев. Алгоритм покупал выросший коэффициент на разгромленного игрока и терял деньги, пока я не вернул единую модель, напрямую оценивающую исход матча с учётом текущего разрыва в очках.

Работа над ошибками и выход в ноль против маржи букмекера

Чтобы остановить скупку «токсичных» коэффициентов и убрать технические утечки, провёл ревизию всего конвейера:

  • заменил ручные поправки на строгую матрицу состояний, собранную по 28 924 матчам (350 072 кадра таймлайна);

  • убрал из обучения модели поздние кадры четвёртой партии (вроде счёта 9:3 или 10:5, где исход уже очевиден и искусственно завышает метрики на тесте) и перевёл проверку модели на строгий временной срез (обучение на истории до последней недели, экзамен — на последних 7 днях);

  • запретил алгоритмам входить, когда лидер уступает в счёте внутри 4-й партии или ведёт с шатким счётом 1:0 и 2:1 в самом дебюте сета;

  • зажал входы в жёсткий ценовой коридор (от 1,25 до 1,40–1,45) и ввели защитный предохранитель: если расчётный перевес над линией превышает 5 процентных пунктов, бот пропускает матч как подозрительную аномалию рынка;

  • Для таблицы в линии [табл] обязал подтверждать каждый вход согласием бустинга (вероятность модели от 80% и выше), так как аудит показал, что в 122 матчах, где таблица и модель совпали во мнении, винрейт составил 84,4% (ROI +9,1%), а в 197 матчах без согласия модели таблица просела до 72,1% (ROI −7,9%).

Итог экспериментов подтвердил два факта. Во-первых, у букмекеров в линию уже вшиты все базовые вероятности настольного тенниса, а комиссия в 6–8% в лайве безжалостно съедает любые простые правила (стратегия [отдал] без фильтра модели осталась в минусе: −1,7% на первой серии из 466 ставок и −7,5% во второй серии из 359 ставок из-за просадки андердогов). Во-вторых, две другие системы — [табл] и [модель] — после очистки данных сумели преодолеть маржу букмекера и научились стабильно играть в ноль и небольшой плюс на дистанции в сотни матчей:

  • стратегия [табл] на первой серии из 341 ставки закрылась с винрейтом 78,3% и возвратом инвестиций ROI +0,7% (баланс 10 239 при старте 10 000), а в обновлённой ревизии на 174 ставках удерживает 78,7% побед, ROI +0,9% (баланс 10 162) и положительный перевес над линией закрытия CLV +1,5% (коэффициент в момент нашего входа в среднем выгоднее, чем через минуту);

  • стратегия [модель] (LightGBM) на первой серии из 205 ставок показала винрейт 83,4% и ROI +7,1% (баланс 11 464 при старте 10 000), а в новой строгой ревизии на 66 ставке идёт с винрейтом 81,8%, ROI +4,7% (баланс 10 308) и CLV +1,9%. Короче, тут улучшение кода и логики привело только на ухудшение ситуации, как напоминание о том, что если что-то работает, то лучше не трогай (:

Что я вынес из этих 50 тысяч матчей

В настольном теннисе нашлись вполне устойчивые числа. Самый частый итог матча — 3:1, партии — 11:9. Победитель первой забирает матч в 71,7% случаев, лидер 2:0 — в 90,6%. Проигранная третья оставляет ему 78,2%, потому что для победы достаточно одной из двух оставшихся партий. Рост архива с начала октября эти доли почти не сдвинул.

Выбор победителя до игры остался близок к монетке с небольшим перевесом. Elo помогает ориентироваться, но стандартная формула уверена сильнее, чем позволяют результаты. Подача, номер матча за день и личные встречи не превратили прогноз в надёжный. А создавать модель, которая учитывала бы тип инвентаря, рабочую руку, любимый зал или стол и даже отношение с судьёй матча — задача, требующая слишком много времени для пет-проекта.

Букмекеры эти вероятности уже учитывают. Маржа съедает простые правила вроде «ставь на лидера 2:0». На счёте 2:1 таблица и модель пока играют около нуля, но серия короткая, а счёт «отдал третью» без дополнительного фильтра — в минусе.

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

После футбола мне снова оказалось интереснее проверять спортивную интуицию на данных, чем подбирать ей объяснения — я не профессиональный математик или статистик, а просто человек с большим любопытством. Серия 27:0 действительно была. Две победы человека, который до этого проигрывал все встречи, тоже были. Обе части истории нужны, если мы хотим описывать спорт, а не только удивляться удачно выбранным примерам.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.