Аналіз потужності — Частина II
Раніше ми змоделювали один запуск експерименту й отримали p-значення. Тепер використаємо цю схему, щоб обчислити статистичну потужність. Потужність експерименту — це здатність експерименту виявити різницю між варіантом і контролем, якщо така різниця справді є. Гарною практикою вважається прагнути до 80% потужності.
Для нашого вебсайту припустімо, що ви хочете дізнатися, скільки людей має відвідати кожен варіант, щоб ми могли виявити зростання часу, проведеного на сайті, на 10% із потужністю 80%. Для цього ми починаємо з невеликої вибірки (50), моделюємо декілька запусків цього експерименту й перевіряємо потужність. Якщо досягнуто 80% потужності — зупиняємося. Якщо ні — збільшуємо розмір вибірки й пробуємо знову.
Ця вправа є частиною курсу
Статистичне моделювання в Python
Інструкції до вправи
- Для випадкових змінних
time_spentзадайтеsizeяк кортежі так, щоб форма булаsample_size\(\times\)sims. - Обчисліть
powerяк частку p-значень, менших за 0,05 (статистично значущих). - Якщо
powerбільше або дорівнює 80%, виконайтеbreakз циклу while. Інакше продовжуйте збільшувати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))