CommencezCommencez gratuitement

Analyse de puissance – Partie I

Passons maintenant à l'analyse de puissance. Vous voulez généralement vous assurer que toute expérimentation ou tout test A/B que vous menez a au moins 80 % de puissance. Une façon d'y parvenir est de calculer la taille d'échantillon nécessaire pour atteindre 80 % de puissance.

Supposons que vous dirigez un site de médias d'information et que vous souhaitez augmenter le temps que les utilisateurs passent sur votre site. À l'heure actuelle, le temps passé par les utilisateurs sur votre site suit une loi normale avec une moyenne de 1 minute et un écart type de 0,5 minute. Supposons que vous introduisez une fonctionnalité qui charge les pages plus rapidement et que vous voulez connaître la taille d'échantillon nécessaire pour mesurer une augmentation de 5 % du temps passé sur le site.

Dans cet exercice, nous allons mettre en place le cadre pour exécuter une simulation, effectuer un test t, et calculer la valeur p.

Cette activité fait partie du cours

Simulation statistique en Python

Voir le cours

Instructions de l’exercice

  • Initialisez effect_size à 5 %, control_mean à 1 et control_sd à 0,5.
  • À l'aide de np.random.normal(), simulez un tirage de control_time_spent et de treatment_time_spent en utilisant les valeurs que vous avez initialisées.
  • Effectuez un test t sur treatment_time_spent et control_time_spent avec st.ttest_ind()st correspond à scipy.stats, qui est déjà importé.
  • La signification statistique stat_sig doit être True si p_value est inférieure à 0,05; autrement, elle doit être False.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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))
Modifier et exécuter le code