Analyse de puissance - Partie I
Passons maintenant à l’analyse de puissance. En général, vous souhaitez vous assurer que toute expérience ou tout test A/B que vous lancez 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 dirigiez un site d’actualités et que vous souhaitiez augmenter le temps passé par les utilisateurs sur votre site. Actuellement, le temps passé par les utilisateurs suit une loi normale avec une moyenne de 1 minute et un écart-type de 0,5 minute. Supposons que vous introduisiez une fonctionnalité qui accélère le chargement des pages et que vous vouliez 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, lancer un t-test, et calculer la p-value.
Cet exercice fait partie du cours
Simulation statistique en Python
Instructions
- Initialisez
effect_sizeà 5 %,control_meanà 1 etcontrol_sdà 0,5. - À l’aide de
np.random.normal(), simulez un tirage decontrol_time_spentettreatment_time_spenten utilisant les valeurs que vous avez initialisées. - Effectuez un t-test sur
treatment_time_spentetcontrol_time_spentavecst.ttest_ind()oùstcorrespond àscipy.stats, déjà importé. - La significativité statistique
stat_sigdoit êtreTruesip_valueest inférieure à 0,05 ; sinon, elle doit êtreFalse.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))