Таня Мисютина

о визуализации данных и жизни

Алгоритм визуализации на Фестивале 404

25-го сентября представила свой алгоритм визуализации сложных данных на Фестивале 404.

Моё обычное лицо во время выступления (◕‿◕)

Моя большая радость, что в часовой доклад удалось упаковать большую часть теории, которую я преподаю на учебном курсе «Визуализация данных». Видео-запись выступления доступна на ютубе:



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

Фестиваль 404 — ван лав ♥️

Рейтинг стран по количеству заболевших коронавирусом

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

С первых дней, когда у нас появились заболевшие, я листала таблицу до похожих на Россию чисел и старалась запомнить соседей. По 10-50-100 случаям сложно судить о темпах роста, сложно рассмотреть стоящую за ними опасность. Эти числа кажутся незначительными, когда в других странах тысячи, десятки и сотни тысяч заболевших. Поэтому я смотрела на страны, в которых зарегистрировано столько же случаев, сколько у нас. Как они ведут себя, как быстро растут? Это был мой способ составить свою картину происходящего.

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

Я подготовила данные, набросала прототип в Табло (спасибо, Рома!) и в начале апреля написала Сергею Кашину. Мы обсудили идею, её пользу и слабые места, и Сергей согласился взять на себя реализацию (огромное спасибо, Сергей!) Вот, что у нас получилось.

Рейтинг стран по количеству заболевших коронавирусом: https://www.cashin.ru/virus/ranks/

На визуализации показано, как со временем меняется место страны в топе по количеству заболевших (от 500 подтверждённых случаев). Цветом показан порядок количества заболевших, вроде изолиний на карте местности. В тот момент, когда страна переходит очередной рубеж — 1000, 5000, 10 000, 50 000, 100 000 и т. д. — её линия пересекает очередную границу цвета.

Само по себе место ни о чём не говорит. Интересно наблюдать именно, как меняется взаимное расположение стран друг относительно друга. Многие страны растут вместе, как, например, Германия и Франция, или Бельгия, Швейцария и Нидерланды:

Переодически страны обгоняют одна другую, но в целом движутся рядом

Горизонтальная линия не означает, что роста нет. Только то, что этот рост не опережает, и не отстаёт от ближайших соседей. Замечу, что такое представление несколько нивелирует расплывчатость параметра «количество заболевших». Мы смотрим не на абсолютный рост, а на то, как две страны-соседки со своими методами измерения либо остаются соседями, либо одна из стран со временем сильно опережает другую. Но это, конечно, при условии, что сам метод регистрации заболевших в стране значительно не менялся — иначе это скажется на поведении страны на графике.

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

Обратите внимание, как Япония практически до конца марта оставалась в рамках 500 и 1000 заболевших. За это время США, которые появились на графике 8 марта, одновременно с Японией, опережая её всего на 16 случаев (502 и 518 соответсвенно) выросли до 500 000:

Кроме США, есть и другие страны, которые обращают на себя внимание взрывным ростом. К сожалению, Росиия в их числе:

Турция в марте росла очень быстро, обгоняя минимум одну страну в день. Но с начала апреля она заняла своё 9-е место между Ираном и европейской тройкой Швейцария-Бельгия-Голландия, и остановилась там. Рост Индии слегка замедлился в начале апреля, с тех пор она прибавляла по 2, 3, а то и 4 позиции каждый день, и сейчас снова затормозилась на 22-м месте. Надолго ли?

Из всех стран топ-50 Россия быстрее и настырнее всех карабкается к верхним строчкам. Вот лишь несколько стран, с которыми Россия соседствовала в тот или иной момент в таблице. Все они сейчас остались далеко позади.

ЮАР, которая 24-го по 27-е марта опережала Россию примерно на 50 случев (1070 против 1036), сейчас на 52-м месте и только-только перешагнула рубеж в 2000 случаев.

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

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

Рейтинг стран по количеству заболевших коронавирусом: https://www.cashin.ru/virus/ranks/ 

Коронавирус и визуализация данных

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

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

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

График количества заболевших из статьи «Особенности и уроки вспышки коронавирусной инфекции — 2019 (COVID-19) в Китае», опубликованной 24 февраля в журнале Американской медицинской ассоциации, чаще всего цитируется в контексте «скрытой угрозы». И не случайно. Это гениальная в своей простоте визуализация показывает, что каждый обнаруженный случай заболевания, особенно в самом начале эпидемии, был диагностирован с задержкой около двух недель. Синие столбики — истинное количество заболевших, жёлтые — поставленные диагнозы. Подробный анализ графика можно почитать в оригинале и по-русски. Отмечу лишь главную мысль за этими данными: «Реального количества заболевших на данный момент не знает никто».

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

Предположительно, вирус попал в церковное сообщество через единственную женщину, известную как «31-я пациентка», которая дважды посетила церковную службу, уже после появления симптомов и временной госпитализации, но до постановки диагноза. Мы видим каждого человека из 5016 инфицированных (вспомним визуализацию потерь Второй мировой войны). И, зная, что на данный момент 162 человека в Южной Корее погибли, можем представить это не как абстрактную цифру, а как реальные прервавшиеся жизни людей, в лицо которым мы как будто смотрим на этой визуализации. И цифра уже не кажется такой уж незначительной, какой она выглядит на общем трагическом фоне.

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

Обратите внимание, что здесь показаны либо статистически предполагаемые случаи, либо достоверно зафиксированные в будущем и отмеченные на карте «задним числом». Это даёт более-менее адекватную картину происходившего, аналогично графику выше. Ключевое слово здесь — происходившего. Картины происходящего прямо сейчас, как я писала выше, мы не знаем.

