隨機效果截距
R 的線性模型會估計被視為「固定」或非隨機的參數,稱為「固定效果」。 相較之下,「隨機效果」參數假設資料共享同一個誤差分佈,當資料量很小或有離群值時,可能產生不同的估計。 同時包含固定效果與隨機效果的模型稱為「混合效果模型」或「線性混合效果迴歸」。
lme4 套件可用 lmer() 擬合混合效果模型(同時含固定與隨機效果),其語法與 lm() 類似。不過,隨機效果的截距要用特殊語法:
lmer(y ~ x + (1 | random-effect), data = my_data)
lmer() 函式「必須」在模型中包含一個隨機效果,否則會回傳錯誤。在這裡,你會各擬合一個 lm() 與一個 lmer(),接著用資料的子集將擬合結果視覺化比較。我們提供了這段程式碼,因為需要進行較進階的資料整理;此外,隨機效果通常不直接繪圖(ggplot2 也沒有針對混合效果模型的理想繪圖選項)。在圖上,請留意隨機效果斜率的「虛線」與固定效果斜率的「實線」如何比較。
注意:需要 broom.mixed,因為 broom 套件不支援 lme4。
本練習屬於課程
R 的階層式與混合效果模型
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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")