Comment calculer la significativité statistique d'un AB Test

Le calcul de la significativité statistique d’un A/B test est une composante essentielle qui permet de déterminer si les résultats observés entre deux variantes (A et B) sont dus au hasard ou à une véritable différence entre les deux groupes. Voici une méthode détaillée pour effectuer ce calcul ainsi que le modèle excel et le script python pour la calculer avec vos propres données.


Voici les différentes étapes pour calculer la significativité statistique lors de l'analyse des résultats d'un A/B test.

1. Définir les termes essentiels


2. Calculer l’erreur standard

L’erreur standard mesure la variation probable des taux de conversion dans chaque groupe.


3. Calculer le score Z


4. Trouver la p-value

Utilisez une table de score Z (ou une calculatrice en ligne) pour trouver la p-value associée au score Z.

  • Une p-value inférieure à 0.05 (p<0.05p < 0.05p<0.05) indique que la différence est statistiquement significative (95% de confiance).
  • Si p>0.05p > 0.05p>0.05, on ne peut pas rejeter l’hypothèse nulle.

5. Interpréter les résultats

  • Si le résultat est statistiquement significatif :
    • Vous pouvez conclure qu’il y a une vraie différence entre A et B.
  • Sinon :
    • Vous ne pouvez pas conclure que l’une des variantes est meilleure. Continuez le test ou ajustez votre approche.

Exemple pratique

La différence entre les groupes est statistiquement significative. Vous pouvez conclure que la variante B est meilleure.


Outils pour simplifier les calculs

Voici un modèle Excel et un script Python pour automatiser vos calculs.

Modèle Excel

Remplissez les cellules appropriées pour les visiteurs et les conversions des groupes A et B, et le modèle calculera automatiquement les taux de conversion, la différence, l'erreur standard, le score Z et l'interprétation de la p-value.

Script Python

Voici un script Python qui calcule la significativité statistique d'un test A/B.

from scipy.stats import norm

def calculate_ab_test_significance(conversions_a, visitors_a, conversions_b, visitors_b):
    # Step 1: Calculate conversion rates
    cr_a = conversions_a / visitors_a
    cr_b = conversions_b / visitors_b

    # Step 2: Calculate the absolute difference in conversion rates
    delta = cr_b - cr_a

    # Step 3: Calculate the standard error
    se = ((cr_a * (1 - cr_a) / visitors_a) + (cr_b * (1 - cr_b) / visitors_b)) ** 0.5

    # Step 4: Calculate the Z-score
    z_score = delta / se

    # Step 5: Calculate the p-value (using a two-tailed test)
    p_value = 2 * (1 - norm.cdf(abs(z_score)))

    # Step 6: Interpret the results
    significance = "Significant (p < 0.05)" if p_value < 0.05 else "Not Significant (p ≥ 0.05)"

    # Output results
    return {
        "Conversion Rate A": cr_a,
        "Conversion Rate B": cr_b,
        "Difference (Delta)": delta,
        "Standard Error": se,
        "Z-Score": z_score,
        "P-Value": p_value,
        "Significance": significance,
    }

# Example input values
result = calculate_ab_test_significance(conversions_a=300, visitors_a=10000, conversions_b=350, visitors_b=10000)

print(result)

Exemple de sortie :

Pour les valeurs suivantes :

  • Conversions A : 300
  • Visiteurs A : 10,000
  • Conversions B : 350
  • Visiteurs B : 10,000

Le script génère :

{
 'Conversion Rate A': 0.03,
 'Conversion Rate B': 0.035,
 'Difference (Delta)': 0.005,
 'Standard Error': 0.00251,
 'Z-Score': 1.994,
 'P-Value': 0.0461,
 'Significance': 'Significant (p < 0.05)'
}

Vous devez bien sûr adapter les entrées pour vos propres données et analyser rapidement la significativité statistique d’un test A/B.


Autres contenus liés

Comment mettre en place une méthodologie d’A/B Testing
Voici une guide détaillée pour mettre en place une méthodologie d’A/B testing, particulièrement adaptée aux startups, qui doivent maximiser l’impact de leurs décisions tout en minimisant les ressources investies.