BI и визуализация
Выбор графика, вводящие в заблуждение кодировки, дизайн и внедрение дашбордов, ловушки агрегации в BI.
9 вопросов
JuniorТеорияОчень частоКакой тип графика подходит какой связи — тренд, сравнение, распределение, корреляция или состав?
Какой тип графика подходит какой связи — тренд, сравнение, распределение, корреляция или состав?
Подбирайте график под связь: линия — для тренда во времени, столбцы — для сравнения категорий, гистограмма или box plot — для распределения, scatter — для корреляции двух числовых полей, а стек или 100%-столбец — для состава (часть от целого).
Типичные ошибки
- ✗Соединять неупорядоченные категории линией, подразумевая несуществующую непрерывность
- ✗Выбирать график ради вида или новизны вместо связи в данных
- ✗Класть слишком много серий на один график, так что ни одна связь не читается
Уточняющие вопросы
- →Почему линейный график подразумевает непрерывность, а столбчатый — нет?
- →Когда small multiples лучше, чем несколько серий на одном графике?
JuniorТеорияОчень частоПочему круговая диаграмма с девятью секторами плохо доносит смысл и чем её заменить?
Почему круговая диаграмма с девятью секторами плохо доносит смысл и чем её заменить?
Круговая кодирует значение углом и площадью, а их глаз оценивает намного хуже, чем длину вдоль общей оси. При девяти почти равных секторах ранжировать их — гадание. Замените отсортированным bar chart — значение отображается длиной, и каждая категория читается сразу.
Типичные ошибки
- ✗Считать, что глаз сравнивает угол и площадь так же точно, как длину
- ✗Добавлять секторы, цвета или 3D вместо смены типа графика
- ✗Держать пирог для ранжирования, когда вопрос — какая категория крупнее
Уточняющие вопросы
- →Когда круговая диаграмма всё же уместна — сколько секторов максимум?
- →Почему длина вдоль общей оси — самая точная визуальная кодировка?
JuniorТеорияЧастоКак график с двумя осями Y может сфабриковать несуществующую корреляцию и что использовать вместо него?
Как график с двумя осями Y может сфабриковать несуществующую корреляцию и что использовать вместо него?
График с двумя осями Y рисует две серии в независимых масштабах, и любой масштаб можно растянуть или сдвинуть, пока линии не совпадут — так несвязанные серии выглядят коррелирующими. Совпадение — артефакт масштабов, а не данных. Лучше scatter plot или два графика в стек с общей осью.
Типичные ошибки
- ✗Читать две совпадающие линии как доказательство реальной корреляции
- ✗Думать, что дело в разных единицах, а не в независимых масштабах
- ✗Доверять совпадению, потому что каждая ось подписана
Уточняющие вопросы
- →Как scatter plot честнее показывает ту же связь?
- →Когда график с двумя осями оправдан несмотря на эти риски?
JuniorТеорияЧастоКогда обрезка оси Y графика вводит в заблуждение и когда начинать не с нуля допустимо?
Когда обрезка оси Y графика вводит в заблуждение и когда начинать не с нуля допустимо?
Столбцы кодируют значение длиной от нуля, поэтому обрезка базы превращает разрыв в 2% в обрыв — вот почему обрезанный bar chart вводит в заблуждение, и столбцы должны начинаться с нуля. Для линейного графика обрезка уместна: там смысл несёт позиция, а не длина.
Типичные ошибки
- ✗Думать, что столбцы и линии следуют одному правилу базовой линии
- ✗Считать, что столбец кодирует значение верхней позицией, а не длиной
- ✗Полагать, что подпись оси отменяет визуальное преувеличение
Уточняющие вопросы
- →Почему линейный график может законно начинаться не с нуля, а столбчатый нет?
- →Как подписать обрезанную ось линии, чтобы её не прочли неверно?
MiddleДизайнЧастоДашборд показывает общую конверсию за месяц, усредняя дневную конверсию по тридцати дням, вместо деления суммы конверсий на сумму sessions. Дневной трафик сильно скачет — выходные лёгкие, дни кампаний тяжёлые. Объясните, почему показанное число неверно, в какую сторону оно смещено и что определяет, насколько сильно оно отклоняется от истинной ставки. Затем укажите правильный способ агрегировать ставку за период.
Дашборд показывает общую конверсию за месяц, усредняя дневную конверсию по тридцати дням, вместо деления суммы конверсий на сумму sessions. Дневной трафик сильно скачет — выходные лёгкие, дни кампаний тяжёлые. Объясните, почему показанное число неверно, в какую сторону оно смещено и что определяет, насколько сильно оно отклоняется от истинной ставки. Затем укажите правильный способ агрегировать ставку за период.
Среднее дневных ставок весит каждый день одинаково, но верная ставка за период весит день по его sessions — поэтому среднее ≠ сумма конверсий ÷ сумма sessions. Оно перевешивает лёгкие дни; размер и знак ошибки задаёт корреляция объёма и ставки. Фикс — сумма конверсий ÷ сумма sessions.
Типичные ошибки
- ✗Считать, что среднее дневных отношений равно сумме конверсий на сумму sessions
- ✗Весить каждый день одинаково, когда у дней очень разное число sessions
- ✗Думать, что смещение фиксированное, а не задано корреляцией объёма и ставки
Уточняющие вопросы
- →При каком условии два метода агрегации совпадают точно?
- →Как эта проблема взвешивания связана с эффектом агрегации, известным как парадокс Симпсона?
MiddleТеорияЧастоКогда показывать неопределённость на графике через error bars, доверительную полосу или просто число?
Когда показывать неопределённость на графике через error bars, доверительную полосу или просто число?
Показывайте неопределённость всегда, когда читатель может действовать по разнице в пределах шума. Error bars — для дискретных оценок, затенённая полоса — для непрерывной серии вроде тренда, а голое число — только когда интервал ничтожен. Всегда подписывайте интервал.
Типичные ошибки
- ✗Сообщать точечную оценку без интервала, когда читатель будет действовать по разнице в пределах шума
- ✗Ставить дискретные error bars на непрерывную серию, где подходит полоса
- ✗Рисовать интервал, не указывая, это SE, CI или размах
Уточняющие вопросы
- →Чем error bar стандартной ошибки отличается от 95% доверительного интервала?
- →Почему перекрывающиеся 95% error bars всё же могут быть значимой разницей?
MiddleТеорияИногдаВаш дашборд никто не открывает. Каковы настоящие причины и как вы будете повышать его использование?
Ваш дашборд никто не открывает. Каковы настоящие причины и как вы будете повышать его использование?
Обычно он не отвечает на реальный вопрос, медленно грузится или его числа расходятся с другим отчётом — и доверие тает. Повышайте использование, опираясь на поддерживаемое решение, урезая до него, ускоряя и сверяя определения с источником истины.
Типичные ошибки
- ✗Считать низкое использование проблемой коммуникации, когда дашборд не отвечает на реальный вопрос
- ✗Добавлять метрики и фильтры вместо урезания до решения
- ✗Игнорировать скорость загрузки и расхождения чисел, что тихо убивает доверие
Уточняющие вопросы
- →Как выяснить, какое решение дашборд должен поддерживать?
- →Что вы сделаете первым, когда два отчёта дают разные числа?
MiddleДизайнИногдаВы проектируете единый дашборд для руководства двустороннего маркетплейса с покупателями, продавцами и транзакциями. Руководство смотрит на него около двух минут каждое утро. Решите, что попадёт над сгибом, а что вы намеренно уберёте. Объясните, как выбрать горстку ключевых метрик, как их упорядочить, чтобы история читалась сверху вниз (сначала итог, потом драйверы за ним), и как оставить операционные детали доступными, не захламляя вид для руководства. Что над сгибом и что вы убираете?
Вы проектируете единый дашборд для руководства двустороннего маркетплейса с покупателями, продавцами и транзакциями. Руководство смотрит на него около двух минут каждое утро. Решите, что попадёт над сгибом, а что вы намеренно уберёте. Объясните, как выбрать горстку ключевых метрик, как их упорядочить, чтобы история читалась сверху вниз (сначала итог, потом драйверы за ним), и как оставить операционные детали доступными, не захламляя вид для руководства. Что над сгибом и что вы убираете?
Над сгибом — несколько метрик результата и здоровья: GMV, активные покупатели и продавцы, take rate, каждая с трендом и целью, упорядоченные так, чтобы взгляд читал сначала итог, потом драйверы. Уберите vanity-счётчики и таблицы; детали — в связанные drill-down. Один экран — один вопрос.
Типичные ошибки
- ✗Набивать вид для руководства всеми метриками вместо избранных нескольких
- ✗Начинать с гранулярных операционных таблиц, а не с метрик результата
- ✗Расставлять плитки без нарративного порядка от итога к драйверу
Уточняющие вопросы
- →Как вы решите, какая метрика — единственная north-star-плитка?
- →Где будет жить детализация по продавцам, чтобы она была доступна, но не наверху?
MiddleДебаггингРедкоФильтр дашборда меняет суммы, но не колонку '% от общего' — исправьте ошибку области агрегации.
Фильтр дашборда меняет суммы, но не колонку '% от общего' — исправьте ошибку области агрегации.
Знаменатель — неотфильтрованный подзапрос — (SELECT SUM(amount) FROM sales) игнорирует WHERE, который учитывает числитель, — поэтому фильтр сдвигает числители, но не общую сумму, и колонка не даёт 100%. Фикс — SUM(SUM(amount)) OVER ().
Типичные ошибки
- ✗Считать, что подзапрос наследует
WHEREвнешнего запроса - ✗Винить округление, когда неверна область знаменателя
- ✗Добавлять колонки в
GROUP BYвместо ограничения итога
Уточняющие вопросы
- →Почему
SUM(SUM(amount)) OVER ()учитывает фильтр, а подзапрос нет? - →Как сделать знаменателем итог по региону вместо общей суммы?