Временные ряды: вопросы для собеседования (часть 3)
Line chart — стандарт для визуализации временных рядов: DAU, revenue, конверсия по дням. На собеседовании спрашивают, как показать сезонность, тренд и аномалии на одном графике, нужна ли ось Y с нуля и как сравнить несколько метрик с разными масштабами. Временные ряды — самый частый тип визуализации в аналитике.
Вопросы 11–15 из 20
11Вы построили `rolling average` с окном 7 дней и видите, что первые дни графика пустые или ведут себя странно. Что лучше сделать, чтобы не исказить смысл?
AПодставить 0 для первых 6 дней, чтобы линия `rolling average` была непрерывной от начала графика
BДублировать первое значение на первые 6 дней, чтобы окно всегда было заполнено и не было пропусков
CЯвно определить правило краёв: начать линию, когда окно заполнено, или показать неполные окна без подстановки нулей
DУвеличить окно до 30 дней, чтобы пустые значения исчезли за счёт более сглаженного скользящего среднего
Ответ: У `rolling average` есть краевые эффекты: важно честно показать, где окно неполное.
Подстановка 0 или дублей создаёт искусственные провалы/пики. Лучше явно управлять краями окна и не выдавать вычислительный артефакт за сигнал.
Подробный разбор → 12Вы строите отчёт о росте `MoM`. Как корректнее считать и визуализировать `MoM` для месячной метрики?
AСравнить каждый день текущего месяца с тем же днём предыдущего месяца и назвать получившийся результат `MoM`
BСравнить значение метрики за текущий месяц с предыдущим месяцем при одинаковой детализации (месячный агрегат)
CСравнить текущий месяц с тем же месяцем прошлого года и назвать это `MoM`: так нагляднее и стабильнее результат
DСравнить текущий месяц со средним значением метрики за всё время существования продукта на одной детализации
Ответ: `MoM` — это сравнение «месяц к месяцу» на одной детализации.
Чтобы `MoM` был корректным, сравнивают сопоставимые месячные агрегаты, а не отдельные дни. Для сравнения с тем же месяцем прошлого года используют `YoY`, и это другая метрика, отвечающая на другой вопрос о росте.
Подробный разбор → 13У метрики выраженная недельная сезонность (выходные ниже). Какое окно скользящего среднего чаще всего логично, чтобы сгладить именно недельный цикл?
AОкно 2 дня: оно короче недельного цикла, всплески по выходным остаются заметны и форма ряда почти не сглаживается
BОкно 365 дней: длинный период усредняет недельные перепады вместе с долгосрочными изменениями и убирает тренд
CОкно 7 дней: оно покрывает полный недельный цикл, будни и выходные усредняются, форма ряда становится гладкой
DОкно 1 день: это исходный ряд без сглаживания, недельные перепады по выходным остаются такими же, как были
Ответ: Окно скользящего среднего выбирают равным длине цикла сезонности — для недельной обычно 7 дней.
Окно 7 дней усредняет полный недельный цикл и снижает влияние конкретного дня недели — будни и выходные попадают в одно окно. Слишком короткое окно (1–2 дня) почти не сглаживает ряд, а слишком длинное (365 дней) скрывает реальные изменения и сильно запаздывает. Правило простое: окно сглаживания должно быть кратно периоду сезонности, которую нужно убрать.
Подробный разбор → 14В ежедневном графике событий один день трекинг был сломан: данных нет, но пользователи в этот день были. Как корректнее отобразить этот день?
AПоставить значение 0 за этот день, чтобы линия графика выглядела непрерывной без визуальных разрывов
BУдалить день с оси времени совсем, чтобы соседние точки соединялись без видимого провала на графике
CОставить пропуск явным маркером и подписать, что данные отсутствуют из-за поломки трекинга, а не равны нулю
DЗаменить значение средним соседних дней без подписи, чтобы тренд выглядел гладко и не пугал стейкхолдеров
Ответ: Ноль и пропуск данных имеют разный смысл, поэтому их нужно различать визуально.
Подстановка 0 создаёт ложный провал на графике и ломает сравнения вида «неделя к неделе». Удаление дня скрывает проблему данных и сжимает ось времени, а замена средним без подписи маскирует реальный пробел. Лучшая практика — явно показать пропуск и подписать, что это потеря данных, а не нулевая активность.
Подробный разбор → 15Вы построили индекс с базой в первую неделю, но тогда была крупная распродажа, и базовый уровень аномальный. Что лучше сделать?
AВыбрать более репрезентативную базу (типичная неделя) или явно объяснить, что базовый период аномальный из-за распродажи
BОставить распродажную неделю как базу: индексирование само сглаживает аномалии и устойчиво к таким выбросам в начале
CЗаменить индекс на накопительную сумму без пояснений: накопление автоматически нивелирует аномальные периоды в данных
DТихо удалить распродажную неделю из выгрузки и не упоминать это в подписи к графику или в комментарии к отчёту
Ответ: Индекс чувствителен к выбору базы, особенно если базовый период аномальный.
Аномальная база искажает всю кривую и может создать ложный вывод о росте или падении. Лучше выбрать типичный период или прозрачно объяснить, почему база необычная. Молчаливое удаление недели из данных создаёт риск неверной интерпретации, а замена индекса на накопительную метрику не решает проблему искажения.
Подробный разбор → Другие темы: Визуализация данных