Indlæs igen datasættet fra forrige side, og split datasættet op i mænd og kvinder:
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
male <- subset(myFrame, køn == 1)
female <- subset(myFrame, køn == 2)
På forrige side blev middelværdierne beregnet til:
mean_male <- round(mean(male$alder), 1) #beregn middelværdi
cat("Middel mænd = ", mean_male , "\n") #udskriv resultatet
Middel mænd = 40.9
mean_female <- round(mean(female$alder), 1) #gentag for kvinderne
cat("Middel kvinder = ", mean_female)
Middel kvinder = 39.7
Og dermed er middelforskellen:
#Træk de to middelværdier fra hinanden:
cat("Middelforskel = ", mean_male - mean_female)
Middelforskel = 1.2
Dette er middelforskellen for stikprøven, men vi er jo typisk interesserede i hele målpopulationen. Så hvad kan vi sige om målpopulationens middelforskel? Igen kan det gøres ved at beregne et konfidensinterval, og igen er det nemmest at gøre i R, ved at lave en t-test - i dette tilfælde skal det så være en uparret t-test.
Det gøres som vist her:
t.test(x = male$alder, y = female$alder, paired = FALSE)
Welch Two Sample t-test
data: male$alder and female$alder
t = 0.41218, df = 190.58, p-value = 0.6807
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-4.407308 6.735810
sample estimates:
mean of x mean of y
40.85870 39.69444
Konfidensintervallet for middelforskellen er altså [-4,4 ; 6,7] år. Specielt indeholder dette konfidensinterval 0, hvilket betyder at man altså ikke kan påvise en statistisk signifikant forskel i middelalder mellem mænd og kvinder i populationen (men derfor kan der godt være en forskel - middelforskellen kan jo også være -4 år eller +6 år).
Ovenstående beregning er lidt besværlig, da den først kræver at man
opdeler sit datasæt i mænd og kvinder. Funktionen t.test
har imidlertid en anden form, som er endnu hurtigere at skrive. Bemærk
at de data vi ønsker at opdele efter findes i kolonnen “køn”, mens de
data vi vil have beregnet middelforskel på findes i kolonnen “alder”.
Konfidensintervallet kan nu beregnes som vist herunder, med udgangspunkt
direkte i det oprindelige datasæt (vi vender senere tilbage til
betydningen af notationen):
#beregning af middelforskel og konfidensinterval, uden at vi først er nødt til at opdele data
t.test(formula = alder ~ køn, data = myFrame)
Welch Two Sample t-test
data: alder by køn
t = 0.41218, df = 190.58, p-value = 0.6807
alternative hypothesis: true difference in means between group 1 and group 2 is not equal to 0
95 percent confidence interval:
-4.407308 6.735810
sample estimates:
mean in group 1 mean in group 2
40.85870 39.69444
Bemærk at vi her kommer direkte fra vores datasæt, med både mænd og kvinder, til et konfidensinterval for middeldifferencen.