Отсюда проблемы с таблицами и картами, самыми популярными на данный момент форматами представления данных о текущей ситуации. Поговорим о них.

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

Следующий по популярности формат — график роста заболевших/умерших по странам на таймлайне, который показывает изменение ситуации с течением времени. Например, вот такой, созданный командой «Our world in data» (интерактивная версия ↓):



На горизонтальной оси время, но не календарные даты, а дни, начиная с пятой смерти в стране. На вертикальной — логарифмическая шкала смертей. Это редкий случай, когда логарифмическая шкала по-настоящему уместна. Рост заражений и смертей идёт по экспоненте, и числа разных порядков оказываются близкими друг к другу: где вчера было 10 случаев, там через неделю (или раньше) их уже 100. Обратите внимание на пунктирную разметку, которая показывает на графике зоны разных темпов роста (число удваивается каждый день, раз в два дня, раз в три дня и т. д.) Смертельные случаи отражают ситуацию намного точнее, чем количество заболевших.

На этом графике видны страны с самыми высокими темпами роста:

И страны, которые взяли эпидемию под контроль:

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

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

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

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

В конце статьи можно сравнить между собой графики всех четырёх процессов:

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

А вот потрясающий калькулятор эпидемии:

Наглядный, быстрый, с большим количеством настроек — настоящий инструмент исследователя. В статье Томаса Пуйо «Молот и танец» показано, как приближая момент и увеличивая степень вмешательства в естественный ход распространения вируса, можно снизить нагрузку на систему здравоохранения с десятков миллионов до десятков тысяч обращений. И как это позволит выиграть время, чтобы встретить врага (коронавирус) во всеоружии.

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

Неудивительно, что доктора (особенно, дантисты и пульмонологи), медсёстры и врачи скорой помощи оказались в самом рисковом, правом верхнем углу графика:

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

Ну и напоследок, давайте посмотрим врагу в лицо:

Эта иллюстрация вириона SARS-CoV-2 — самое распространённое в сети изображение частицы вируса, который вызывает COVID-19, — создана учёными Центра по контролю и профилактике заболеваний США (CDC).

А вот вирионы снятые через электронный микроскоп. На поверхности частиц видные выступы гликопротеинов, которые напоминают зубцы короны. Отсюда и название всей группы — «коронавирусы»:

На фликре NIAID целый альбом с красочными микрофотографиями вируса на поражённых клетках:

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

Оставайтесь дома. Сохраняйте спокойствие. Будьте здоровы.

Курс по визуализации данных 18, 19 и 20 мая

18, 19 и 20 мая мы с Ромой проведём в Москве учебный курс по визуализации данных.

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

Это первый курс, на котором не будет практики с библиотекой d3.js. Мы в лаборатории очень любим этот инструмент и все наши визуализации разрабатываем с его помощью, поэтому он так долго продержался в нашей программе, несмотря на все «но». На курсе мы обязательно расскажем о нём и покажем, на какие чудеса он способен. Но всё же опыт показал, что изучение d3.js не вписывается в формат короткого интенсивного обучения. Только опытные разработчики за полдня успевают «въехать» в особенности библиотеки, для остальных участников это тяжёлый труд с минимальным результатом. Табло, с другой стороны, доступен для быстрого изучения и полезен всем. Не случайно на курсах, где был выбор между двумя инструментами, только один студент из десяти выбирал d3 для самостоятельно работы, остальные делали практику в Табло. Надеюсь, когда-нибудь мы в лаборатории сделаем отдельный курс по d3 для разработчиков. А пока уделим вдвое больше времени Табло для более глубокого погружения в процессе и классных проектов в результате.

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

Подробности и запись на курс: http://datalaboratory.ru/course/

Консультации и экспресс-визуализация

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

Во-первых, я начинаю консультировать по визуализации данных. На консультацию есть смысл приносить существующие проекты, отчёты и дашборды, которые вы хотите улучшить, или нерешённые пока задачи по визуализации. На часовом созвоне я задам вопросы о вашей задаче, выскажу свои идеи, покажу полезные приёмы и похожие решения. По итогам консультации подготовлю резюме в гуглдоке: сформулирую свои советы, опишу перспективные идеи, при необходимости снабжая их карандашными набросками, подберу полезные ссылки. Одна консультация скорее всего не решит всех проблем, но с большой вероятностью даст свежий, неожиданный взгляд на задачу и пару стоящих идей. Стоимость консультации — 10000 ₽.

Во-вторых, для тех, кому мало консультации и хочется получить осязаемый результат, мы с Ромой Буниным предлагаем «экспресс-визуализацию». Это та же консультация плюс базовый прототип в Табло от Ромы, который иллюстрирует одну или несколько моих идей. Этот формат лучше всего подойдёт для бизнес-задач, особенно для задач с готовым набором данных, который будут использованы в прототипе. Рома готовит прототип в течение недели после консультации. Базовый прототип — это демонстрационная штука, интерактивный дашборд, на котором можно «пощупать» идеи в действии, в приложении к своим данным. Не ждите от него слишком многого. Если вы захотите превратить прототип в полноценный инструмент работы с данными, об этом можно договориться с Ромой отдельно. Стоимость экспресс-визуализации — 30000 ₽.

В-третьих, в мае мы проведём учебный курс по визуализации данных. Годовая пауза — как и в прошлый раз — пошла курсу на пользу, он стал яснее и глубже. Ждите анонс!

В-четвёртых, если у вас есть не банальный и (важно!) не авральный проект по визуализации, дайте мне знать. Ну, мало ли :-)

Использованы оригинальные иллюстрации к «Алисе в Стране чудес» сэра Джона Тенниела
Ранее Ctrl + ↓