Poweranalyse - Deel I
Nu gaan we aan de slag met poweranalyse. Je wilt er meestal voor zorgen dat elk experiment of elke A/B-test die je uitvoert minstens 80% power heeft. Een manier om dat te garanderen, is het benodigde steekproefvolume te berekenen om 80% power te behalen.
Stel dat je verantwoordelijk bent voor een nieuwssite en je de tijd wilt verhogen die gebruikers op je website doorbrengen. Op dit moment is de bezoektijd normaal verdeeld met een gemiddelde van 1 minuut en een standaarddeviatie van 0,5 minuut. Stel dat je een functie introduceert die pagina’s sneller laadt en je wilt weten welk steekproefvolume nodig is om een toename van 5% in bezoektijd te meten.
In deze oefening zetten we het raamwerk op om één simulatie te draaien, een t-test uit te voeren en de p-waarde te berekenen.
Deze oefening maakt deel uit van de cursus
Statisticale simulatie in Python
Oefeninstructies
- Initialiseer
effect_sizeop 5%,control_meanop 1 encontrol_sdop 0,5. - Gebruik
np.random.normal()om één trekking te simuleren vancontrol_time_spententreatment_time_spentmet de waarden die je hebt ingesteld. - Voer een t-test uit op
treatment_time_spentencontrol_time_spentmetst.ttest_ind(), waarbijstscipy.statsis, dat al is geïmporteerd. - Statistische significantie
stat_sigmoetTruezijn alsp_valuekleiner is dan 0,05; anders moet hetFalsezijn.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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))