2 заметки с тегом

ошибки

Вероятность — не вероятность

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

Предыдущие заметки на эту тему:

Миф о криминальных иммигрантах
https://www.cashin.ru/blog/all/vis-fault-1/

Бессмысленные данные
https://www.cashin.ru/blog/all/times-zero/

* * *

Сегодня посмотрим на графику к чемпионату мира по футболу 2018 года.
https://projects.fivethirtyeight.com/2018-world-cup-predictions/matches/

Авторы ведут блог fivethirtyeight.com и периодически строят прогнозы разных событий.

Вот так выглядела оценка вероятностей в матчах по дням:

Вот такая графика появилась к финалу:

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

Поначалу это внушает доверие. Чаще всего люди примерно с таким впечатлением и уходят, не вникая глубже. А если не уходят, появляются вопросы.

Что произошло вот здесь, в кружочке?

Испанцы забили гол. В самом начале матча. Прогноз стал показывать, что вероятность победы (WIN PROB.) команды Испании резко увеличилась примерно в два раза: с 25% до 48%.

Ладно. Матч только начался и продолжается. В середине тайма снова что-то происходит:

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

Такое происходит еще 4 раза в течение матча — забили всего 6 мячей. Прогноз вероятности прыгает то в одну, то в другую сторону.

В конце происходит совершенно дикая вещь: незадолго до конца матча система показывала вероятность исхода «Португалия победит» как максимальную, на глаз более 80 %. Внезапно (!) испанцы забивают шестой гол. Прогноз вероятности победы Португалии рушится в ноль.

Внимание, вопрос. Почему «вероятность» так сильно прыгает при забивании голов? Вероятность ли это вообще? Авторы явно пишут — да, WIN PROB.

Как на самом деле ведёт себя вероятность? И чем вероятность отличается от текущего счета в игре?

* * *

Давайте так. Представим, начинается чемпионат, и на поле выходят две команды. На трибунах десятки тысяч зрителей, у экранов — миллионы.

Почему команды состязаются друг с другом? Потому что неизвестно, кто победит. Именно в этом интерес.

Иногда одна команда сильнее другой. И, типа, видно, кто победит наиболее вероятно. Но тогда зачем команды выходят на поле? Да потому что всё равно неизвестно! А что если кто-то выложится получше? Потому и состязаются. Шансы есть. Забивай на последней минуте, атакуй, даже проигрывая, никогда не сдавайся, и т. п. Неопределенность заложена в саму суть игры.

Рассмотрим процесс.
Для простоты исключаем ничью, как в финале.
Вот две команды, с какой-то оценкой относительного уровня.
Команда А оценивается как чуть более сильная, чем Б.
Вероятность победы А чуть выше:

Но когда начинается матч, мы не знаем наверняка результат «точно победит команда А». Результат этой игры зависит сейчас от действий конкретных людей на поле. Если хорошая команда будет плохо работать, она не победит. Быть сильной командой недостаточно.

Начинается матч, и менее сильная команда Б забивает гол. Как авторы нашего прогноза в такой ситуации корректируют прогноз? Они показывают резкое увеличение вероятности победы в матче забившей команды:

Вероятность резко повышается... Чувствуете, что здесь что-то не то?
Может ли команда забить гол? Ну, а зачем ей ещё выходить на поле, а-ха-ха! Конечно, может.

Окей. Может ли команда Б забить не один, а несколько голов? Вот так:

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

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

Сколько голов ещё забьет команда А? Ну как сколько. Это неизвестно. Матч же только начался. Исходная картинка наглядно показывает вполне возможный разброс количества голов за игру: 1, 1, 6:

Потому, вполне может быть так:

Итого, возможности забивать есть у обеих команд:

А может забивать.
Б может забивать.
Как распределяются шансы?

Мы полагаем, что более сильная команда имеет больше шансов. Поэтому смещаем прогноз 50 на 50 (обе могут победить) в сторону сильных. 45 на 55, например.

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

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

Природа счёта известна и проста. Это случайные дискретные события на оси времени:

Какая, в данном случае, природа вероятности победы в матче? Чем она обусловлена?

Начало матча: прогноз вероятности основан только на состоянии команд на момент начала. Игра команд не началась и не влияет на начальный прогноз:

Конец матча: один из пунктов достигает вероятности 100%.
Победа А, Победа Б, Ничья.
Например, победила команда Б:

Что происходило с вероятностью в процессе? Как она менялась? Вряд ли как-то так:

Вероятность менялась как-то нелинейно. Какова природа нелинейности?

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

Вот тут в конце матча у Аргентины оставалось настолько мало времени, что люди просто не успели бы физически провести мяч в ворота три раза. В конце игры вероятность победы противника при таком счёте стремится к 100%.

В середине и в начале всё по-другому.

Прогноз должен меняться нелинейно. Но авторы предлагают вот такую странную нелинейность: прогноз скачет и в начале, и в середине, и в конце матча чуть ли не от нуля до ста процентов. На большинстве графиков. Их там 64 штуки, гляньте, повторяю ссылку:
https://projects.fivethirtyeight.com/2018-world-cup-predictions/matches/

