Tests d'hypothèse et scores z

Tests d'hypothèse en R

Richie Cotton

Data Evangelist at DataCamp

Tests A/B

  • Electronic Arts (EA) est une entreprise de jeux vidéo.
  • En 2013, elle a lancé SimCity 5.
  • Leur objectif : augmenter les précommandes du jeu.
  • Ils ont utilisé des tests A/B pour comparer des scénarios publicitaires.
  • On répartit les utilisatrices et utilisateurs 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
Tests d'hypothèse en R

Test A/B d'une page de 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

Tests d'hypothèse en R

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'idée « montrer une pub augmente les ventes » était complètement fausse.
  • Ce résultat est-il statistiquement significatif ou dû au hasard ?
  • Il faut les données d'EA pour le déterminer.
  • Vous utiliseriez l'échantillonnage en R + ce cours pour le faire.
Tests d'hypothèse en R

Stack Overflow Developer Survey 2020

library(dplyr)
glimpse(stack_overflow)
Rows: 2,261
Columns: 8
$ respondent         <dbl> 36, 47, 69, 125, 147, 152, 166, 170, 187, 196, 221,…
$ age_first_code_cut <chr> "adult", "child", "child", "adult", "adult", "adult…
$ converted_comp     <dbl> 77556, 74970, 594539, 2000000, 37816, 121980, 48644…
$ job_sat            <fct> Slightly satisfied, Very satisfied, Very satisfied,…
$ purple_link        <chr> "Hello, old friend", "Hello, old friend", "Hello, o…
$ age_cat            <chr> "At least 30", "At least 30", "Under 30", "At least…
$ age                <dbl> 34, 53, 25, 41, 28, 30, 28, 26, 43, 23, 24, 35, 37,…
$ hobbyist           <chr> "Yes", "Yes", "Yes", "Yes", "No", "Yes", "Yes", "Ye…
Tests d'hypothèse en R

Formuler une hypothèse sur la moyenne

Une hypothèse :

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

L'estimation ponctuelle (statistique d'échantillon) :

mean_comp_samp <- mean(stack_overflow$converted_comp)
mean_comp_samp <- stack_overflow %>% 
  summarize(mean_compensation = mean(converted_comp)) %>% 
  pull(mean_compensation)
119574.7
Tests d'hypothèse en R

Générer une distribution bootstrap

# Step 3. Repeat steps 1 & 2 many times
so_boot_distn <- replicate(
  n = 5000,
  expr = {
    # Step 1. Resample
    stack_overflow %>%
      slice_sample(prop = 1, replace = TRUE) %>%
      # Step 2. Calculate point estimate
      summarize(mean_compensation = mean(converted_comp)) %>% 
      pull(mean_compensation)
  }
)
1 Les distributions bootstrap sont abordées au chapitre 4 de Sampling in R
Tests d'hypothèse en R

Visualiser la distribution bootstrap

tibble(resample_mean = so_boot_distn) %>%
  ggplot(aes(resample_mean)) +
  geom_histogram(binwidth = 1000)

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

Tests d'hypothèse en R

Erreur type

std_error <- sd(so_boot_distn)
5511.674
Tests d'hypothèse en R

Scores z

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

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

$z = \dfrac{\$119,574.7 - \$110,000}{\$5511.67} = 1.737$

mean_comp_samp
119574.7
mean_comp_hyp <- 110000
std_error
5511.674
z_score <- (mean_comp_samp - mean_comp_hyp) / std_error
1.737171
Tests d'hypothèse en R

Tester l'hypothèse

  • 1,737171 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 »).

Tests d'hypothèse en R

Distribution normale standard (z)

Distribution normale standard : la loi normale de moyenne zéro et d'écart type 1.

tibble(x = seq(-4, 4, 0.01)) %>% 
  ggplot(aes(x)) +
  stat_function(fun = dnorm) +
  ylab("PDF(x)")

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

Tests d'hypothèse en R

Passons à la pratique !

Tests d'hypothèse en R

Preparing Video For Download...