Сколько дней собирать тест
// Условие
Дизайн теста готов: нужно по 12 000 юзеров на группу (две группы, трафик делится 50/50). Остался вопрос календаря. У тебя — дневной трафик страницы за последние две недели.
Что нужно
Посчитай средний дневной трафик и оцени, сколько дней займёт сбор выборки. Сохрани в result — dict с ключами avg_daily_users, days_needed (целое, с округлением вверх).// Данные
df:
date, users — дневной трафик страницы за 14 дней// Решение
Подсказка
Средний трафик: df['users'].mean(). Весь он делится между двумя группами.
Всего нужно 2 × 12 000 = 24 000 юзеров. Дней: math.ceil(24000 / avg_daily).
Сначала попробуй сам → Показать решение
df = load_data()
import math
avg_daily = df['users'].mean() # 2000/день на обе группы
total_needed = 2 * 12000
days = math.ceil(total_needed / avg_daily)
result = {'avg_daily_users': avg_daily, 'days_needed': days}
print(result)
24 000 / 2 000 = 12 дней. На практике длительность округляют вверх до целых недель (здесь — 14 дней): недельная сезонность — будни и выходные ведут себя по-разному, и обрезанный «хвост недели» смещает выборку.
Какой план предложишь команде?
12 дней покрывают выборку, но рвут вторую неделю посередине — выборка получает лишние будни и теряет выходные. Полные недели (14 дней) снимают это смещение почти бесплатно. Остановка «когда p < 0.05» — peeking. Отдать весь трафик в тест — остаться без контрольной группы, сравнивать станет не с чем.