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:
For det første er dette en af de få funktioner der skrives med stort begyndelsesbogstav.
For det andet angives prediktoren som "sugar", hvor
vi tidligere skrev `“sugar1”`.
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).