Продвинутая работа с футбольной статистикой. Оцениваем силу атаки и силу защиты команд.

9 октября 23:36

Всем привет!


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


Сразу скажу, в тексте будет немного математики, но она будет простая, никаких рядов Фурье или факториалов.


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

 

59dba8907fdaa_1507567760.jpg

Расчет силы атаки и силы защиты

Итак, начнём с вводных данных. Нам понадобятся результаты всех матчей. Также я буду использовать xG-выкладки по каждому матчу, как дополнительный параметр, который позволит дополнить картину.


Всего было сыграно 7 туров - ни много ни мало, но это почти четверть чемпионата.


Шаг 1.


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


В итоге получаем следующую формулу:

average = (allGoals / matchesCount) / 2.


Думаю, что дополнительного объяснения здесь не требуется.


Всего было забито 154 мяча в 63 матчах. В среднем это 2.44. На каждую команду по 1.22 в среднем.


Шаг 2.


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

averageTeamScore = (allGoalsScore / matchesCountTeam);
 averageTeamMiss = (allGoalsMiss / matchesCountTeam);


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


Для каждой команды я считать не буду, пусть это будет Боруссия Д.


Боруссия Д забила 21 гол в 7 матчах - это 3 гола за игру. И пропустила всего 2 гола - это 0.28 за игру.


Шаг 3.


Высчитываем коэффициенты.


Думаю, что догадливые читатели уже начали подозревать, что мы будем делать сейчас - это делить одно на другое.

ratioTeamScore = averageTeamScore / average;
 ratioTeamMiss = averageTeamMiss / average;


А также попробуем получить суммарный кэф.

ratioTeam = ratioTeamScore / ratioTeamMiss.


Опять же для Боруссии Д получим следующее:


Сила атаки - 2.45. Сила защиты - 0.23. Общий показатель - 10.6.


Шаг 4.


Заносим всё это в табличку и смотрим, какие результаты получились. Я посчитал это для каждой команды, а также сделал табличку по xG. Внимание, в данном случае я округлял до десятых и из-за этого цифры получились чуть другие.


Итого.


Что мы имеем в итоге? В итоге мы получили некоторые коэффициент, который мы можем использовать для прогнозирования.


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

 

thumb_59dbb243a16cb_1507570243.png
Слева рейтинг по голам. Справа рейтинг по xG.

Какие у методы минусы и какие доработки можно сделать?

Итак, мы получили по достаточно простым формулам выкладки, которые можно использовать при прогнозировании. Однако, стоит поговорить о минусах и возможных доработках, которые следует учитывать как при работе с этим метод, так и при использовании других.


- низкое количество матчей.


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


Количество матчей, которые проводят команды за сезон - это 30-40 матчей. И это на протяжении 9-10 месяцев. За это время у команд могут меняться тренеры, игроки, финансовое положение. Команды только набирают свой "статистический пул" и выстраивают тенденции, как происходит смена тренера. Я такое наблюдал в этом сезоне во второй Бундеслиге, было сыграно 9 туров, но уже было 7 тренерских отставок.


Основное правило, которое используется при измерениях - это то, что их нужно сделать большое количество в примерно одинаковых условиях. Это позволяет выявить статистические погрешности и при этом понять тенденции.


Играй команды внутри одной лиги 9-10 матчей, то можно было получать более понятные и явные статистические тенденции. Когда эти 10 матчей "размазаны" на 2 месяца и при этом разбиты на отрезки из-за матчей сборных, судить о трендах и особенностях команды становится сложнее.

 

59dba8f673dae_1507567862.png


- работа с усреднёнными величинами.


Я думаю, что для большинства читателей будет понятен смысл словосочетания "средняя температура по больнице". Когда мы берём числа из большого разброса данных и получаем нечто среднее, что не показывает общую картину. Использую средние величины мы рискуем нарваться на некоторые ошибки в анализе.


Есть пример, которые я считал немного высосанным из пальца. Звучит он так "команда в одном матче может забить 6 мячей, а в пяти других 0, но при этом в среднем они забивают 1 мяч за игру". Этот пример недавно "материализовался" в чемпионате России. Есть такая команда, как Рубин, которая "отгрузила" 6 мячей Анжи, а в шести следующих матчах забила всего 3 мяча. Получается, что за 7 матчей Рубин в среднем забивает 1.3 мяча за игру. Согласитесь, что оперировать такими цифрами будет совсем не правильно. Разве только вам нужно "подогнать ответ", то есть какими-нибудь цифрами подкрепить вашу ставку.


