Konfidensinterval for en stikprøve

Dette kapitel tager udgangspunkt i samme datasæt som introduktionen, og er i øvrigt en kort repetition af pensum fra din tidligere statistikundervisning.

myFrame <- dget("https://statepi.statnoter.dk/data/myDataset.robj") #indlæs filen myDataset.robj, og gem data i dataframe'en "myFrame"
head(myFrame)
     id køn alder  bmi livvidde P-glucose(faste)
1 76891   2    20 36.1    105.0            4.496
2 79112   2    22 36.4    105.8            5.107
3 82414   1    68 28.6    104.2               NA
4 82116   2    18 46.7    128.4            5.384
5 74381   2    25 23.7     82.1            4.774
6 75714   1    54 23.9     88.8            8.660

Ofte vil man være interesserede i at beregne diverse middelværdier, vi kan f.eks. hurtigt beregne middelalder for mænd og kvinder:

#opret først to delsæt. Et med mænd og et med kvinder
male <- subset(myFrame, køn == 1)
female <- subset(myFrame, køn == 2)
#beregn dernæst middelalder for hvert delsæt
mean_male <- mean(male$alder)
mean_female <- mean(female$alder)
cat("Middelalder mænd:", round(mean_male, 1), "\r\n") #hvad gør funktionen "round"?
Middelalder mænd: 40.9 
cat("Middelalder kvinder:", round(mean_female, 1))
Middelalder kvinder: 39.7

Middelalderen for mænd er altså 40,9 år, men det er jo middelalderen for mændene i stikprøven. Hvad fortæller det os så om middelalderen i den bagvedliggende population (målpopulationen)? Denne er naturligvis ikke 40,9 år, men hvad er den så? Kan den være 42 år, kan den være 45 år, eller kan den være 50 år?

Svaret på dette spørgsmål får man ved at beregne et konfidensinterval (f.eks. et 95%-konfidensinterval), som er et interval der med en given sandsynlighed (f.eks. 95%) indeholder målpopulationens sande middelværdi. Konfidensintervallet kan beregnes som gennemgået i http://statnoter.dk kapitel 5. I R er det heldigvis ganske nemt, idet konfidensintervallet automatisk beregnes, hvis man beder R lave en t-test. I dette tilfælde er vi egentlig ikke interesserede i t-testen, men det er den hurtigste genvej til konfidensintervallet, og laves som vist her:

t.test(male$alder, conf.level = 0.95)

    One Sample t-test

data:  male$alder
t = 19.365, df = 91, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
 36.66765 45.04974
sample estimates:
mean of x 
  40.8587 

I resultatet herover ses at målpopulationens middelalder må forventes at ligge i intervallet [36,7 ; 45,1] år. Bemærk den meget store t-værdi, (og tilsvarende lille p-værdi). Det er test-størrelserne for den, helt urealistiske, nulhypotese at middelalderen er lig med nul.

På næste side gennemgås hvordan man kan beregne et konfidensinterval for forskellen i middelalder mellem mænd og kvinder.

Hvis vi ønsker blot at få fat i konfidensintervallet, kan det gøres som vist her:

#lav først t-testen, men gem resultatet i en variabel
t <- t.test(male$alder, conf.level = 0.95)
#Nu kan vi få vist konfidensintervallet:
ci <- t$conf.int
#afrund
ci <- round(ci, 2)
cat("95%-konfidensinterval", ci)
95%-konfidensinterval 36.67 45.05
#Og hvis vi bare vil have grænserne hver for sig:
cat("Nedre grænse", ci[1])
Nedre grænse 36.67
cat("Øvre grænse", ci[2])
Øvre grænse 45.05