Test d'ipotesi per confrontare due medie tramite simulazione

Inferenza per dati numerici in R

Mine Cetinkaya-Rundel

Associate Professor of the Practice, Duke University

Motivazione

  • Domanda guida: un trattamento con cellule staminali embrionali migliora la funzione cardiaca dopo un infarto più della terapia tradizionale?

  • Dati: stem.cell dal pacchetto 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
Inferenza per dati numerici in R

Piano di analisi

Passo 1. Calcola change per ogni pecora: differenza tra capacità di pompaggio prima e dopo per ciascuna.

   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   ?
Inferenza per dati numerici in R

Piano di analisi

Passo 2. Definisci le ipotesi:

$H_0: \mu_{esc} = \mu_{ctrl}$; nessuna differenza nella variazione media tra trattamento e controllo.

$H_A: \mu_{esc} > \mu_{ctrl}$; c'è una differenza nella variazione media tra trattamento e controllo.

Inferenza per dati numerici in R

Piano di analisi

Passo 3. Conduci il test d'ipotesi.

  • Scrivi i valori di change su 18 carte.
  • (1) Mescola le carte e dividile a caso in due mazzetti uguali: trattamento e controllo.
  • (2) Calcola e annota la statistica test: differenza nella media di change tra trattamento e controllo.
  • Ripeti (1) e (2) molte volte per generare la distribuzione campionaria.
  • Calcola il p-value come la percentuale di simulazioni in cui la statistica test è almeno estrema quanto la differenza osservata tra le medie del campione.
Inferenza per dati numerici in R

Test d'ipotesi: genera ricampionamenti

Usa il pacchetto infer per eseguire il test:

library(infer)
Inferenza per dati numerici in R

Test d'ipotesi: genera ricampionamenti

Parti dal data frame e specifica il modello:

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  ...
Inferenza per dati numerici in R

Test d'ipotesi: genera ricampionamenti

Dichiara l'ipotesi nulla, cioè nessuna differenza tra le medie:

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" o "point"
  ...
Inferenza per dati numerici in R

Test d'ipotesi: genera ricampionamenti

Genera ricampionamenti assumendo $H_0$ vera:

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" o "point"
  generate(reps = __, type = __) %>% # "bootstrap", "permute", o "simulate"
  ...
Inferenza per dati numerici in R

Test d'ipotesi: genera ricampionamenti

Calcola la statistica test:

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" o "point"
  generate(reps = _N_, type = __) %>%# "bootstrap", "permute", o "simulate"
  calculate(stat = "diff in means")  # tipo di statistica da calcolare
Inferenza per dati numerici in R

Test d'ipotesi: calcola il p-value

Calcola il p-value come la proporzione di simulazioni in cui la differenza simulata tra le medie campionarie è almeno estrema quanto quella osservata

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

Inferenza per dati numerici in R

Esercitiamoci!

Inferenza per dati numerici in R

Preparing Video For Download...