4 T-test

4.1 One-sample T-test

Eksempel: Slagvolumen målt ved to metoder (parrede målinger, uge 1)

One-sample t-test på differenserne:

ms$dif <- ms$mf-ms$sv
t.test( ms$dif )

    One Sample t-test

data:  ms$dif
t = 0.16, df = 20, p-value = 0.9
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
 -2.932  3.408
sample estimates:
mean of x 
   0.2381 

Bemærk at vi får gennemsnit incl CI udover p-værdien (og T-teststørrelsen).

Dette er det samme som et parret t-test som kan laves med

t.test( ms$mf, ms$sv, paired=T)

    Paired t-test

data:  ms$mf and ms$sv
t = 0.16, df = 20, p-value = 0.9
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2.932  3.408
sample estimates:
mean of the differences 
                 0.2381 

Bemærk at output er identisk med output fra one-sample t-test på differenserne.

4.2 Two-sample T-test

Eksempel: Rygning og lungefunktion for Vietnam veteraner

Når vi bruger de forskellige varianter af t-test benytter vi formelnotation: På venstre side af ~ sætter vi responsen (feks FEV1), på højre side den forklarende variabel, som SKAL være en kategorisk variabel (faktor) med to mulige værdier (feks smoke01 i datasættet viet).

4.2.1 T-test uden forudsætning om ens varianser

Welch two-sample t-test:

t.test( FEV1 ~ smoke01, data=viet )

4.2.2 Test for ens varianser

Her findes forskellige varianter. I forbindelse med t-test i R benyttes ofte:

var.test( FEV1 ~ smoke01, data=viet )

Aflæs kun p-værdien. Er p-værdien > 0.05 er der ikke tegn på at varianserne er forskellige, er p-værdien < 0.05 konkluderer vi at varianserne er forskellige.

4.2.3 T-test med forudsætning om ens varianser

Det sædvanlige t-test, også kendt som Student’s t-test, antager at variansen (spredningen) er den samme i de to grupper. Det specificeres med ekstra argument var.equal=TRUE:

t.test( FEV1 ~ smoke01, data=viet, var.equal=TRUE )

4.2.4 Stikprøveberegning two-sample t-test

Forudsætning om ens varianser i de to grupper. Her specificerer vi f.eks.

  • forskel i gennemsnit på delta=5 \((=\mu_1-\mu_2)\)
  • samme spredning (SD) i de to grupper på sd=20
  • power på 80%, power=0.8

Når vi ønsker at beregne stikprøvestørrelse n i hver gruppe, angiver vi kun delta, SD og power.

power.t.test( delta = 5, sd = 20,  power = 0.8 )

     Two-sample t test power calculation 

              n = 252.1
          delta = 5
             sd = 20
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

NOTE: n is number in *each* group

Ønsker vi i stedet at beregne power for en given stikprøvestørrelse n udelader vi tilsvarende blot at angive en værdi til power-argumentet, når vi benytter power.t.test(), f.eks.:

power.t.test( delta = 5, sd = 20,  n=200 )

Man kan ændre signifikansniveau (ekstra argument alpha), vælge ensidet i stedet for tosidet test (sjældent!) ligesom man også kan få power.t.test() til at lave powerberegning for et one-sample eller parret t-test. Se dokumentationen (help(power.t.test)) eller prøv at google.

Ønsker man at grupperne ikke skal være lige store skal man i stedet benytte pakken MESS

install.packages("MESS") # koer een gang og slet linjen

Her er der et ekstra argument til funktionen power_t_test() hvori man angiver forholdet mellem antal observationer i de to grupper (her ratio=3 svarende til at vi ønsker 3 gange så mange i den ene gruppe (3:1 randomisering, 1/4 i den lille gruppe))

library(MESS)
power_t_test(delta=5,sd=20,power=.80,ratio=3)

     Two-sample t test power calculation with unequal sample sizes 

              n = 168.6, 505.7
          delta = 5
             sd = 20, 20
      sig.level = 0.05
          power = 0.8
    alternative = two.sided

NOTE: n is vector of number in each group

Vi skal altså have 169 individer i den ene gruppe, 506 i den anden for at opnå en power på 0.8.