Ответ
Для проверки эффективности нового алгоритма ценообразования в ритейле я бы спланировал и провел A/B-тест, разделив магазины или товарные категории на две сопоставимые группы.
1. Дизайн эксперимента:
- Группы: Контрольная (старые цены) и тестовая (цены по новому алгоритму). Разделение — случайное, но с проверкой баланса по ключевым параметрам: локация, площадь, трафик, средний исторический чек.
- Основная метрика: Выручка на магазин/товарную категорию.
- Дополнительные метрики: Средний чек, маржинальность, объем продаж в единицах, конверсия.
- Длительность: Не менее 4 недель для учета недельной сезонности и полного цикла покупок.
2. Статистический анализ: Перед сравнением средних проверяю распределение данных. Для нормально распределенных метрик использую t-тест, для остальных — непараметрический U-тест Манна-Уитни.
import scipy.stats as stats
import numpy as np
# Пример: сравнение выручки в двух группах магазинов
revenue_control = np.array([120000, 115000, 130000, 125000, 118000]) # Контроль
revenue_test = np.array([135000, 140000, 128000, 142000, 138000]) # Тест
# Проверка нормальности (Shapiro-Wilk)
_, p_norm_control = stats.shapiro(revenue_control)
_, p_norm_test = stats.shapiro(revenue_test)
if p_norm_control > 0.05 and p_norm_test > 0.05:
# Данные нормальные, используем t-тест
t_stat, p_value = stats.ttest_ind(revenue_control, revenue_test, equal_var=False) # Welch's t-test
test_name = "t-тест"
else:
# Данные не нормальные, используем U-тест
u_stat, p_value = stats.mannwhitneyu(revenue_control, revenue_test, alternative='two-sided')
test_name = "U-тест Манна-Уитни"
print(f"Использован {test_name}. p-value = {p_value:.4f}")
if p_value < 0.05:
print("Статистически значимая разница обнаружена.")
# Расчет размера эффекта (например, относительный прирост)
effect = (np.mean(revenue_test) - np.mean(revenue_control)) / np.mean(revenue_control)
print(f"Относительный прирост выручки: {effect:.2%}")
else:
print("Статистически значимой разницы не обнаружено.")
3. Интерпретация и выводы: Ключевой результат — не только статистическая значимость (p-value < 0.05), но и практическая значимость (размер эффекта). Также я бы провел сегментный анализ, чтобы понять, на каких категориях товаров или в каких типах магазинов алгоритм сработал лучше или хуже.