Hypotesetesting: Valg av statistisk test

Valg av statistisk test

Dette kapitlet beskriver de viktigste statistiske testene og hva de brukes til. Det finnes statistiske tester for alle tenkelige typer sammenligninger. Hver statistisk test tar utgangspunkt i nullhypotesen. Hvis man sammenligner gjennomsnittet i to grupper, innebærer nullhypotesen at man antar at det ikke er noen forskjell mellom gruppene. Hvis man undersøker om en prediktor (f.eks. blodtrykk) har betydning for et utfallsmål (f.eks. død) ved hjelp av regresjon, har man også en nullhypotese, og den innebærer at man antar at blodtrykk ikke har noen sammenheng med død (dvs. regresjonskoeffisienten for blodtrykk = 0). For å vurdere hvilken statistisk test som er egnet, må man altså ta hensyn til variablenes natur og sammenhenger. Man skiller mellom kontinuerlige og kategoriske variabler.

En kategorisk variabel (også kalt nominal) har minst to kategorier (også kalt nivåer). Kjønn er en kategorisk variabel, og det finnes (som oftest i kliniske studier) to nivåer, nemlig mann og kvinne. Etnisitet er også en kategorisk variabel, der det for eksempel kan finnes søramerikansk, svensk, asiatisk, nordamerikansk osv. Når det gjelder kjønn og etnisitet, finnes det ingen innbyrdes rekkefølge mellom kategoriene (dvs. man kan ikke ordne kategoriene i synkende eller stigende rekkefølge på en naturlig måte). Det finnes imidlertid kategoriske variabler som har en naturlig rekkefølge, og en slik variabel kalles ordinal. Et eksempel på en kategorisk variabel som er ordinal, er utdanningsnivå, som kan kategoriseres fra lav og middels til høy utdanning. Noen ordinale variabler er dessuten av typen intervall, noe som innebærer at avstanden mellom de ulike kategoriene er lik. Vi kan for eksempel lage inntektskategorier (månedsinntekt) ved å danne gruppene: 15000-20000, 20000-25000, 25000-30000 osv.

En kontinuerlig variabel er som regel en måleverdi eller et annet numerisk tall. Alder i år, kroppsvekt i kilo og avstand i meter er alle kontinuerlige variabler. På ett punkt ligner den kontinuerlige variabelen på en intervallvariabel, siden avstanden mellom hvert tall er like stor. Faktisk kan en intervallvariabel med et stort antall nivåer betraktes som en kontinuerlig variabel.

Statistiske tester og regresjonsmodeller bygger på matematiske forutsetninger. Testens eller modellens validitet avhenger av at visse forutsetninger er oppfylt. En vanlig forutsetning gjelder variabelens fordeling, siden de fleste tester egentlig sammenligner fordelinger. Å sammenligne to gruppers gjennomsnitt innebærer egentlig at man sammenligner fordelingene.

Forutsetninger om normalfordeling for kontinuerlige variabler

T-test og ANOVA (analysis of variance) krever ikke at verdiene fra de individuelle observasjonene i utvalget er normalfordelte. Derimot krever disse testene at selve gjennomsnittene er normalfordelte, i den forstand at hvis man trekker mange utvalg og beregner gjennomsnittet i hvert av dem, skal disse gjennomsnittene være normalfordelte. En måte å sikre at gjennomsnittene er normalfordelte på, er å undersøke om de individuelle observasjonene i utvalget viser en normalfordeling. Videre vil alle gjennomsnitt, uavhengig av den underliggende fordelingen, nærme seg normalfordeling etter hvert som utvalgsstørrelsen øker. Hvis man har >30 observasjoner, kan man anta at normalfordeling foreligger. (For detaljer kan leseren fordype seg i central limit theorem.)

For regresjon basert på OLS (ordinary least squares) må residualene være normalfordelte. Hvis både den avhengige variabelen og prediktorene er normalfordelte, sikrer det (så godt som) at residualene er normalfordelte. Merk imidlertid at verken den avhengige variabelen eller prediktorene må være normalfordelte for at residualene skal bli det.

Valg av statistisk test: 3 variabler eller flere

