Analyse de puissance - Partie II
Précédemment, nous avons simulé une instance de l’expérience et généré une valeur p. Nous allons maintenant utiliser ce cadre pour calculer la puissance statistique. La puissance d’une expérience correspond à sa capacité à détecter une différence entre le groupe témoin et le groupe traité si cette différence existe réellement. Il est recommandé, par bonne pratique statistique, de viser une puissance de 80 %.
Pour notre site web, supposons que nous voulions savoir combien de personnes doivent visiter chaque variante pour détecter une augmentation de 10 % du temps passé avec une puissance de 80 %. Pour cela, nous commençons avec un petit échantillon (50), nous simulons plusieurs instances de cette expérience et nous évaluons la puissance. Si nous atteignons 80 % de puissance, nous nous arrêtons. Sinon, nous augmentons la taille de l’échantillon et réessayons.
Cet exercice fait partie du cours
Simulation statistique en Python
Instructions
- Pour les variables aléatoires
time_spent, définissezsizecomme des tuples de sorte que la forme soitsample_size\(\times\)sims. - Calculez
powercomme la fraction des valeurs p inférieures à 0,05 (statistiquement significatif). - Si
powerest supérieure ou égale à 80 %, utilisezbreakpour sortir de la boucle while. Sinon, continuez à incrémentersample_sizede 10.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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))