Intercepts met random effects
Lineaire modellen in R schatten parameters die als vast of niet-willekeurig worden beschouwd en fixed effects worden genoemd. Daartegenover staan parameters met random effects: die gaan ervan uit dat de data een gemeenschappelijke foutsverdeling delen en kunnen andere schattingen opleveren bij kleine hoeveelheden data of bij uitbijters. Modellen met zowel fixed als random effects heten mixed-effect-modellen of lineaire mixed-effect-regressies.
Het lme4-pakket past mixed-effect-modellen (modellen met zowel fixed als random effects) aan met lmer(), dat een formule gebruikt die lijkt op lm(). Maar voor intercepts met random effects is er speciale syntax:
lmer(y ~ x + (1 | random-effect), data = my_data)
De functie lmer() vereist dat het model een random effect bevat; anders geeft het model een foutmelding. Hier pas je zowel een lm() als een lmer() toe en vergelijk je de gefitte modellen vervolgens grafisch met een subset van de data. We geven deze code mee vanwege de geavanceerde datawrangling die nodig is, omdat random effects meestal niet worden geplot (ggplot2 heeft ook geen mooie plotopties voor mixed-effect-modellen). Let in deze plot op hoe de gestreepte lijnen van de random-effect-hellingen zich verhouden tot de doorgetrokken lijnen van de fixed-effect-hellingen.
Let op: broom.mixed is nodig omdat het broom-pakket lme4 niet ondersteunt.
Deze oefening maakt deel uit van de cursus
Hiërarchische en Mixed-Effects-modellen in R
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Build a liner model including class as fixed-effect model
lm_out <- ___
# Build a mixed-effect model including class id as a random-effect
lmer_out <- lmer(___ ~ ___ + (1 | ___), data = ___)
# Extract out the slope estimate for mathkind
tidy(lm_out) %>%
filter(term == "mathkind")
tidy(lmer_out) %>%
filter(term == "mathkind")