Выбросы и аномалии на собеседовании аналитика
Что такое выброс
Выброс — наблюдение, которое существенно отклоняется от остальных данных. Пользователь с чеком в 500 000 рублей при среднем 3 000. Сессия длиной 8 часов при медиане 5 минут. Один рекламный клик, сгенерировавший 200 конверсий.
На собеседовании тема выбросов проверяет практический навык работы с данными. Вопрос не столько в определении — что считать выбросом, — сколько в решении: удалять, трансформировать, оставить? Неправильное обращение с выбросами может исказить результаты A/B-теста или ввести в заблуждение при анализе метрик.
Как определить выброс
IQR-метод (межквартильный размах). Вычислите Q1 (25-й перцентиль) и Q3 (75-й перцентиль). IQR = Q3 - Q1. Выбросы — значения ниже Q1 - 1.5IQR или выше Q3 + 1.5IQR. Метод устойчив к самим выбросам, потому что квартили не чувствительны к экстремальным значениям.
Z-score. Z = (x - mean) / std. Значения с |z| > 3 считаются выбросами. Проблема: mean и std сами зависят от выбросов. Один экстремальный наблюдение сдвигает среднее и раздувает дисперсию, маскируя другие выбросы.
Modified z-score. Использует медиану и MAD (Median Absolute Deviation) вместо mean и std. Более устойчив: MAD = median(|xi - median(x)|). Порог — |modified z| > 3.5. Рекомендуется как замена обычному z-score.
Визуальные методы. Box plot, scatter plot, гистограмма с логарифмической шкалой. На собеседовании полезно упомянуть, что первый шаг — визуализация, а не формула.
Нет универсального определения выброса. IQR, z-score, визуализация — это инструменты обнаружения, но решение о том, что делать с выбросом, зависит от контекста и природы данных.
Типы выбросов
Ошибка данных. Баг в логировании, дублирование записей, неправильная единица измерения. Эти выбросы нужно удалять или исправлять — они не несут информации о реальном поведении.
Легитимный экстремум. Крупный корпоративный клиент с чеком в 10 раз больше среднего. Пользователь-энтузиаст с 50 сессиями в день. Это реальные данные, и их удаление искажает картину.
Мошенничество/боты. Фродовые транзакции, бот-трафик. Нужно отфильтровать, но не просто как «выбросы», а как отдельную категорию с собственными правилами.
Что делать с выбросами
Удалить. Подходит для ошибок данных. Для легитимных экстремумов — рискованно: вы удаляете реальную информацию и получаете смещённую оценку.
Winsorization (усечение). Замена значений за порогом на значение порога. Например, все значения выше 99-го перцентиля заменяются на 99-й перцентиль. Сохраняет наблюдение, но ограничивает его влияние. Широко используется в A/B-тестах.
Трансформация. Логарифм, корень — сжимают правый хвост, делая распределение более симметричным. Подходит для метрик с естественно скошенным распределением (revenue, время).
Робастные метрики. Вместо среднего — медиана или усечённое среднее (trimmed mean). Вместо стандартного отклонения — MAD. Эти метрики устойчивы к выбросам по определению.
Оставить. Если выброс легитимен и его удаление искажает реальность — оставляйте. Но анализируйте результат с выбросами и без, чтобы понять их влияние.
Влияние на метрики и A/B-тесты
Один выброс может развернуть результат A/B-теста. Если в тестовой группе случайно оказался крупный клиент с чеком в 100 раз больше среднего — средний revenue группы завышен, и тест покажет «значимый» эффект, которого нет.
Практический подход к A/B-тестам: применяйте winsorization на уровне 99-го перцентиля до анализа, используйте робастные метрики (медиана, trimmed mean), проверяйте результат с CUPED — ковариата частично снимает влияние индивидуальных экстремумов.
Типичные вопросы на собеседовании
- «Как определить выброс?» — IQR-метод, z-score, визуализация. Начните с контекста: что это за данные и какова природа экстремума
- «В данных есть пользователь с revenue в 100 раз больше среднего. Что делать?» — проверить, не ошибка ли это. Если легитимен — winsorization или робастная метрика, но не удаление
- «Как выбросы влияют на A/B-тест?» — сдвигают среднее, раздувают дисперсию, могут дать ложную значимость. Решение — winsorization или переход на медиану
На собеседовании худший ответ — «удалю все выбросы». Лучший — «сначала пойму природу выброса, потом решу, как с ним поступить, и проверю, влияет ли он на выводы».
FAQ
Какой метод лучше: IQR или z-score?
IQR устойчивее к самим выбросам и работает для скошенных распределений. Z-score проще для нормальных данных, но ломается при тяжёлых хвостах. Для данных аналитика (revenue, время) IQR или modified z-score — более надёжный выбор.
Можно ли удалять выбросы из обеих групп A/B-теста?
Да, но правила удаления должны быть одинаковыми для обеих групп и определены до анализа. Нельзя удалить выброс из тестовой группы, потому что он «испортил» результат — это манипуляция. Winsorization по единому перцентилю — безопасный подход.
Выброс или просто хвост распределения?
Если данные следуют распределению с тяжёлыми хвостами (лог-нормальное, Парето), экстремальные значения — это норма, а не аномалия. Проверьте: посмотрите на log-scale гистограмму. Если данные ложатся на прямую — это хвост распределения. Если точка оторвана — это выброс.