xG (ожидаемые голы)

11 сентября 2026 · ~17 мин чтения

аналитика статистика модель спорт прогнозирование

xG (ожидаемые голы)

xG (expected goals, ожидаемые голы) — вероятность того, что конкретный
удар станет голом. Её оценивает статистическая модель по сотням тысяч
похожих ударов из прошлого. Сумма таких вероятностей за матч показывает,
сколько голов команда «должна была» забить при среднем исполнении, то есть
качество созданных моментов без поправки на везение.

История

Футбол долго считали игрой, которую невозможно измерить. Голов мало, в
среднем два-три за матч. На поле 22 человека, игра непрерывная, и главное
событие, гол, случается слишком редко, чтобы по нему что-то понять.
Статистика десятилетиями сводилась к голам, ударам, угловым и владению.

Первым, кто взялся считать всерьёз, обычно называют Чарльза Рипа
(Charles Reep), отставного офицера Королевских ВВС Великобритании.
Примерно с 1950 года он вручную, карандашом в блокноте, записывал каждое
действие в матчах английских клубов и занимался этим десятилетиями.
Его главный вывод: большинство голов рождаются из атак в три паса и
короче. Этот вывод повлиял на английский «длинный мяч» и сегодня считается
хрестоматийным примером того, как честные данные приводят к неверному
выводу. Рип не учёл, что коротких атак в принципе больше всего, поэтому и
голов из них больше.

В 1997 году Рип вместе со статистиком Ричардом Поллардом (Richard
Pollard) опубликовал в журнале The Statistician статью «Measuring the
effectiveness of playing strategies at soccer». В ней вероятность того, что
удар окажется голом, моделировалась через логистическую регрессию от
расстояния до ворот и угла удара. Это и есть зародыш xG: модель ещё
простая, но идея уже та самая.

Параллельно похожие идеи развивались в хоккее. Примерно в 2004 году
аналитик Алан Райдер (Alan Ryder) опубликовал работу о «качестве бросков»
(shot quality) в НХЛ, а блогеры-аналитики придумали метрики Corsi и Fenwick,
простой подсчёт попыток бросков. Хоккейная аналитика тогда шла на
несколько лет впереди футбольной.

Широкая футбольная публика услышала словосочетание «expected goals»
примерно в 2012 году: аналитик компании Opta Сэм Грин (Sam Green)
опубликовал в блоге OptaPro разбор нападающих Премьер-лиги через ожидаемые
голы. В 2013–2016 годах идею подхватила группа британских и американских
блогеров. Один из их блогов, StatsBomb Теда Кнутсона (Ted Knutson), позже
вырос в компанию-поставщика данных.

Главная веха популяризации — 2017 год, когда BBC начала показывать xG в
передаче Match of the Day. Скептиков хватало: ведущий Sky Sports Джефф
Стеллинг тогда же публично высмеял xG в эфире. Но со временем метрика
стала стандартом: сегодня её показывают трансляции, официальный сайт
Премьер-лиги и почти все спортивные приложения.

Дальше модели усложнялись. Примерно с 2018 года StatsBomb собирает для
каждого удара «freeze frame» (стоп-кадр) — позиции всех игроков в момент
удара, включая вратаря. Модели перешли с логистической регрессии на
градиентный бустинг и нейросети. Появились производные метрики: PSxG
(качество удара после того, как по мячу ударили), xA (ожидаемые
голевые передачи), xT (ожидаемая угроза).

Владельца у xG нет, это понятие, а не продукт. Своя модель есть у каждого
поставщика данных: Opta (сейчас в составе Stats Perform), StatsBomb (по
моим данным, с 2023 года принадлежит компании Hudl), Understat и другие.
Для одного и того же удара их числа могут заметно расходиться.

Что это такое

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

Порядок величин, чтобы было за что зацепиться (цифры примерные и зависят
от модели):

Дальше всё складывается. xG команды за матч — сумма xG всех её ударов.
xGA (expected goals against, ожидаемые пропущенные) — то же самое по
ударам соперника в твои ворота. xGD — разница между ними. npxG
(non-penalty xG) — xG без пенальти: пенальти — отдельная лотерея, и
команде, которой повезло с тремя пенальти за месяц, они сильно искажают
картину. xPts (expected points, ожидаемые очки) — сколько очков команда
набрала бы в среднем, если бы её матчи переиграли тысячи раз с теми же
моментами.

Чем xG отличается от похожих вещей:

xG vs голы. Голы — факт, xG — оценка качества моментов. Разница
G − xG называется перебором или недобором. В ней смешаны удача,
мастерство бьющих и игра вратарей, и по короткому отрезку их не разделить.

