Analýza síly testu – část I
Teď se zaměříme na analýzu síly testu. Zpravidla chceš mít jistotu, že každý experiment nebo A/B test, který spustíš, má sílu alespoň 80 %. Jedním ze způsobů, jak toho dosáhnout, je vypočítat velikost vzorku potřebnou k dosažení 80% síly.
Představ si, že máš na starosti zpravodajský web a chceš zvýšit dobu, kterou uživatelé na webu stráví. V současnosti se tato doba řídí normálním rozdělením s průměrem 1 minuta a směrodatnou odchylkou 0,5 minuty. Uvažuješ o zavedení funkce, která urychlí načítání stránek, a chceš zjistit, jak velký vzorek potřebuješ k měření 5% nárůstu doby strávené na webu.
V tomto cvičení připravíš framework pro spuštění jedné simulace, provedení t-testu a výpočet p-hodnoty.
Toto cvičení je součástí kurzu
Statistické simulace v Pythonu
Pokyny k cvičení
- Inicializuj
effect_sizena 5 %,control_meanna 1 acontrol_sdna 0.5. - Pomocí
np.random.normal()simuluj jedno náhodné tažení procontrol_time_spentatreatment_time_spents použitím inicializovaných hodnot. - Spusť t-test na
treatment_time_spentacontrol_time_spentpomocíst.ttest_ind(), kdestjescipy.stats(již naimportováno). - Statistická významnost
stat_sigby měla nabývat hodnotyTrue, pokud jep_valuemenší než 0.05, jinakFalse.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# Initialize effect_size, control_mean, control_sd
effect_size, sample_size, control_mean, control_sd = ____, 50, ____, ____
# Simulate control_time_spent and treatment_time_spent, assuming equal variance
control_time_spent = np.random.normal(loc=control_mean, scale=____, size=sample_size)
treatment_time_spent = np.random.normal(loc=____*(1+effect_size), scale=control_sd, size=____)
# Run the t-test and get the p_value
t_stat, p_value = st.ttest_ind(____, ____)
stat_sig = p_value < ____
print("P-value: {}, Statistically Significant? {}".format(p_value, stat_sig))