Что делать? В прошлом пункте мы немного рассуждали про "статистическую погрешность". Такие цифры можно назвать "отличными от нормальных", поэтому их можно "нормализовать". То есть, для Рубина было бы нормальным забить 1-3 мяча, поэтому можно считать, что Рубин победил 2 - 0. Как правильно "нормализовать" с математической точки зрения я не буду рассказывать - это уже выходит за рамки этой статьи. Также стоит отметить, что проблема "нормализации" отпадает, когда рассматривает большой диапазон матчей(от 50). На большом отрезке статистические погрешности влияют на конечный результат в меньшей степени. И то, что может выглядеть погрешностью на малой дистанции, на длинной может стать закономерностью.


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


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


Ну и, завершая пункт, не стоит забывать про xG-модель и визуальный анализ. Применительно к матчу с Рубин - Анжи станет понятно, что в том матче шестью голами и не пахло.


- разная сила команд.


Или "не все голы одинаково полезны".


Думаю, что понятно, что все команды разные. У кого-то сильная атака, у кого-то сильная защита. Забить гол условному МЮ или Борнмуту - это две разные вещи.


Что делать в этом случае?


Решать проблему можно по-разному. Одни из способов - это повышать или понижать "цену" забитому голу в зависимости от команды. Можно это сделать через "коэффициент" корректировки. Попросту говоря, если у команды слабая защита, то делить забитые голы в её ворота "на два" или "на три". Данный способ требует хорошего понимания силы той или иной команды. И, в идеал, нужно классифицировать каждый гол по-разному(в зависимости от условий в котором он был забит). Грубо говоря, если гол был забит с "левого" пенальти, то он вряд ли может что-то сказать о силе или слабости команды.


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


- высокая цена гола.


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


Что делать? Смириться с этим и использовать дополнительные средства анализа. Например, xG-метод для этого хорошо подходит. Там нет целых величин, а есть числа с десятичной и сотой долей. Соответственно, разница между показателем 1.9 и 0.9 по xG - это разница в десять пунктов. Хотя команды могут забить одинаковое количество мячей при таких показателях.


- нет разделения на домашние и гостевые матчи.


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


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


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

Резюме

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


Помимо этого были рассмотрены важные нюансы статистики про которые не стоит забывать, когда вы работаете с ней.


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


Спасибо за внимание! Подписывайтесь на блог, чтобы не пропустить обновления.

