valeurs p

Tests d'hypothèses en Python

James Chapman

Curriculum Manager, DataCamp

Procès pénaux

  • Deux états possibles :
    1. L’accusé a commis le crime
    2. L’accusé n’a pas commis le crime
  • Deux verdicts possibles :
    1. Coupable
    2. Non coupable
  • Au départ, l’accusé est présumé non coupable
  • Le ministère public doit apporter des preuves « au-delà de tout doute raisonnable » pour un verdict de culpabilité
Tests d'hypothèses en Python

Âge du premier codage

  • age_first_code_cut classe quand un utilisateur Stack Overflow a commencé à programmer
    • "adult" signifie à 14 ans ou plus
    • "child" signifie avant 14 ans
  • Recherche antérieure : 35 % des développeurs ont commencé enfants
  • Des preuves qu’une plus grande part de data scientists a commencé enfants ?
Tests d'hypothèses en Python

Définitions

Une hypothèse est une affirmation sur un paramètre de population inconnu

Un test d’hypothèse oppose deux hypothèses concurrentes

  • L’hypothèse nulle ($H_{0}$) est l’idée existante

  • L’hypothèse alternative ($H_{A}$) est la nouvelle idée « challenger » du chercheur

Pour notre problème :

  • $H_{0}$ : La proportion de data scientists ayant commencé enfants est de 35 %
  • $H_{A}$ : La proportion de data scientists ayant commencé enfants est supérieure à 35 %
1 « Naught » signifie « zéro » en anglais britannique. Pour des raisons historiques, « H-naught » est la convention internationale pour prononcer l’hypothèse nulle.
Tests d'hypothèses en Python

Procès pénaux vs tests d’hypothèse

  • Soit $H_{A}$, soit $H_{0}$ est vraie (pas les deux)
  • Au départ, on suppose $H_{0}$ vraie
  • Le test se termine par « rejeter $H_{0}$ » ou « ne pas rejeter $H_{0}$ »
  • Si la preuve de l’échantillon est « significative » pour $H_{A}$, rejeter $H_{0}$, sinon choisir $H_{0}$

Le seuil de signification est l’équivalent du « doute raisonnable » pour les tests d’hypothèse

Tests d'hypothèses en Python

Tests unilatéraux et bilatéraux

Courbe de densité de la loi normale standard avec les queues gauche et droite en rouge.

Les tests d’hypothèse vérifient si la statistique d’échantillon se situe dans les queues de la distribution nulle

Test Queues
alternative différente de la nulle bilatéral
alternative supérieure à la nulle unilatéral droit
alternative inférieure à la nulle unilatéral gauche

 

$H_{A}$ : La proportion de data scientists ayant commencé enfant est supérieure à 35 %

C’est un test unilatéral droit

Tests d'hypothèses en Python

valeurs p

valeurs p : probabilité d’obtenir un résultat en supposant l’hypothèse nulle vraie

  • Grande valeur p, fort soutien à $H_{0}$
    • Statistique probablement pas dans la queue de la distribution nulle
  • Petite valeur p, forte preuve contre $H_{0}$
    • Statistique probablement dans la queue de la distribution nulle
  • Le « p » de p-value → probabilité
  • « petit » signifie « proche de zéro »
Tests d'hypothèses en Python

Calcul du score z

prop_child_samp = (stack_overflow['age_first_code_cut'] == "child").mean()
0.39141972578505085
prop_child_hyp = 0.35
std_error = np.std(first_code_boot_distn, ddof=1)
0.010351057228878566
z_score = (prop_child_samp - prop_child_hyp) / std_error
4.001497129152506
Tests d'hypothèses en Python

Calcul de la valeur p

  • norm.cdf() est la CDF normale de scipy.stats.
  • Test unilatéral gauche → utiliser norm.cdf().
  • Test unilatéral droit → utiliser 1 - norm.cdf().

 

from scipy.stats import norm
1 - norm.cdf(z_score, loc=0, scale=1)
3.1471479512323874e-05
Tests d'hypothèses en Python

Passons à la pratique !

Tests d'hypothèses en Python

Preparing Video For Download...