Denne side er ikke en del af pensum, men er til dem, som gerne vil vide lidt mere om beregning af konfidensintervaller i forbindelse med lineære normale modeller.

På side 4.3 så vi hvordan man kan beregne et konfidensinterval for en forskel mellem to middelværdier, og på side 4.4 så vi hvordan man kan lave et plot som viser konfidensintervallet for middelværdien af hver stikprøve for sig. Hvis man, udover at kunne beregne konfidensintervallet for middelforskellen, også ønsker at kunne lave en beregning af de konfidensintervallet som illustreres i effektplottet, så vises det her hvordan man kan gøre det.

Bemærk at beregningerne foretages vha. udvidelsespakken “effects”, som altså først skal installeres, med install.packages("effects").

Vi bruger igen eksemplet med BMI og brug af sukker i kaffen.

#vi skal lige have indlæst datasættet igen, og lavet beregningen af den lineære model
df_sugar <- dget("https://statepi.statnoter.dk/data/sugar.robj")
model_sugar <- lm(formula = BMI ~ sugar, data = df_sugar)

De beregninger der ligger bag effektplottet kan nu laves med følgende funktion:

library(effects)
Loading required package: carData
lattice theme set by effectsTheme()
See ?effectsTheme for details.
Effect("sugar", mod = model_sugar)

 sugar effect
sugar
       0        1 
26.87175 25.64450 

Der er nogle detaljer man skal bemærke her:

Umiddelbart har vi ikke fået så meget ud af Effect. Den viser blot de to kategorier og deres tilhørende middelværdi, og det er ikke så interessant. Men nu gemmer vi lige resultatet i en variabel, og så kigger vi lidt nærmere på hvad vi egentlig har fået:

eff <- Effect("sugar", mod = model_sugar)
#Nu har vi to muligheder for at se konfidensgrænserne:
summary(eff)

 sugar effect
sugar
       0        1 
26.87175 25.64450 

 Lower 95 Percent Confidence Limits
sugar
       0        1 
26.54670 25.18481 

 Upper 95 Percent Confidence Limits
sugar
       0        1 
27.19680 26.10419 
#eller
as.data.frame(eff)
  sugar      fit        se    lower    upper
1     0 26.87175 0.1655106 26.54670 27.19680
2     1 25.64450 0.2340673 25.18481 26.10419

I ovenstående kan vi aflæse øvre hhv. nedre grænse i konfidensintervallerne for de to grupper (sugar=0 hhv. sugar=1). Ved at bruge as.data.frame() får vi desuden den såkaldte standardfejl (SEM).