Vérification 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 avec des cellules souches embryonnaires améliore-t-il la fonction cardiaque après un infarctus plus que la thérapie classique ?

  • Données : stem.cell du paquet 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 les capacités 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. Formuler les hypothèses :

$H_0: \mu_{esc} = \mu_{ctrl}$ ; aucune différence entre la variation moyenne des groupes traitement et témoin.

$H_A: \mu_{esc} > \mu_{ctrl}$ ; la variation moyenne est plus grande dans le groupe traitement que dans le témoin.

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

Plan d'analyse

Étape 3. Mener le test d'hypothèse.

  • Inscrire les valeurs de change sur 18 fiches.
  • (1) Mélanger puis répartir au hasard en deux paquets égaux : traitement et témoin.
  • (2) Calculer et noter la statistique de test : différence de la moyenne de change entre traitement et témoin.
  • Répéter (1) et (2) plusieurs fois pour générer la distribution d'échantillonnage.
  • Calculer la valeur p : 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 paquet infer pour effectuer 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 la trame de données 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.-à-d. 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 que $H_0$ est 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 valeur p

Calculer la valeur p comme la proportion de simulations où l'écart simulé entre les moyennes d'échantillon est au moins aussi extrême que l'écart 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...