graph TD
V(3 variabler eller flere) ---> K1(Kontinuerlig avhengig variabel) & K2(Kategorisk avhengig variabel)
K1 ---> ML(Multippel regresjon)
K2 ---> Två(Avhengig variabel med 2 kategorier) ---> LR(Logistisk regresjon)
K2 ---> Tre(Avhengig variabel med 3 kategorier eller flere) ---> MR(Multinomisk logistisk regresjon)

Valg av statistisk test: 1 variabel

graph TD
V(1 variabel) ---> Kategorisk & Kontinuerlig
Kategorisk ---> Two1(2 grupper) ---> One(One-proportion test)
Kategorisk ---> Two2(>2 grupper) ---> Ki(Chi-square goodness-of-fit test)
Kontinuerlig ---> P1(Parametrisk) ---> X("One-sample students t-test")
Kontinuerlig ---> P2(Ikke-parametrisk) ---> Y("One-sample Wilcoxon test")

Valg av test: 2 kontinuerlige variabler

graph LR;
TwoVar(2 variabler)

TwoVar ---> TwoQuant(2 kvantitative) ---> Parametrisk ---> Pear(Pearsons korrelasjon)
                      TwoQuant(2 kvantitative) ---> Icke-parametrisk(Ikke-parametrisk) ---> Spear(Spearmans rangkorrelasjon)

