Intercepts à effets aléatoires
Les modèles linéaires dans R estiment des paramètres considérés comme fixes ou non aléatoires, appelés effets fixes. À l’inverse, les paramètres à effets aléatoires supposent que les données partagent une même distribution d’erreur et peuvent produire des estimations différentes en présence de peu de données ou de valeurs aberrantes. Les modèles combinant effets fixes et effets aléatoires sont des modèles à effets mixtes, ou régressions linéaires à effets mixtes.
Le package lme4 ajuste des modèles à effets mixtes (qui incluent à la fois des effets fixes et aléatoires) avec lmer(), en utilisant une formule similaire à lm(). Cependant, les intercepts à effets aléatoires utilisent une syntaxe spéciale :
lmer(y ~ x + (1 | random-effect), data = my_data)
La fonction lmer() exige que le modèle inclue au moins un effet aléatoire, sinon elle renvoie une erreur. Ici, vous allez ajuster un lm() et un lmer(), puis comparer graphiquement les modèles ajustés en utilisant un sous-ensemble des données. Nous fournissons ce code en raison du traitement de données avancé nécessaire, car les effets aléatoires sont généralement peu tracés (et ggplot2 ne propose pas d’options de tracé très adaptées aux modèles à effets mixtes). Dans ce graphique, observez comment les lignes en pointillé provenant des pentes à effets aléatoires se comparent aux lignes pleines issues des pentes à effets fixes.
Remarque : broom.mixed est nécessaire, car le package broom ne prend pas en charge lme4.
Cet exercice fait partie du cours
Modèles hiérarchiques et à effets mixtes en R
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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")