Приведи пример метрики, в которой использование среднего приводит к ошибке
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Среднее значение метрики: когда это приводит к ошибке
Среднее (mean, average) — это инструмент, который может скрыть реальность и привести к неправильным решениям. Расскажу о реальном примере из своей практики, где использование только average почти привело к катастрофе.
История: Производительность платформы
Ситуация: Я руководил рефакторингом системы. Нам нужно было измерить, улучшилась ли производительность после изменений.
Данные (Response time в миллисекундах):
До рефакторинга:
- 95 процентов запросов: 100-120 ms
- 5 процентов запросов: 8000-10000 ms (outliers)
- Mean: 1924 ms
- Median: 105 ms
После рефакторинга:
- 95 процентов запросов: 45-55 ms
- 5 процентов запросов: 140-160 ms
- Mean: 70.3 ms
- Median: 50 ms
Что показало среднее (mean)? Улучшение на 1853 ms (96 процентов улучшение)!
Проблема: Outliers искажают среднее
Один запрос 9500 ms увеличивает среднее как 95 нормальных запросов. Это делает mean очень чувствительным к outliers.
Правильный анализ:
- Median улучшилась на 52 процентов (105 → 50 ms)
- P95 улучшилась на 98 процентов (9500 → 150 ms)
- 5 процентов пользователей всё ещё имеют проблемы с временем отклика
Реальный impact: что испытывали пользователи
95 процентов пользователей: Система стала в 2 раза быстрее (хорошо) 5 процентов пользователей: Система всё ещё медленная (плохо)
Реальность: Люди, жалующиеся на производительность, в основном из этих 5 процентов.
Другие примеры, где среднее приводит к ошибке
Revenue (выручка) на пользователя:
- Mean ARPU: 50 долларов
- 95 процентов пользователей: 10-20 долларов
- 5 процентов корпоративных клиентов: 1000-5000 долларов
- Вывод: Среднее завышено из-за немногих крупных клиентов
Time to fix bugs:
- Mean: 3 дня
- Обычные баги: 1-2 дня
- Сложные баги: 15-20 дней
- Вывод: Есть проблемные баги, которые очень долго фиксятся
Customer satisfaction:
- Mean CSAT: 4.2 из 5
- Довольные пользователи: 4.5-5.0
- Рассерженные пользователи: 1-2
- Вывод: 20 процентов недовольных, это проблема
Правильный способ анализа метрик
Вместо одного среднего используй:
| Метрика | Что показывает |
|---|---|
| Mean | Общее среднее (часто искажено outliers) |
| Median (P50) | Типичный пользователь |
| P95 | Хороший порог для SLA |
| P99 | Хороший порог для важных систем |
| Distribution | Полная картина |
Пример правильного анализа:
API Latency:
- Mean: 50ms
- Median P50: 48ms (типичный пользователь)
- P95: 95ms (95 процентов пользователей меньше)
- P99: 150ms (99 процентов пользователей меньше)
- Max: 500ms (редко)
Как я мог бы избежать ошибки
Проверочные вопросы при анализе:
- Есть ли outliers в данных?
- Какой median (P50)?
- Какой P95 и P99?
- Высокое ли std deviation (нестабильность)?
- Как выглядит график распределения?
Вывод
Среднее (mean) — это опасная метрика, когда есть outliers или асимметричное распределение.
Лучшие практики:
- Всегда посмотри на distribution (график)
- Используй percentiles (P50, P95, P99) для SLA
- Проверь std deviation — если высокая, система нестабильна
- Сегментируй данные — анализируй разные группы отдельно
- Скажи нет только среднему — дополняй медианой и percentiles
В моём примере я потратил 100 часов на рефакторинг. По среднему казалось отличным решением. По P95 видно, что проблема всё ещё оставалась. Это привело бы к неправильному prioritization работы.