Analyse de puissance - Partie II
Plus tôt, nous avons simulé une seule 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 traité et le groupe témoin si cette différence existe réellement. C'est une 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 afin de détecter une augmentation de 10 % du temps passé avec une puissance de 80 %. Pour ce faire, nous partons d'un petit échantillon (50), nous simulons plusieurs instances de cette expérience et nous vérifions la puissance. Si la puissance de 80 % est atteinte, nous arrêtons. Sinon, nous augmentons la taille de l'échantillon et nous réessayons.
Cette activité fait partie du cours
Simulation statistique en Python
Instructions de l’exercice
- Pour les variables aléatoires
time_spent, définissezsizecomme des tuples de sorte que la forme soitsample_size×sims. - Calculez
powercomme la fraction des valeurs p inférieures à 0,05 (statistiquement significatives). - Si
powerest supérieure ou égale à 80 %, faites unbreakpour sortir de la boucle while. Sinon, continuez d'incrémentersample_sizepar pas de 10.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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))