**Контекст:** SaaS-платформа для малого бизнеса. Отдел продаж зафиксировал: продажи за последнюю неделю на 15% ниже прогноза. CEO спрашивает: «Это аномалия или нормальная флуктуация? Что делать?»
**Данные:**
- Среднемесячные продажи: $420K (σ = $35K)
- Прогноз на эту неделю: $105K (1/4 месяца)
- Факт за неделю: $89K
- Conversion Rate (trial → paid): обычно 12%, на этой неделе 9.5%
- Средний чек: обычно $85/мес, на этой неделе $87/мес
- Трафик на сайт: обычно 45K/нед, на этой неделе 38K
- Trial signups: обычно 3 200/нед, на этой неделе 2 700
**Задание:**
1. Определите, является ли отклонение -15% статистически значимым. Используйте z-score.
2. Проведите мультипликативную декомпозицию revenue. Какой фактор внёс наибольший вклад?
3. Предложите пошаговый алгоритм root cause analysis.
4. Какие данные запросите для дальнейшей диагностики?
Структура для ориентира — реальные значения из эталонного решения.
import numpy as np
# Данные
norm = {'traffic': 45000, 'signup_rate': 0.0711,
'cr': 0.12, 'arpu': 85}
fact = {'traffic': 38000, 'signup_rate': 2700/38000,
'cr': 0.095, 'arpu': 87}
# Мультипликативная декомпозиция (логарифмическая)
total_change = np.log(89/105)
contributions = {}
for key in norm:
contributions[key] = np.log(fact[key] / norm[key])
print(f"Общее изменение: {total_change:.4f} "
f"({(89/105-1)*100:.1f}%)")
print(f"\nВклады (log scale):")
total_abs = sum(abs(v) for v in contributions.values())
for key, val in sorted(contributions.items(),
key=lambda x: abs(x[1]), reverse=True):
pct = val / total_change * 100 if total_change != 0 else 0
print(f" {key:>12}: {val:+.4f} ({pct:+.0f}% от падения)")
# Z-score
mu, sigma_week = 105, 16.8
z = (89 - mu) / sigma_week
from scipy import stats
p_val = stats.norm.cdf(z)
print(f"\nz-score: {z:.2f}, p-value (one-sided): {p_val:.3f}")
print(f"Аномалия (p < 0.05): {'Да' if p_val < 0.05 else 'Нет'}")
root cause analysis декомпозиция аномалия воронка диагностика
Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.
Подобные задания в категории «A/B-тесты» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: root cause analysis, декомпозиция, аномалия, воронка, диагностика.
На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть другие задания в категории «A/B-тесты», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.
← Все задания