Hypotestestning för jämförelse av två medelvärden via simulering

Inferens för numeriska data i R

Mine Cetinkaya-Rundel

Associate Professor of the Practice, Duke University

Motivation

  • Frågeställning: Förbättrar en behandling med embryonala stamceller hjärtfunktionen efter en hjärtattack mer än traditionell terapi?

  • Data: stem.cell från paketet 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
Inferens för numeriska data i R

Analysöversikt

Steg 1. Beräkna change för varje får: skillnaden i hjärtats pumpkapacitet före och efter behandling.

   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   ?
Inferens för numeriska data i R

Analysöversikt

Steg 2. Formulera hypoteserna:

$H_0: \mu_{esc} = \mu_{ctrl}$; Det finns ingen skillnad i genomsnittlig förändring mellan behandlings- och kontrollgrupp.

$H_A: \mu_{esc} > \mu_{ctrl}$; Det finns en skillnad i genomsnittlig förändring mellan behandlings- och kontrollgrupp.

Inferens för numeriska data i R

Analysöversikt

Steg 3. Genomför hypotestestet.

  • Skriv värdena för change på 18 indexkort.
  • (1) Blanda korten och dela slumpmässigt upp dem i två lika stora högar: behandling och kontroll.
  • (2) Beräkna och notera teststatistikan: skillnaden i genomsnittlig change mellan behandling och kontroll.
  • Upprepa (1) och (2) många gånger för att generera samplingfördelningen.
  • Beräkna p-värdet som andelen simuleringar där teststatistikan är minst lika extrem som den observerade skillnaden mellan sampelmedelvärden.
Inferens för numeriska data i R

Hypotestest: generera omsamplingar

Använd paketet infer för att genomföra testet:

library(infer)
Inferens för numeriska data i R

Hypotestest: generera omsamplingar

Börja med dataramen och specificera modellen:

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  ...
Inferens för numeriska data i R

Hypotestest: generera omsamplingar

Deklarera nollhypotesen, dvs. ingen skillnad mellan medelvärden:

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" or "point"
  ...
Inferens för numeriska data i R

Hypotestest: generera omsamplingar

Generera omsamplingar under antagandet att $H_0$ är sann:

library(infer)

diff_ht_mean <- stem.cell %>%
  specify(__) %>%                    # y ~ x
  hypothesize(null = __) %>%         # "independence" or "point"
  generate(reps = __, type = __) %>% # "bootstrap", "permute", or "simulate"
  ...
Inferens för numeriska data i R

Hypotestest: generera omsamplingar

Beräkna teststatistikan:

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
Inferens för numeriska data i R

Hypotestest: beräkna p-värdet

Beräkna p-värdet som andelen simuleringar där den simulerade skillnaden mellan sampelmedelvärden är minst lika extrem som den observerade

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

Inferens för numeriska data i R

Nu kör vi en övning!

Inferens för numeriska data i R

Preparing Video For Download...