За примером снова не нужно далеко ходить, всё та же картинка Португалии-Испании показывает, как резко меняется прогноз даже в конце матча:

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

Все эти прыжки «вероятности» говорят ровно следующее и о прогнозе, и о методике: мы не знаем, кто победит.

При такой высокой дисперсии данных ситуация «мы не знаем, кто победит» в числовом выражении сходится к 50 на 50. Или, точнее, с поправкой на оценку навыков команд. В нашем примере, 45 к 55.

Какой прогноз вероятности заслуживал бы больше доверия? Прогноз с корректировкой на неопределенность и высокий шум данных. Данные о забитых мячах — очень шумные случайные переменные.

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

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

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

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

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

Такой прогноз показывает шум и текущий счёт, а не вероятность:

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

Конечно, это проблема для авторов прогноза, которые рассчитывают на массовую популярность. Потому что более адекватный прогноз 1) выглядит не так драматично, 2) все прогнозы окажутся очень похожими друг на друга. А значит, люди не будут охать и пересылать ссылки. Проклятие медиа: нужно поддерживать волну!

Медиа закономерно чаще выбирают первый вариант, к сожалению.

* * *

Итоги

Показанная метрика больше похожа на входные данные, чем на функцию, которая должна строиться на основе этих данных.
x ≠ f(x)

Счет в игре — это x, а не f(x). Если вероятность так трясет в самом начале матча, это признак шума данных и высокой неопределенности. Высокая неопределенность в числовом выражении означает шансы 50 на 50. Графика не учитывает этого свойства вероятности.

Вероятность оказалась не вероятностью. Это какой-то другой показатель, но не вероятность.

* * *

У блога fivethirtyeight.com миллионы читателей. Популярность не означает правоту.

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

Хочется отдать должное тем, кто непосредственно руками создавал эти графики. Визуально графики так хороши, что их приятно скриншотить и комментировать. Но умножение на ноль даёт ноль.

Дизайн, тестирование, ошибки и логика

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

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

Две крайности:
1) Дизайнер делает продукт совсем без обратной связи.
Полагается на то, что «всё знает» с самого начала, и продукт будет вести себя именно так как задумано на всем протяжении процесса использования.

Плохо: что если возникли неучтенные обстоятельства? Что если решение неправильное? Какие правки стоит вносить? Как измерить, хорошее ли решение? Правильно поставленная и согласованная в самом начале задача необходима, но недостаточна. Она не заменяет обратной связи.

2) Дизайнер делает продукт, полагаясь только на обратную связь.
Допустим, тестирование пользовательского взаимодействия выявило проблему П1. А проблему П2 не выявило. Может быть, проблемы П2 не существует. А может быть, тестирование обошло эту проблему стороной. Дизайнер думает: «проблемы П2 не существует».

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

Например, тестирование выявило проблему. Пользователь не замечает нужный элемент интерфейса. Решение «в лоб»: хм, раз не замечает — надо сделать элемент заметнее! Делают элемент заметнее. Но динамический диапазон ограничен: нельзя сделать заметнее всё, начинается шум. При добавлении еще нескольких аналогичных «заметных» элементов интерфейс становится перегруженным, и его эффективность снижается.

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

Часто оказывается, что заметность элемента ни при чем. Графическая заметность может быть в порядке, а контекстная, «ментальная» заметность — низкой: в данный момент в данной ситуации мозг пользователя не воспринимает этот элемент вследствие какого-то предыдущего опыта или других причин.

Дизайн и тестирование это два разных процесса. Хорошо, когда они дружат и понимают задачи друг друга, сильные стороны и цели. Но это разные процессы, и задачей «тестирование» невозможно закрыть или подменить задачу «дизайн» по определению.

* * *

Простая, но важная логическая конструкция:

Отсутствие доказательства не является доказательством отсутствия.

Практика показывает, что эта мысль известна и понятна не всем. Это приводит к сложностям.

Логическая ошибка, основанная на описанной выше ошибке №2: Ответственный за результат человек предлагает решение. Человек с правом вето, например, заказчик или руководитель, отклоняет: «Мы тестировали продукт, такой ошибки не обнаружено. Это для нас не критичный момент».

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

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

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

Пользователь и продукт же существуют сразу во многих измерениях. Временная последовательность, физическое состояние пользователя, состояние и положение исследуемого объекта, другие компоненты интерфейса, ментальная карта процесса у пользователя в голове, множество характеристик окружающей среды, и мало ли что еще. Бывает, что и ошибка, и причина лежат на поверхности. Увидел — исправил. Но часто, чтобы проследить путь от ошибки к источнику, нужно приложить усилия.

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

* * *

И еще одно элементарное логическое высказывание: в дизайне работа над ошибками является дизайном, но дизайн не является работой над ошибками.

Дизайн не является работой над ошибками.

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