«Футбол в цифрах»: как аналитика может улучшить ситуацию с футболом в России

Привет, Хабр! Меня зовут Владимир Герингер, я автор проекта «Футбол в цифрах». В нём я собираю футбольную статистику, анализирую данные, вывожу закономерности и рассказываю аудитории о самом интересном в виде коротких заметок и подробных статей. Данные — моё хобби, я собрал их достаточно, чтобы сделать выводы об основных проблемах российского футбола и предложить решения.

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

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

a5b0ad94a90c2a28896c42c4d7dffd37.jpgВладимир Герингер

Автор проекта «Футбол в цифрах»

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

Как собираю данные: от парсеров до переписки

Большой массив информации из открытых источников я собираю автоматически. Для этого я написал несколько специальных парсеров на Python, пользуюсь ими и двумя библиотеками: Selenium и BeautifulSoup.

def get_playerinfo(player, main, players_dict, playersinfo_dict, assists_dict):
    number = int(player.div.string)
    player_country = player.span.get('title')
    
    shortname = player.a.string
    if shortname is None:
        shortname = player.a.contents[0]
    shortname = shortname.strip()
    
    link = re.search('/\S+/', player.a.get('onclick'))
    if link is None:
        return [np.nan, number, np.nan, shortname] + [np.nan] * 13 + [player_country]
    player_link = flashscore + link[0]
    name, role, bd_date, bd_strmonth = get_playerinfo_dict(player, shortname, player_link, playersinfo_dict)
    
    id_player = get_idplayer(name, players_dict)
    
    events = player('div', class_='icon-lineup')
    
    goals, assists, penalties, yc, rc, autogoals, starttime, endtime, playtime = get_time_event(main, events)
    
    assists = assists_dict.get(shortname, 0)
        
    return [role, number, name, shortname, id_player, starttime, endtime, playtime,
            goals, assists, yc, rc, penalties, autogoals, player_link, bd_date, bd_strmonth, player_country]

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

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

Анализ по ногам футболистов, в частности количества левшей по командамАнализ по ногам футболистов, в частности количества левшей по командам

Кроме того, информацию об игроках младше 18 лет приходится обновлять. Молодые люди ещё продолжают расти, а параллельно переходят в следующую возрастную лигу: из юношеского футбола в молодёжный, из молодёжного — во взрослый. Недавно я собирал данные о юношах 2006–2007 годов рождения, они совсем скоро перейдут следующую лигу, соответственно, на очереди аналогичная работа с теми, кто на год-два младше.

Я хочу собрать в одну базу антропометрию футболистов разного возраста и разных стран: это данные о 55 тысячах человек.

Что я делаю с данными потом

Данных набралось на целых 65 столбцов таблицы Excel. Я их преобразую, загружаю в облако Microsoft Azure и работаю с данными с точки зрения анализа и поиска закономерностей.

Размещение в облачное хранилище было для меня самой сложной задачей с технической точки зрения. Excel закончился на миллионной строке, и нужно было решать, какую систему использовать дальше. Мне была важна возможность подключиться из любой точки и проводить свой анализ. Я сделал несколько пробных версий системы в Yandex.Cloud, Amazon и Azure и остановился на последнем. В течение двух с половиной недель я загружал в систему данные, разбирался с серверной версией. Поначалу скрипт тормозил из-за особенностей синтаксиса. Особенностям синтаксиса mySQL иногда приходилось учиться на ходу и искать их в Google и на тематических форумах. Если бы у меня были средства на развитие проекта, все пошло бы быстрее, но я выбрал самый экономичный вариант.

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

Графики должны быть простыми и понятными аудитории. Любой неожиданный инсайт нужно визуализировать настолько, чтобы люди без сомнений поняли, о чём идет речь, и Tableau предоставляет такую возможность.

Зачем нужно знать, сколько левшей в мировых сборных

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

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

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