xG vs удары. Двадцать ударов издали по 0,03 дают 0,6 xG — меньше, чем
один пенальти. Счётчик ударов награждает за количество, xG за качество.

xG vs PSxG (post-shot xG). xG оценивает удар до того, как по мячу
ударили: позицию и обстоятельства. PSxG (он же xGOT, xG on target)
оценивает после, с учётом того, куда полетел мяч, в угол или в руки
вратарю. Сравнение PSxG с пропущенными голами — главный инструмент оценки
вратарей.

xG vs xA. xA (expected assists) приписывает xG удара игроку, который
отдал последний пас. Партнёр промахнулся с пяти метров — голевой передачи
нет, а xA у пасующего есть.

Аналогии из жизни

Экзамен по билетам. Студент выучил 24 билета из 30, значит, с
вероятностью 80% он вытянет знакомый. Это его «xG»: качество подготовки.
Вытянул незнакомый и получил тройку — это «результат». Судить подготовку по
одной оценке несправедливо, по десяти сессиям уже можно.

Где ломается: билеты не сопротивляются. На экзамене вероятность
фиксирована и не зависит от того, как ты отвечаешь. В футболе соперник
активно меняет вероятности: забила команда первой — и отошла назад,
отдавая удары издали. Проигрывающая бьёт много и плохо, её xG разбухает.
Этот эффект так и называется, score effects (эффект счёта). Кроме того,
студент знает, какие билеты он выучил, а модель xG не знает, кто бьёт:
она считает для среднего игрока против среднего вратаря.

Рыбалка. Опытный рыбак оценивает свой день не по улову, а по тому,
сколько раз закинул в «рыбные» места: у коряги, на свале глубины, на
утренней зорьке. Можно просидеть идеальное утро и уйти пустым, а можно
случайно поймать щуку на мелководье в полдень. Хороший процесс на
дистанции даёт рыбу, но в отдельный день ничего не гарантирует.

Где ломается: у рыбака нет базы из сотен тысяч забросов с известным
исходом, его «модель» — интуиция и опыт, её нельзя проверить. У xG модель
явная и проверяемая. Второе отличие: мастерство рыбака влияет на исход
напрямую, и хороший рыбак стабильно ловит больше среднего. Модель xG
мастерство бьющего как раз выносит за скобки. Если нападающий класса
Месси годами забивает больше своего xG, это не везение, но модель этого не
увидит.

Прогноз погоды. Синоптик сказал «70% дождя», дождя не было. Ошибся ли
он? Нет, если в 3 из 10 таких дней действительно сухо. Прогноз проверяют
не по одному дню, а по калибровке: из всех дней с «70%» дождь должен идти
примерно в 70%. Точно так же проверяют модели xG: среди ударов с xG около
0,2 голом должно заканчиваться около 20%.

Где ломается: погода не реагирует на прогноз, а футболисты реагируют на
счёт и друг на друга. К тому же синоптик сверяется на тысячах дней в год, а
у команды за сезон 30–38 матчей: слишком мало, чтобы шум усреднился.

Главное про xG

xG отделяет процесс от результата. Гол — это результат, в котором перемешаны качество игры и случай. xG — попытка оставить только качество. Та же ловушка есть не только в футболе: мы привыкли оценивать решения по исходу. Покеристка и автор книги «Thinking in Bets» Энни Дьюк называет эту ошибку resulting (оценка по результату). xG — инструмент, который заставляет спросить: «А моменты-то были?»

Как это работает

Шаг 1. Сбор событий. Операторы (сейчас всё чаще в паре с
компьютерным зрением) размечают каждый матч: для каждого удара фиксируют
координаты, часть тела, тип предыдущей передачи (навес, пас в разрез,
отскок), фазу игры (позиционная атака, контратака, стандарт), а в
продвинутых данных ещё и позиции всех игроков. Это называется event data
(событийные данные), в отличие от tracking data (координаты всех игроков
много раз в секунду).

Шаг 2. Разметка. У каждого удара в базе есть метка: 1, если гол, и 0,
если нет. Задача сводится к классической бинарной классификации.

Шаг 3. Обучение модели. Классический вариант — логистическая
регрессия:

p(гол) = 1 / (1 + e^−(β0 + β1·расстояние + β2·угол + β3·[головой] + …))

Коэффициенты β модель подбирает сама по историческим ударам, а функция
1/(1+e^−z) (сигмоида) сжимает любое число в диапазон от 0 до 1. Чем
дальше от ворот, тем меньше p; удар головой при прочих равных опасен
меньше, чем ногой. Современные модели заменяют формулу на градиентный
бустинг (ансамбль решающих деревьев), но смысл тот же: признаки удара на
входе, вероятность на выходе.