TwoVar ---> 1Q1C(1 kontinuerlig og 1 kategorisk) ---> TwoGroups(To grupper) ---> Paired1(Paired samples) ---> Parametric1(Parametrisk) ---> Stud1(Student's t test for paired samples)
Paired1 ---> NParametric1(Ikke-parametrisk) ---> Wilcox1(Wilcoxon signed rank test)

TwoGroups ---> OS1(Uavhengige samples) ---> Parametric2(Parametrisk) & NParametric2(Ikke-parametrisk)
NParametric2 ---> MW1(Mann-Whitney U test)
Parametric2 ---> EPV1(Equal population variances) & UPV1(Unequal population variances)
EPV1 ---> Stud2(Students t-test for 2 independent samples)
UPV1 ---> Welch2(Welchs t-test for 2 independent samples)

1Q1C ---> TreGrupper(>2 grupper)
TreGrupper ---> OS(Uavhengige samples) & PS(Paired samples)
OS ---> NParametric3(Ikke-parametrisk) ---> KW(Kruskal-Wallis test)
OS ---> Parametric3(Parametrisk) ---> EPV2(Equal population variace) & UPV2(Unequal Population variance)
EPV2 ---> OWA(One-way ANOVA)
UPV2 ---> WA(Welch's ANOVA)
PS ---> PO(Parametrisk) ---> RA(Repeated measures ANOVA)
PS ---> IPO(Ikke-parametrisk) ---> FT(Friedman test)

TwoVar ---> TvåKvalitativa(2 kvalitative)
TvåKvalitativa ---> TyK(2 groups for each variable)
TyK ---> PS3(Paired samples) ---> TPS(Two paired samples) & 3PO(3 paired samples or more)
TPS ---> MT(McNemars test)
3PO ---> Coq(Cochran's Q test)
TyK ---> OS3(Uavhengige samples)
OS3 ---> ef(expected frequencies <5) ---> Fisch(Fischers exact test)
OS3 ---> ef2(expected frequencies >=5) ---> Chi(Chi-squared test of independence)
TvåKvalitativa ---> YT(Mer enn 2 grupper for minst 1 variabel) ---> Chi(Chi-squared test of independence)

One-sample t-test

Som navnet antyder, brukes denne testen hvis man har én gruppe som man vil gjøre en sammenligning for. Testen brukes hvis man vil undersøke om et gjennomsnitt skiller seg fra en hypotetisk verdi. Hvis man undersøker høyde i en skoleklasse og finner at gjennomsnittshøyden i klassen er 180 cm, kan man undersøke om dette gjennomsnittet skiller seg fra tallet 175 cm (som altså er en hypotetisk verdi).

I R brukes funksjonen t.test for å gjennomføre one-sample t-test. Vi skal nå undersøke om gjennomsnittsalderen for lungekreftpasienter i et klassisk R-datasett skiller seg fra en hypotetisk verdi:

## Installer pakke med data
install.packages(&amp;amp;amp;amp;amp;amp;quot;survival&amp;amp;amp;amp;amp;amp;quot;)
library(survival)

## Aktiver tabellen med pasientdata
data(lung)

## Se på tabellen med pasientdata
View(lung)

## Undersøk gjennomsnittsalderen
mean(lung$age)

## Test om gjennomsnittsalderen skiller seg fra den hypotetiske verdien 60.
t.test(lung$age, mu = 60)

Vi får en P-verdi på 0,0000642, noe som innebærer at gjennomsnittet for pasientene skiller seg fra 60. One-sample t-test egner seg for normalfordelte variabler på intervallskala.

One-sample median test

Denne testen tilsvarer testen ovenfor, men her er det medianen som undersøkes. I dette tilfellet trenger vi bare å anta at variabelen er på ordinalskala. I R brukes funksjonen wilcox.test for å gjennomføre one-sample median test. Eksempel følger:

## Test om medianen for alder skiller seg fra 60
wilcox.test(lung$age, mu = 60)

Binomisk test

Binomisk test brukes for kategoriske variabler som har to nivåer. Testen kan avgjøre om en andel som observeres i utvalget, skiller seg fra en hypotetisk andel. I R brukes funksjonen prop.test for å gjennomføre binomisk test. I eksemplet nedenfor skal vi undersøke om andelen kvinner i samme datasett som tidligere (lung) er lik 0,5 (dvs. om kvinner utgjør halvparten av alle pasientene).

## Ved hjelp av funksjonen ifelse lager vi en ny variabel som kalles kvinna. Denne variabelen settes til 1 hvis variabelen sex = 2 (kvinne), og ellers settes den til 0 (mann).

lung$kvinna &lt;- ifelse(lung$sex==2, 1, 0)

## Nå skal vi teste om andelen kvinner er 0.5 (dvs. halvparten er kvinner)

prop.test(sum(lung$kvinna), length(lung$kvinna), p = 0.5)

Chi-square goodness of fit

Chi-square goodness of fit er en utvidelse av den binomiske testen i den forstand at vi her kan teste en variabel med flere enn 2 kategorier. Vi kan altså teste om fordelingen av krefttype skiller seg fra en hypotetisk verdi. Anta at variabelen krefttype har følgende fire nivåer: lungekreft, tykktarmskreft, nyrekreft og leverkreft. Vår hypotese er at fordelingen mellom disse fire typene er jevn, slik at hver utgjør 25 %. Den forventede (expected) verdien for hver kategori er altså 25 % (0,25). For å teste dette brukes funksjonen chisq.test i R på følgende måte:

## I dette eksemplet kommer observasjonene fra tabellen data, og variabelen heter cancertyp.

## Vi skal teste om hver krefttype utgjør en like stor andel av all kreft. Det finnes fire krefttyper i databasen, dvs. hver type utgjør 25 % ifølge vår hypotese.

chisq.test(table(data$cancertyp), p = c(0.25, 0.25, 0.25, 0.25))

Independent samples t-test

Denne testen brukes for å sammenligne gjennomsnitt i to grupper som er uavhengige av hverandre. Uavhengige betyr at gruppene ikke kan påvirke hverandre. La oss ta to eksempler for å tydeliggjøre dette:

  1. Hvis et antall pasienter veies før og etter kirurgisk behandling for fedme, har vi to verdier som skal sammenlignes, nemlig vekten før og vekten etter behandling. I dette tilfellet er imidlertid vekten før og etter behandling avhengige av hverandre, siden det er de samme personene i begge fordelingene. I dette tilfellet brukes dependent samples t-test.
  2. Hvis vi vil sammenligne høyden til menn og kvinner ved Göteborgs universitet, har vi altså to gjennomsnitt som skal sammenlignes. Disse gjennomsnittene er imidlertid ikke avhengige av hverandre, og da brukes independent samples t-test.

I samme datasett som tidligere undersøker vi nå om menn og kvinner er like gamle.

t.test(lung$age ~ lung$sex)

P-verdien ble 0,06394, som er større enn 0,05, og derfor kan vi ikke med sikkerhet si at det er noen aldersforskjell. Vi gjør enda en test der vi sammenligner kalorier i kosten.

t.test(lung$meal.cal ~ lung$sex)

I dette tilfellet var P-verdien 0,01989, noe som indikerer at det er en statistisk signifikant forskjell i kalorier mellom menn og kvinner.

Wilcoxon-Mann-Whitney test

Denne testen brukes i samme situasjon som independent samples t-test, men forskjellen er at Wilcoxon-Mann-Whitney test ikke forutsetter at variabelen er normalfordelt. Derimot forutsetter denne testen at variabelen er på ordinalskala. For å sammenligne menns og kvinners alder på samme måte skriver man følgende i R:

wilcox.test(lung$meal.cal ~ lung$sex)

Chi-square test (kjikvadrattest, χ2-test)

Kjikvadrattest brukes for å undersøke to kategoriske variabler. Testen bygger på at man sammenligner observerte frekvenser (for hver variabels nivåer) med forventede frekvenser. Man tester hypotesen om at de observerte frekvensene er (mer eller mindre) ekvivalente med de forventede frekvensene. Anta for eksempel at vi undersøker om like mange menn og kvinner får hjerteinfarkt, ved å bruke variabelen kjønn, som er dikotom (mann eller kvinne), og hjerteinfarkt (ja eller nei). Hvis nullhypotesen er at andelen menn og kvinner som får hjerteinfarkt, er like stor, forventer vi å observere like mange menn og kvinner i begge nivåene for hjerteinfarkt.

Kjikvadrattesten kan illustreres med en tabell. Vi undersøker totalt 40 personer med hjerteinfarkt.

Kjønn O E (O-E)2 ((O-E)2) / E
Mann 32 20 144 144/20
Kvinne 8 20 144 144/20
Sum 40 40 288/20=14,4

Verdien av χ2 er her 14,4. For å teste om dette er statistisk signifikant, må vi slå opp verdien 14,4 med 1 frihetsgrad i en kjikvadrattabell. Antall frihetsgrader er antall nivåer for kjønnsvariabelen (=2) minus 1, dvs. 2–1, som blir 1. Tabellen viser den kritiske verdien for den aktuelle χ2 og det aktuelle antallet frihetsgrader; hvis χ2 er større enn den kritiske verdien, forkastes nullhypotesen. Merk at all statistisk programvare gjør disse beregningene automatisk og returnerer en P-verdi for nullhypotesen. Sist, men ikke minst, skal det nevnes at kjikvadrattesten forutsetter at det er minst 5 forventede observasjoner i hver celle i krysstabellen ovenfor (Tabell 1). Hvis antallet personer i en celle er <5, bør Fisher's exact test brukes i stedet.

Merk at variablene som inngår i en kjikvadrattest, kan ha flere enn to nivåer, og det trenger ikke være like mange nivåer i de to variablene.

I følgende eksempel undersøker vi om like mange menn og kvinner døde i lungekreftstudien:

chisq.test(table(lung$sex, lung$status))

Fisher's exact test

Fisher's exact test er ekvivalent med kjikvadrattest, men brukes i stedet når en celle inneholder færre enn 5 forventede observasjoner. Fisher's exact test kan brukes uansett hvor få forventede observasjoner det er. Tilsvarende kode i R blir:

fisher.test(table(lung$sex, lung$status))

One-way ANOVA

One-way ANOVA (enveis variansanalyse)

One-way ANOVA brukes når man har én kategorisk uavhengig variabel (med to eller flere nivåer) og én kontinuerlig, normalfordelt avhengig variabel (på intervallskala). Her sammenligner man altså om fordelingen av den kontinuerlige variabelen er den samme for de ulike nivåene av den kategoriske variabelen. For eksempel kunne vi undersøke om kroppsvekten er den samme for de ulike etniske gruppene på en videregående skole.

I R skal vi bruke datasettet "bladder", som også finnes i survival-pakken. Vi laster inn "bladder" med kommandoen "data(bladder)". Da lastes faktisk tre varianter av "bladder" inn, og av disse skal vi bruke "bladder1". I dette datasettet skal vi undersøke om initial tumorstørrelse varierer i forhold til det endelige utfallet. Tumorstørrelsen beskrives med variabelen size, som er en kontinuerlig variabel. Utfallet beskrives med variabelen status, der 0 = overlevde, 1 = tilbakefall av kreft, 2 = død av kreft og 3 = død av annen årsak. Tumorstørrelse skal altså sammenlignes i disse fire gruppene.

data(bladder)
summary(aov(bladder1$size ~ bladder1$status))

P-verdien er 0,249, noe som innebærer at vi ikke kan forkaste nullhypotesen (som sier at det ikke er noen forskjell i initial tumorstørrelse). Tumorene er altså like store ved studiens start.

Kruskal Wallis test

Kruskal Wallis test brukes når man har én uavhengig variabel med to eller flere nivåer og én avhengig variabel på ordinalskala. Testen ligner enveis ANOVA, men er ikke-parametrisk, noe som innebærer at den avhengige variabelen ikke trenger å være normalfordelt på intervallskala.

kruskal.test(data$beroende, data$oberoende)

Paired t-test (t-test for avhengige målinger)

Hvis man vil sammenligne to verdier som er avhengige av hverandre, kan man bruke paired t-test. Dette forutsetter at verdien som skal sammenlignes, er normalfordelt. Verdiene er som regel avhengige av hverandre hvis de er hentet fra samme individ, noe som er tilfellet ved måling på to tidspunkter. Det kan for eksempel være måling av kroppsvekt før og etter en behandling for overvekt.

Følgende R-kode er bare ment å illustrere funksjonen i R. Dataene som brukes, er egentlig ikke avhengige av hverandre.

## Variabelen kroppsvikt er kontinuerlig
## Variabelen mätningens_tidpunkt er en dikotom variabel som er "1" hvis det er måleverdien før behandling, og "2" hvis det er verdien etter behandling
t.test(data$kroppsvikt, data$mätningens_tidpunkt, paired = TRUE)

Wilcoxon signed rank sum test

Dette er det ikke-parametriske alternativet til paired t-test og brukes altså når man ikke kan forutsette at den avhengige variabelen er normalfordelt på intervallskala. Testen forutsetter imidlertid at variabelen i det minste er ordinal.

wilcox.test(data$beroende_variabel, data$oberoende_variabel, paired = TRUE)

McNemar test

McNemars test brukes når man undersøker en avhengig kategorisk variabel i to grupper som er relaterte. Testen er altså analog med paired t-test, men den avhengige variabelen er kategorisk og har to nivåer i dette tilfellet. Du kan for eksempel avgjøre om andelen pasienter som hadde depresjon (ja/nei) før og etter behandling med atferdsterapi, er forskjellig.

Se eksempel i R ved å skrive: ?mcnemar.test i konsollen.

One-way repeated measures ANOVA

Denne testen tilsvarer enveis ANOVA (one-way ANOVA), men i dette tilfellet går det fint om samme individ bidrar med mer enn 1 måling (dvs. det forekommer gjentatte målinger for samme individ(er)). Den uavhengige variabelen er altså kategorisk med to eller flere nivåer. Den avhengige variabelen er normalfordelt på intervallskala. Vi anbefaler at man i stedet for one-way repeated measures anova bruker mixed models (random effects models), som er mer effektive.

Korrelasjon

Dette er diskutert i kapitlet om korrelasjon og regresjon.

Enkel lineær og multippel regresjon

Dette er diskutert i kapitlet om enkel lineær regresjon og multippel (lineær) regresjon.

Enkel logistisk regresjon og multippel logistisk regresjon

Dette er diskutert i kapitlet om logistisk regresjon.

Analysis of covariance (ANCOVA)

ANCOVA er ekvivalent med ANOVA, men i dette tilfellet inngår det, i tillegg til en kategorisk prediktor, også en kontinuerlig prediktor. ANCOVA kan derfor erstattes med multippel regresjon.

Referanser

Det ovenstående er i stor grad et referat av IDREs veiledning for valg av test.