Test d'hypothèse pour comparer deux moyennes par simulation

Inférence pour des données numériques en R

Mine Cetinkaya-Rundel

Associate Professor of the Practice, Duke University

Motivation

  • Question de départ : Un traitement à base de cellules souches embryonnaires améliore-t-il davantage la fonction cardiaque après un infarctus que la thérapie classique ?

  • Données : stem.cell du package openintro

library(openintro)
data(stem.cell)
   trmt   before   after 
1  ctrl    35.25   29.50
2  ctrl    36.50   29.50
3  ctrl    39.75   36.25
   ...      ...     ... 
n  esc     53.75   51.00
Inférence pour des données numériques en R

Plan d'analyse

Étape 1. Calculer change pour chaque mouton : différence entre la capacité de pompage avant et après pour chaque mouton.

   trmt   before   after   change 
1  ctrl    35.25   29.50   ?
2  ctrl    36.50   29.50   ?
3  ctrl    39.75   36.25   ?
   ...      ...     ...   
n  esc     53.75   51.00   ?
Inférence pour des données numériques en R

Plan d'analyse

Étape 2. Poser les hypothèses :

$H_0: \mu_{esc} = \mu_{ctrl}$ ; aucune différence entre les changements moyens des groupes traitement et témoin.

$H_A: \mu_{esc} > \mu_{ctrl}$ ; différence entre les changements moyens des groupes traitement et témoin.

Inférence pour des données numériques en R

Plan d'analyse

Étape 3. Réaliser le test d'hypothèse.

  • Inscrire les valeurs de change sur 18 cartes index.
  • (1) Mélanger puis répartir aléatoirement en deux paquets de taille égale : traitement et témoin.
  • (2) Calculer et noter la statistique de test : différence des change moyens entre traitement et témoin.
  • Répéter (1) et (2) de nombreuses fois pour générer la distribution d'échantillonnage.
  • Calculer la p-valeur : pourcentage de simulations où la statistique est au moins aussi extrême que la différence observée des moyennes.
Inférence pour des données numériques en R

Test d'hypothèse : générer des rééchantillonnages

Utiliser le package infer pour réaliser le test :

library(infer)
Inférence pour des données numériques en R

Test d'hypothèse : générer des rééchantillonnages

Commencer par le data frame et spécifier le modèle :

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  ...
Inférence pour des données numériques en R

Test d'hypothèse : générer des rééchantillonnages

Déclarer l'hypothèse nulle, c'est‑à‑dire aucune différence entre les moyennes :

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" or "point"
  ...
Inférence pour des données numériques en R

Test d'hypothèse : générer des rééchantillonnages

Générer des rééchantillonnages en supposant $H_0$ vraie :

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" or "point"
  generate(reps = __, type = __) %>% # "bootstrap", "permute", or "simulate"
  ...
Inférence pour des données numériques en R

Test d'hypothèse : générer des rééchantillonnages

Calculer la statistique de test :

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" or "point"
  generate(reps = _N_, type = __) %>%# "bootstrap", "permute", or "simulate"
  calculate(stat = "diff in means")  # type of statistic to calculate
Inférence pour des données numériques en R

Test d'hypothèse : calculer la p-valeur

Calculer la p-valeur comme la proportion de simulations où l'écart simulé entre les moyennes d'échantillon est au moins aussi extrême que l'observé

$$P ((\bar{x}_{esc,sim} - \bar{x}_{ctrl,sim}) \ge (\bar{x}_{esc,obs} - \bar{x}_{ctrl,obs}))$$

Inférence pour des données numériques en R

Passons à la pratique !

Inférence pour des données numériques en R

Preparing Video For Download...