Analýza síly testu – část II
V předchozím cvičení jsme simulovali jeden průběh experimentu a získali jsme p-hodnotu. Teď tento postup využijeme k výpočtu statistické síly testu. Statistická síla vyjadřuje, jak dobře je experiment schopen odhalit rozdíl mezi testovanou a kontrolní skupinou, pokud takový rozdíl skutečně existuje. Dobrou praxí je usilovat o sílu testu alespoň 80 %.
Pro náš web chceme zjistit, kolik návštěvníků musí vidět každou variantu, abychom s 80% silou testu zachytili 10% nárůst stráveného času. Začneme s malým vzorkem (50), simulujeme více průběhů experimentu a zkontrolujeme sílu testu. Pokud dosáhneme 80 %, zastavíme se. Pokud ne, zvětšíme vzorek a zkusíme to znovu.
Toto cvičení je součástí kurzu
Statistické simulace v Pythonu
Pokyny k cvičení
- Pro náhodné proměnné
time_spentnastav parametrsizejako n-tici tak, aby výsledný tvar bylsample_size\(\times\)sims. - Vypočítej
powerjako podíl p-hodnot menších než 0,05 (statisticky významných). - Pokud je
powervětší nebo rovno 80 %, ukonči while smyčku pomocíbreak. Jinak pokračuj v navyšovánísample_sizeo 10.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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))