Analiza puterii - Partea a II-a
Anterior, am simulat o singură instanță a experimentului și am generat o valoare p. Acum vom folosi acest cadru pentru a calcula puterea statistică. Puterea unui experiment reprezintă capacitatea acestuia de a detecta o diferență între grupul de tratament și cel de control, atunci când diferența există cu adevărat. O bună practică statistică presupune să urmărești o putere de 80%.
Pentru site-ul nostru, să presupunem că vrem să știm câți utilizatori trebuie să viziteze fiecare variantă, astfel încât să putem detecta o creștere de 10% a timpului petrecut pe site, cu o putere de 80%. Vom începe cu un eșantion mic (50), vom simula mai multe instanțe ale experimentului și vom verifica puterea. Dacă se atinge o putere de 80%, ne oprim. Dacă nu, creștem dimensiunea eșantionului și repetăm.
Acest exercițiu face parte din cursul
Simulare statistică în Python
Instrucțiuni pentru exercițiu
- Pentru variabilele aleatoare
time_spent, seteazăsizeca tupluri, astfel încât forma să fiesample_size\(\times\)sims. - Calculează
powerca fracție a valorilor p mai mici decât 0,05 (semnificative statistic). - Dacă
powereste mai mare sau egal cu 80%, ieși din bucla while cubreak. Altfel, continuă să incrementezisample_sizecu 10.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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))