Интересный материал?
Да5
Нет0
Автор
Блог • 203 очка • 8 место
Комментарии (2)
Start typing your username
Загрузить фото
12 октября в 14:57
+
+1
-
#
Я пришёл к примерной таблице через интуитивное ощущение нехватки информации по результатам последних 10 матчей команд(изначально) и их последним пяти гостевым и пяти домашним(что было позднее).от себя замечу,что вести один чемпионат и создавать и модернизировать под себя различные таблицы гораздо выгоднее(тоже,блин,континент открыл,однако,будучи от природы безмерно упрямым обладателем чугунной башки,которой и осязал Мир на прочность,упорно отмахивался от этого несколько лет,делая регулярные вклады в пенсионный фонд буков),чем всего два,и позволяет с различной скоростью прийти к неубыточности с довольно радужными перспективами.
Спасибо за бесценную информацию,мне здорово повезло,что оранж привёл по ссылке сюда,я же до этого всё ожидал Ваши мысли и материалы на .ру.DAX
Ответить
12 октября в 15:29
+
0
-
#
Спасибо и вам)
Ответить
Статистика за декабрь / за всё время
Top 10 Эксперты Гандикаперы
Top 10 Ставки Прибыль
Forward 8/0/0 +6 340 ₸
Еркинулы 6/0/3 +3 240 ₸
Гутцайт 6/1/1 +2 610 ₸
Кашин 4/1/0 +2 540 ₸
Олейник 2/0/0 +2 300 ₸
Вуйтек 5/2/2 +2 260 ₸
Сторонние 12/0/9 +2 020 ₸
Ptolmees 3/2/2 +1 660 ₸
Пардо 6/0/6 +1 450 ₸
Трифонов 3/0/1 +1 320 ₸
Эксперты Ставки Прибыль
Еркинулы 6/0/3 +3 240 ₸
Гутцайт 6/1/1 +2 610 ₸
Олейник 2/0/0 +2 300 ₸
Вуйтек 5/2/2 +2 260 ₸
Сторонние 12/0/9 +2 020 ₸
Пардо 6/0/6 +1 450 ₸
Светоч 6/2/2 +1 230 ₸
Пирожков (1) 11/1/9 +970 ₸
Муканов 3/0/2 +490 ₸
Маулен 3/0/2 -30 ₸
Сейтханов 5/0/3 -100 ₸
Елагин 4/0/4 -1 030 ₸
Батурин 5/0/5 -1 360 ₸
Байдилда 1/0/2 -1 380 ₸
Райлян (1) 2/0/5 -1 650 ₸
Салинас 3/0/6 -3 480 ₸
Воликов 1/0/6 -5 090 ₸
Гандикаперы Ставки Прибыль
Forward 8/0/0 +6 340 ₸
Кашин 4/1/0 +2 540 ₸
Ptolmees 3/2/2 +1 660 ₸
Трифонов 3/0/1 +1 320 ₸
Aristarxxxov 4/0/2 +680 ₸
Бебуришвили 3/0/4 -990 ₸
VolleyStats 2/0/3 -1 460 ₸
Чаплыгин 1/0/2 -1 470 ₸
VanyaDenver 0/0/2 -2 000 ₸
Arkadiy_bets 3/1/6 -3 920 ₸
Жуков 7/0/10 -4 580 ₸
Basketmen 0/0/5 -5 000 ₸
Федоренков 5/1/9 -5 560 ₸
Top 10 Эксперты Гандикаперы
Top 10 Ставки Прибыль
Жуков 645/29/412 +128 620 ₸
Кириченко 291/20/163 +64 600 ₸
Панков 209/16/117 +56 510 ₸
Пардо 229/1/171 +54 490 ₸
Чаплыгин 223/12/132 +49 030 ₸
Батурин 130/1/100 +19 920 ₸
Маулен 60/1/40 +13 230 ₸
Светоч 235/64/183 +12 285 ₸
VolleyStats 47/1/30 +12 030 ₸
Вуйтек 165/16/127 +9 290 ₸
Эксперты Ставки Прибыль
Пардо 229/1/171 +54 490 ₸
Батурин 130/1/100 +19 920 ₸
Маулен 60/1/40 +13 230 ₸
Светоч 235/64/183 +12 285 ₸
Вуйтек 165/16/127 +9 290 ₸
Сейтханов 55/3/34 +8 470 ₸
Пирожков (1) 410/74/437 +7 045 ₸
Олейник 51/6/53 +3 600 ₸
Гутцайт 190/31/178 +2 630 ₸
Еркинулы 60/1/51 +410 ₸
Райлян (1) 52/5/58 -960 ₸
Байдилда 38/1/36 -3 520 ₸
Муканов 57/4/48 -5 210 ₸
Салинас 160/1/157 -8 320 ₸
Елагин 191/1/214 -14 950 ₸
Воликов 31/7/60 -22 150 ₸
Сторонние 206/10/219 -43 140 ₸
Гандикаперы Ставки Прибыль
Жуков 645/29/412 +128 620 ₸
Кириченко 291/20/163 +64 600 ₸
Панков 209/16/117 +56 510 ₸
Чаплыгин 223/12/132 +49 030 ₸
VolleyStats 47/1/30 +12 030 ₸
Arkadiy_bets 18/1/14 +1 210 ₸
Садовой 32/5/21 +1 100 ₸
Forward 10/1/7 +900 ₸
Aristarxxxov 4/0/2 +680 ₸
Трифонов 86/8/66 +580 ₸
Кашин 33/4/28 -190 ₸
Ptolmees 7/3/8 -1 360 ₸
VanyaDenver 4/1/6 -2 050 ₸
Бебуришвили 257/56/224 -2 620 ₸
Гусев 60/1/54 -5 410 ₸
Федоренков 9/1/12 -5 890 ₸
Basketmen 7/0/17 -10 590 ₸
(