НачатьНачать бесплатно

Анализ мощности — часть 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))
Редактировать и запускать код