Как понять что созданная метка валидна?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Как понять что созданная метка валидна?
Валидация метрик - критический навык аналитика
Этот вопрос о metric validation - как убедиться, что метрика, которую я отслеживаю, действительно измеряет то, что она должна измерять, и полезна для принятия решений. Плохая метрика может привести к плохим решениям. Я использую систематический подход.
1. Определение "валидной метрики"
Метрика валидна если:
- Измеримость - можно технически собрать данные
- Связь с целью - отражает то, что мы хотим измерить
- Actionability - мы можем что-то сделать с результатами
- Чувствительность - меняется при изменении продукта
- Стабильность - не скачет от шума в данных
- Интерпретируемость - команда понимает что это значит
2. Процесс валидации новой метрики
Шаг 1: Определение гипотезы
Перед тем как создавать метрику, я формулирую, ЧТО я хочу измерить:
Плохо: "Я хочу отслеживать engagement" (слишком размыто, engagement - это много всего)
Хорошо: "Я хочу измерить, как часто пользователи возвращаются в приложение после первого дня использования, потому что это показатель того, полезно ли приложение для них"
Эта ясная гипотеза - основа валидной метрики.
Шаг 2: Определение формулы
Когда я определил что хочу измерить, нужна формула:
Метрика: Day-7 Retention
Definition:
Количество пользователей, которые были активны на день 7 после установки
÷
Количество пользователей, которые установили приложение на день 0
×
100%
Формула:
D7R = COUNT(DISTINCT user_id WHERE last_session >= install_date + 7 days) / COUNT(DISTINCT user_id WHERE install_date = target_date) × 100
Знаю ровно что считаю.
Шаг 3: Проверка на очевидные ошибки
Вопрос 1: Что происходит в экстремальных ситуациях?
Что если:
- Никто не активен? → D7R = 0% (правильно)
- Все активны? → D7R = 100% (правильно)
- Только 1 пользователь? → D7R = 0% или 100% (правильно, но маленькая выборка)
Вопрос 2: Выбирает ли метрика правильное направление?
Eсли D7R растет - это хорошо? Да. Если D7R падает - это плохо? Да.
Нет противоречия.
Вопрос 3: Может ли метрика быть "гейм ирована"?
Можно ли искусственно поднять метрику нечестным способом?
D7R (честно): возвращаются ли люди потому что приложение хорошее?
Как можно "гейм" D7R:
- Отправить push-уведомление на день 7 (не измеряем настоящий интерес)
- Считать фоновую активность (не требует реального использования)
- Заставить пользователя зайти принудительно (он уходит после)
Если видим, что D7R вырос, но другие метрики упали (retention day 30), это признак geaming.
Шаг 4: Статистическая валидация
Проверка на распределение
Метрика должна иметь разумное распределение.
Плохо:
Значения метрики: 0, 0, 0, 0, 100, 0, 0, 0
Что случилось? Один выброс (anomaly).
Это не валидная метрика, это bug в данных.
Хорошо:
Значения по дням: 45, 48, 42, 51, 47, 49, 46, 50
Нормальное распределение вокруг 47%.
Это валидная метрика.
Как проверить: Histogram и moving average
import pandas as pd
import matplotlib.pyplot as plt
# Данные метрики по дням
data = [45, 48, 42, 51, 47, 49, 46, 50, 48, 47]
# Проверка на outliers
mean = pd.Series(data).mean() # 47.3
std = pd.Series(data).std() # 2.9
# Outliers = значения за 3 sigma
outliers = [x for x in data if abs(x - mean) > 3 * std]
print(f"Outliers: {outliers}") # []
# Coefficient of Variation (вариабельность)
cv = std / mean * 100
print(f"Volatility: {cv:.1f}%") # ~6% - хорошо
Проверка на стационарность (Stationarity Test)
Для временных рядов важно, что метрика не дрейфит:
Если метрика всегда растет (trend) - это может быть good trend (product улучшается)
или bad trend (что-то сломалось постепенно).
Нужно разобраться в причине.
Шаг 5: Проверка на чувствительность
Метрика должна меняться когда что-то меняется в продукте.
Тест: Когда я делаю А/В тест, метрика движется?
Тест: Упрощение onboarding
Expected Effect:
- День 1-3: users faster get to active state → более высокий D7R
- День 7: Они все еще здесь → D7R растет
Реальность:
- D7R был 45% → стал 48% (+3%) -움ер движется! ✓
Это значит метрика чувствительна к изменениям.
Противоположный пример:
Тест: Изменили дизайн кнопки
Expected Effect:
- Должно быть small effect на D7R
Реальность:
- D7R был 45% → стал 45.1% (±0.1%) - Не движется?
Это может значить:
1. Метрика не чувствительна (слишком шумная)
2. Эффект слишком маленький (нужна большая выборка)
3. Дизайн кнопки не влияет на retention (ожидаемо)
Шаг 6: Проверка на корреляцию с бизнес-целью
Вопрос: Когда метрика растет, растет ли выручка?
Метрика валидна только если влияет на бизнес.
-- Проверить: растет ли retention вместе с revenue?
SELECT
DATE_TRUNC('week', install_date) as week,
AVG(d7_retention) as avg_d7r,
SUM(revenue_from_user) as total_revenue,
CORR(d7_retention, revenue_from_user) as correlation
FROM user_cohorts
GROUP BY DATE_TRUNC('week', install_date)
ORDER BY week DESC;
-- Результат:
week | avg_d7r | total_revenue | correlation
2025-03-16 | 45% | $50,000 | 0.82
2025-03-09 | 42% | $42,000 |
2025-03-02 | 48% | $58,000 |
-- Correlation = 0.82 (сильная положительная корреляция)
-- Вывод: D7R валидна как показатель успеха
Шаг 7: Проверка на интерпретируемость
Вопрос: Может ли обычный PM, не аналитик, понять эту метрику?
Хорошая метрика: "Day-7 Retention - процент пользователей, которые вернулись в приложение на 7-й день после первого запуска" (Все понимают)
Плохая метрика: "Normalized Exponentially Weighted Moving Average of User Engagement Score derived from Composite Behavioral Index" (Никто не понимает)
Шаг 8: Проверка на reproducibility
Вопрос: Если я повторю эту метрику в другом периоде, получу ли я аналогичный результат?
Метрика D7R:
- Неделя 1: 45%
- Неделя 2: 48%
- Неделя 3: 47%
- Неделя 4: 46%
- Неделя 5: 45%
Медианное значение: 46% ± 2%
Это стабильная и reproducible метрика.
Плохая reproducibility:
- День 1: 50%
- День 2: 10%
- День 3: 80%
- День 4: 5%
Это не метрика, это шум.
3. Качественная валидация
Тест: Спросить у пользователей
Для некоторых метрик нужно качественное подтверждение:
Метрика: Users who clicked "Share" button
Вопрос: Если люди делятся чаще, означает ли это, что им нравится продукт?
Проверка: Провести user interview "Когда ты нажимаешь Share, что ты имеешь в виду?"
Результат:
- 50% говорят: "Я хочу поделиться с друзьями, потому что это полезно"
- 30% говорят: "Я случайно нажал"
- 20% говорят: "Я хочу выиграть награду/приз"
Вывод: Метрика partially валидна. 50% людей действительно получают ценность, но 50% - это noise.
4. Red Flags - признаки невалидной метрики
Red Flag 1: Мертвая метрика
Метрика не меняется месяцами
Это значит либо метрика не чувствительна, либо данные не обновляются
Red Flag 2: Противоречие с другими метриками
D7R растет (+5%)
Но Revenue падает (-10%)
Но Month-30 Retention падает (-3%)
Что-то не так. D7R не отражает реальное здоровье продукта.
Red Flag 3: Невозможно что-то сделать с результатом
Метрика: "Overall User Happiness Score"
Значение: 7.5 из 10
Вопрос: Что я делаю с этой информацией?
Ответ: Не знаю.
Это не actionable метрика.
Red Flag 4: Слишком много noise
Метрика: Daily Active Users из города с населением 100 людей
Значение скачет: 5, 12, 3, 8, 15, 2...
Это шум, не тренд.
Red Flag 5: Выглядит слишком хорошо
Метрика ВСЕГДА растит, НИКОГДА не падает
Людь прибыль каждый квартал, никогда не было убытка
Это не реалистично. Скорее всего в коде баг или выбор данных смещен.
5. Пример: Валидация "Engagement Score"
Метрика (предложение):
"Engagement Score = (Page Views + Clicks + Time Spent) / 3"
Валидация:
Проверка 1: Измеримость ✓ Все три компонента технически собираются
Проверка 2: Определение ✗ Не ясно что это показывает. Engagement в чем?
- Люди кликают, потому что ищут (может быть плохо)
- Люди жгут время, потому что потеряны (может быть плохо)
Проверка 3: Чувствительность ? Непонятно. Это средневзвешенное значение - может быть нечувствительно
Проверка 4: Actionability ✗ Если Engagement Score упал, что я делаю?
- Добавить больше кликабельных элементов? (может быть clickbait)
- Увеличить время на страницу? (может быть тоскливо)
Вывод: Эта метрика не валидна. Слишком размыто.
Улучшенная версия:
"Feature Adoption Rate = % пользователей, которые использовали новую фичу в первый день после запуска"
Проверка 1: Измеримость ✓ Считаю users с event = "new_feature_used"
Проверка 2: Определение ✓ Ясно что это показывает: нравится ли людям новая фича
Проверка 3: Чувствительность ✓ Если фичу поправить, adoption rate вырастет
Проверка 4: Actionability ✓ Если adoption низкий:
- Фичу сложно найти (fix discoverability)
- Фичу сложно использовать (fix UX)
- Фичу никому не нужна (kill feature)
Вывод: Эта метрика валидна.
6. Шкала валидации
1. ❌ Совсем невалидна
- Не измеряется
- Не понимается
- Не действует
2. ⚠️ Частично валидна
- Измеряется, но с ошибками
- Иногда движется, иногда нет
- Partial actionability
3. ✓ Валидна
- Ясное определение
- Стабильна и чувствительна
- Полностью actionable
- Коррелирует с целями
4. ✓✓ Очень валидна (Gaurdian Metric)
- Используется во всей компании
- Высокая predictive power
- Влияет на все решения
Заключение
Валидная метрика - это не то, что красиво выглядит или громко звучит. Это:
- Ясное определение - все одинаково понимают что это
- Техническая осуществимость - можно собрать данные
- Чувствительность - меняется при изменениях
- Actionability - можно что-то сделать с результатами
- Связь с целями - влияет на бизнес
- Стабильность - не скачет от шума
Перед тем как привести метрику в систему аналитики и начать принимать решения на основе её, нужно её валидировать. Это занимает время, но спасает от плохих решений.