Есть и характеристики, связь между которыми установить невозможно. Например, корреляции между антропометрическими данными и гонорарами игроков нет совсем. Кроме того, доходы футболистов разнятся в сотни раз даже в рамках в одной команды. Это не отдел фирмы, где существует вилка зарплат: бывает так, что один игрок получает в месяц сумму, сопоставимую с зарплатой офисного работника, в то время как гонорары его товарища по команде исчисляются миллионными суммами. Западные футбольные клубы уже часто работают с аналитическими отделами, изучают в том числе и финансовые показатели. К примеру, Кевин де Брейне, атакующий полузащитник «Манчестер Сити», недавно устанавливал влияние своей игры на доходы команды: в итоге ему повысили гонорар вдвое сроком на 5 лет.

Не диванная аналитика: что ещё показали данные

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

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

На старте проекта я смотрел количество игроков на разных позициях в разных командах. Состав команды влияет на стиль игры. К примеру, в столь разных странах, как Словения и Нигерия, принят стиль игры без центра поля, со слабыми защитниками, и число опасных атак доходит до 80%. В России самая маленькая доля нападающих — около 20%. В то же время в странах с более успешными командами процент нападающих значительно выше, и это сказывается на качестве игры.

У нас идёт явный перекос в сторону полузащиты, в то время, как Бельгия, Италия, Испания, Англия и так далее имеют примерно равную долю между защитниками и полузащитниками, а также долю нападающих выше, чем в России.У нас идёт явный перекос в сторону полузащиты, в то время, как Бельгия, Италия, Испания, Англия и так далее имеют примерно равную долю между защитниками и полузащитниками, а также долю нападающих выше, чем в России.

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

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

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

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

Я анализировал число клубов, прошедших через разные дивизионы в разных странах: в Англии это 4 дивизиона, в Германии — 3, в России РПЛ и ФНЛ. За 5 сезонов в России сыграло столько же команд, сколько и в Англии, но в высших лигах держатся не все. В то же время, история некоторых британских клубов составляет десятки и сотни лет: они не пропадают, не банкротятся и играют, хоть и не всегда в высших эшелонах. Взять хотя бы «Фулхэм», старейший футбольный клуб Лондона. Он существует с XIX века и всё это время то попадает в премьер-лигу, то вылетает из неё, но не прекращает свою деятельность. У нас такого практически нет, многие клубы стремительно банкротятся после попадания в высшие лиги.

О планах на будущее

Проект «Футбол в цифрах» — не работа, а хобби, хотя есть планы со временем его монетизировать. В 2022–2023 году я планирую подтянуть данные InStat и Wyscout о ТТД (технико-тактических действиях) и трекинговые данные. Эта информация позволяет увидеть передвижения игрока во время матча и используется для более прогрессивной аналитики. Мне интересны раскладки для каждого игрока, ряд метрик каждого матча, данные о координатах поля: так можно анализировать, что происходит в голове у тренера команды соперника. Меня интересует около 30 стран: это и европейские страны, и Латинская Америка, и Китай. Но всё это, конечно же, требует времени и денег.

Итак, на графике представлен точечный график, на котором три оси:  Y — голов на команду X — отборы на команду Размер бабла/шарика — процент опасных атак  Эти метрики описывают, как атакующие действия, так и оборонительные. Их сочетание говорит о качестве футбола.Итак, на графике представлен точечный график, на котором три оси:

Y — голов на команду X — отборы на команду Размер бабла/шарика — процент опасных атак

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

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

Я очень увлечён тем, чем занимаюсь: часто сижу до полуночи и что-нибудь с интересом доделываю. Конечно, сбор и подготовка данных занимают много времени, но они как раз и составляют большую часть успеха. Иногда нужно долго думать над тем, как соединить данные, постоянно чего-то не хватает, но для меня это ещё одна возможность учиться и развиваться. Год назад я прошел курс Data Science от Нетологии. Это очень помогло расширить кругозор и понять, как можно работать с информацией. Очень надеюсь, что со временем мой проект превратится в нечто полезное не только для любителей, но и для профессионалов, а мои наработки кто-то захочет использовать для развития футбола.

© Habrahabr.ru