Анализ мощности — часть II
Ранее мы моделировали один экземпляр эксперимента и получали p-значение. Теперь воспользуемся этим подходом для вычисления статистической мощности. Мощность эксперимента — это его способность обнаружить различие между экспериментальной и контрольной группами, если оно действительно существует. Хорошей статистической практикой считается стремление к мощности не менее 80%.
Предположим, нам нужно определить, сколько посетителей должно просмотреть каждый вариант сайта, чтобы при мощности 80% обнаружить увеличение времени на сайте на 10%. Начнём с небольшой выборки (50), смоделируем несколько экземпляров эксперимента и проверим мощность. Если мощность достигает 80% — останавливаемся. В противном случае увеличиваем размер выборки и повторяем попытку.
Это упражнение является частью курса
Статистическое моделирование на Python
Инструкции к упражнению
- Для случайных величин
time_spentзадайте параметрsizeв виде кортежа так, чтобы форма массива былаsample_size\(\times\)sims. - Вычислите
powerкак долю p-значений, меньших 0,05 (статистически значимых). - Если
powerбольше или равна 80%, выйдите из цикла while с помощьюbreak. В противном случае продолжайте увеличиватьsample_sizeна 10.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
sample_size = 50
# Keep incrementing sample size by 10 till we reach required power
while 1:
control_time_spent = np.random.normal(loc=control_mean, scale=control_sd, size=(____,____)))
treatment_time_spent = np.random.normal(loc=control_mean*(1+effect_size), scale=control_sd, size=(____,____))
t, p = st.ttest_ind(treatment_time_spent, control_time_spent)
# Power is the fraction of times in the simulation when the p-value was less than 0.05
power = (p < 0.05).sum()/____
if ____:
____
else:
____ += ____
print("For 80% power, sample size required = {}".format(sample_size))