LoslegenKostenlos loslegen

Random-Effect-Intercepts

Lineare Modelle in R schätzen Parameter, die als „fest“ bzw. nicht zufällig gelten und als Fixed Effects bezeichnet werden. Im Gegensatz dazu gehen Random-Effect-Parameter davon aus, dass die Daten eine gemeinsame Fehlerverteilung teilen, und können bei kleinen Datenmengen oder Ausreißern zu anderen Schätzungen führen. Modelle mit sowohl Fixed als auch Random Effects sind Mixed-Effect-Modelle bzw. lineare gemischte Regressionsmodelle.

Das Paket lme4 passt Mixed-Effect-Modelle (Modelle mit Fixed und Random Effects) mit lmer() an, das eine Formel ähnlich wie lm() verwendet. Allerdings nutzen Random-Effect-Intercepts eine spezielle Syntax:

lmer(y ~ x + (1 | random-effect), data = my_data)

Die Funktion lmer() erfordert, dass das Modell einen Random Effect enthält, andernfalls gibt das Modell einen Fehler aus. Hier passt du ein lm() und ein lmer() an und vergleichst anschließend die angepassten Modelle grafisch anhand eines Datenausschnitts. Wir stellen diesen Code bereit, weil fortgeschrittenes Data-Wrangling nötig ist, da Random Effects üblicherweise nicht geplottet werden (ggplot2 bietet auch keine schönen Plot-Optionen für Mixed-Effect-Modelle). In diesem Plot siehst du, wie die gestrichelten Linien der Random-Effect-Slopes im Vergleich zu den durchgezogenen Linien der Fixed-Effect-Slopes verlaufen.

Hinweis: broom.mixed wird benötigt, da das Paket broom lme4 nicht unterstützt.

Diese Übung ist Teil des Kurses

Hierarchische und gemischte Effekte-Modelle in R

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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")
Code bearbeiten und ausführen