Tests d'hypothèse et scores z

Vérification d'hypothèses en Python

James Chapman

Curriculum Manager, DataCamp

Test A/B

  • En 2013, Electronic Arts (EA) a lancé SimCity 5
  • Objectif : augmenter les précommandes du jeu
  • Ils ont utilisé des tests A/B pour comparer des scénarios publicitaires
  • On répartit les personnes en groupes témoin et traitement

Bâtiment d'Electronic Arts

1 Crédit image : « Electronic Arts » par majaX1 CC BY-NC-SA 2.0
Vérification d'hypothèses en Python

Test A/B d'une page de vente au détail

Témoin :

Page SimCity avec une bannière « précommandez et obtenez 20 $ de rabais sur votre prochain achat »

Traitement :

Page SimCity sans bannière

Vérification d'hypothèses en Python

Résultats du test A/B

  • Le groupe traitement (sans pub) a fait 43,4 % plus d'achats que le groupe témoin (avec pub)
  • L'intuition « montrer une pub augmente les ventes » était fausse
  • Ce résultat est-il statistiquement significatif ou dû au hasard ?
  • Il faut les données d'EA pour le déterminer
  • Méthodes vues dans Sampling in Python + ce cours pour y arriver
Vérification d'hypothèses en Python

Stack Overflow Developer Survey 2020

import pandas as pd
print(stack_overflow)
      respondent  age_1st_code  ...   age  hobbyist
0           36.0          30.0  ...  34.0       Yes
1           47.0          10.0  ...  53.0       Yes
2           69.0          12.0  ...  25.0       Yes
3          125.0          30.0  ...  41.0       Yes
4          147.0          15.0  ...  28.0        No
...          ...           ...  ...   ...       ...
2259     62867.0          13.0  ...  33.0       Yes
2260     62882.0          13.0  ...  28.0       Yes

[2261 rows x 8 columns]
Vérification d'hypothèses en Python

Formuler une hypothèse sur la moyenne

Une hypothèse :

La moyenne de la rémunération annuelle de la population de scientifiques des données est de 110 000 $

Estimation ponctuelle (statistique d'échantillon) :

mean_comp_samp = stack_overflow['converted_comp'].mean()
119574.71738168952
Vérification d'hypothèses en Python

Générer une distribution bootstrap

import numpy as np

# Étape 3. Répéter les étapes 1 et 2 plusieurs fois et ajouter à une liste so_boot_distn = [] for i in range(5000): so_boot_distn.append(
# Étape 2. Calculer l'estimation ponctuelle np.mean(
# Étape 1. Rééchantillonner stack_overflow.sample(frac=1, replace=True)['converted_comp']
)
)
1 Les distributions bootstrap sont abordées au chapitre 4 de Sampling in Python
Vérification d'hypothèses en Python

Visualiser la distribution bootstrap

import matplotlib.pyplot as plt
plt.hist(so_boot_distn, bins=50)
plt.show()

Histogramme de la distribution bootstrap : en cloche, environ de 110000 à 140000

Vérification d'hypothèses en Python

Erreur type

std_error = np.std(so_boot_distn, ddof=1)
5607.997577378606
Vérification d'hypothèses en Python

Scores z

$\text{valeur normalisée} = \dfrac{\text{valeur} - \text{moyenne}}{\text{écart-type}}$

$z = \dfrac{\text{stat. d'échantillon} - \text{valeur param. hypoth.}}{\text{erreur type}}$

Vérification d'hypothèses en Python

$z = \dfrac{\text{stat. d'échantillon} - \text{valeur param. hypoth.}}{\text{erreur type}}$

stack_overflow['converted_comp'].mean()
119574.71738168952
mean_comp_hyp = 110000
std_error
5607.997577378606
z_score = (mean_comp_samp - mean_comp_hyp) / std_error
1.7073326529796957
Vérification d'hypothèses en Python

Tester l'hypothèse

  • 1,707 est-il un nombre élevé ou faible ?
  • C'est l'objectif du cours !
Vérification d'hypothèses en Python

Tester l'hypothèse

  • 1,707 est-il un nombre élevé ou faible ?
  • C'est l'objectif du cours !

 

Cas d'usage des tests d'hypothèse :

 

Déterminer si les statistiques d'échantillon sont proches ou éloignées des valeurs attendues (ou « hypothétiques »)

Vérification d'hypothèses en Python

Distribution normale standard (z)

Distribution normale standard : distribution normale avec moyenne = 0 et écart-type = 1

Courbe de densité de la PDF pour la distribution normale standard

Vérification d'hypothèses en Python

Passons à la pratique !

Vérification d'hypothèses en Python

Preparing Video For Download...