Даже без готовой модели гипотезу можно проверить на реальных клиентах — через упрощённый пилот и управляемый эксперимент.
А как проверить гипотезу без модели?
Как без сбора данных, обучения модели, проверить гипотезу на реальных клиентах?
Какие есть способы проверки гипотезы на реальных клиентах?
| Дата | По умолчанию | Изменил? | Новая сумма | Открыл на |
|---|---|---|---|---|
| 12.02 | 100 000 ₽ | Нет | — | 100 000 ₽ |
| 03.03 | 100 000 ₽ | Да | 300 000 ₽ | 300 000 ₽ |
| 17.04 | 50 000 ₽ | Нет | — | 50 000 ₽ |
| 29.05 | 100 000 ₽ | Да | 500 000 ₽ | 500 000 ₽ |
| 11.07 | 250 000 ₽ | Да | 150 000 ₽ | 150 000 ₽ |
| 22.09 | 100 000 ₽ | Да | 1 000 000 ₽ | 1 000 000 ₽ |
| 14.11 | 50 000 ₽ | Нет | — | 50 000 ₽ |
| Бакет | Доля | Средний чек | Потенциал |
|---|---|---|---|
| 50–100 тыс. | 34% | 78 000 ₽ | высокий |
| 100–200 тыс. | 21% | 146 000 ₽ | высокий |
| 200–300 тыс. | 12% | 248 000 ₽ | средний |
| 300–500 тыс. | 11% | 382 000 ₽ | средний |
| 500 тыс.–1 млн. | 13% | 710 000 ₽ | высокий |
| 1–3 млн. | 7% | 1 640 000 ₽ | точечный |
| 3–5 млн. | 2% | 3 480 000 ₽ | точечный |
df['bucket'] = pd.cut(df['opened_sum'], buckets)
summary = df.groupby('bucket').agg({
'opened_sum': ['count', 'mean'],
'default_sum': 'mean'
})
pilot_candidates = [50000, 75000, 100000,
150000, 200000, 300000,
500000, 750000, 1000000]
50 тыс.
75 тыс.
100 тыс.
150 тыс.
200 тыс.
300 тыс.
500 тыс.
750 тыс.
1 млн.
Если показывать персональную сумму по умолчанию, средняя сумма открытого вклада вырастет без критического роста обращений клиентов.
Контроль: стандартная сумма 50 тыс. Тест: 8 групп с альтернативными суммами из заранее выбранного набора.
Например: 14 дней теста + заранее определённое окно наблюдения до подведения итогов.
Средняя сумма вклада, конверсия в открытие, процентный доход, обращения со стороны клиентов.
Фиксируем основную метрику, вторичные метрики и правило сравнения контрольной и тестовой групп до старта пилота.
Заранее выбираем метод сравнения групп и порог значимости, например p-value < 0.05.
Это вероятность увидеть такой результат случайно, если на самом деле эффекта нет. Если p-value ниже заранее выбранного порога, сигнал заслуживает внимания.
- сравниваем контроль и тест;
- считаем средние значения и конверсию;
- проверяем статистическую значимость;
- смотрим побочные эффекты;
- решаем: масштабировать, доработать или закрыть пилот.
Во время пилота кривая начинает смещаться: часть клиентов открывает вклады на более высокие суммы, но не все тестовые группы дают положительный результат.
| Группа | Средняя сумма | Конверсия | Доход | Обращения |
|---|---|---|---|---|
| 75 тыс. | +6.2% | -1.1% | +3.4% | +2.0% |
| 100 тыс. | +9.8% | +1.6% | +7.1% | +0.8% |
| 150 тыс. | +12.4% | +0.4% | +8.9% | +1.3% |
| 200 тыс. | +10.1% | -0.7% | +5.2% | +2.4% |
| 300 тыс. | +14.7% | -2.5% | +4.1% | +3.6% |
| 500 тыс. | +18.2% | -4.4% | -1.2% | +5.1% |
| 750 тыс. | +11.0% | -6.2% | -3.5% | +6.4% |
| 1 млн. | +8.6% | -8.1% | -5.7% | +7.8% |
Пилот показал, что изменение суммы по умолчанию влияет на поведение клиентов
Это означает, что следующий шаг — не просто продолжать перебирать произвольные диапазоны, а строить модель, которая будет выбирать более подходящую сумму для конкретного клиента.
- учитывать поведение клиента;
- учитывать профиль и контекст;
- выбирать не диапазон «на глаз», а оптимальную сумму;
- максимизировать доход, сумму вклада и конверсию.
Выводы
Не пытаться сразу сделать идеальную персонализацию, а проверить, влияет ли сама логика изменения суммы по умолчанию на поведение клиентов.
Если упрощённый пилот показывает сигнал, тогда уже имеет смысл вкладываться в данные, модель и полноценное внедрение.