Шаг 4. Калибровка. Модель проверяют не по тому, угадала ли она
конкретный удар (это невозможно), а по тому, честные ли у неё
вероятности. Удары раскладывают по корзинам: 0–0,05, 0,05–0,1 и так далее,
и сравнивают среднее xG корзины с реальной долей голов. Для сводной оценки
используют log-loss (логарифмическую функцию потерь) или Brier score
(среднеквадратичную ошибку вероятностного прогноза, её предложил
метеоролог Гленн Брайер в 1950 году).

Шаг 5. Агрегация. xG ударов складывают. Есть тонкость: добивания.
Если в одном эпизоде был удар на 0,4, вратарь отбил, и сразу добивание на
0,5, то наивная сумма 0,9 завышает шанс. Больше одного гола из этого
эпизода быть не могло. Корректно считать вероятность хотя бы одного гола:
1 − (1 − 0,4)·(1 − 0,5) = 0,7.

Шаг 6. Из xG в исход матча. Сумма xG не говорит, кто выиграл бы
«по делу». Для этого матч симулируют: каждый удар — монетка со своей
вероятностью, матч «переигрывают» десятки тысяч раз (метод Монте-Карло).
Вот что показывает симуляция, которую я прогнал для этой статьи. У двух
команд одинаковые 0,8 xG, но устроены они по-разному:

Команда А: один выход один на один (0,6) + четыре удара издали по 0,05
Команда Б: десять средних ударов по 0,08

P(команда не забьёт ни разу):  А ≈ 33%,  Б ≈ 43%
Итог 200 000 симуляций:  победа А ≈ 34%,  ничья ≈ 37%,  победа Б ≈ 29%

Одинаковый xG — разные шансы: одна большая возможность надёжнее россыпи
мелких. Из этих вероятностей победы, ничьей и поражения и получаются
ожидаемые очки: 3·P(победа) + 1·P(ничья).

Шаг 7. Прогноз будущего матча. Для прогноза берут средние xG и xGA
команд за последние матчи, делают поправку на дом и выезд и получают λ
(лямбду) — ожидаемое число голов каждой стороны. Дальше распределение
Пуассона, P(k голов) = λ^k·e^−λ / k!, для каждой команды отдельно. Пример
для λ хозяев 1,5 и гостей 1,0:

             гости 0   гости 1   гости 2   гости 3
хозяева 0      8,2%      8,2%      4,1%      1,4%
хозяева 1     12,3%     12,3%      6,2%      2,1%
хозяева 2      9,2%      9,2%      4,6%      1,5%
хозяева 3      4,6%      4,6%      2,3%      0,8%

Победа хозяев ≈ 48%, ничья ≈ 26%, победа гостей ≈ 25%

Посмотри на два поучительных места. Самые вероятные счета, 1:0 и 1:1,
делят первое место с 12,3%: даже лучший точный счёт не сбывается в 88%
случаев. А ничья, случающаяся в каждом четвёртом матче, почти никогда не
бывает самым вероятным исходом. Поэтому стратегия «всегда ставь самый
вероятный исход» систематически недодаёт ничьих. Модель с независимыми
пуассонами к тому же немного ошибается именно на низких счетах; поправку
к ней в 1997 году предложили статистики Марк Диксон и Стюарт Коулз.

Малые выборки

xG стабильнее голов, но не волшебен. Если команда за 7 матчей набрала 10 xG примерно на 90 ударах, стандартное отклонение числа голов около 3. Значит, от 4 до 16 голов — нормальный разброс без всякого «мастерства» или «кризиса». За сезон из 38 матчей и 50 xG стандартное отклонение около 7 голов. Сплит «дома/в гостях» по трём матчам — это не сигнал, а намёк.

Где встречается в обычной жизни

Где встречается в IT и бизнесе

Кто пользуется

Альтернативы и конкуренты

Когда НЕ стоит использовать

Как пользоваться xG в прогнозе

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

Связанные понятия

Литература и источники

Где встретилось у меня

Вчера в личном проекте прогнозов на РПЛ «совет» из десяти ИИ-«линз» готовил
прогноз 8-го тура, и две из них строились на xG: пуассоновская модель из
xG/xGA и «регрессия к xG». По итогам трёх сверенных туров именно они
оказались худшими предикторами, хуже монетки, а рынок оставался впереди
всех. Отсюда и вопрос, что такое xG на самом деле и почему на семи турах
он проигрывает коэффициентам.

Краткое резюме