CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • 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 treatment_time_spent en utilisant les valeurs que vous avez initialisées.
  • Effectuez un t-test sur treatment_time_spent et control_time_spent avec st.ttest_ind()st correspond à scipy.stats, déjà importé.
  • La significativité statistique stat_sig doit être True si p_value est inférieure à 0,05 ; sinon, elle doit être False.

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