Random Slope

Membuat model slope acak

Model sebelumnya mengasumsikan bahwa pengaruh ESCS terhadap capaian matematika adalah sama di semua sekolah. Bagaimana jika tidak demikian?, bagaimana jika bertambahnya ESCS meningkatkan capaian matematika di beberapa sekolah dibandingkan sekolah lain? Kita dapat mengestimasi koefisien baru untuk mengetahui bagaimana variasi sekolah dalam hal pengaruh ESCS terhadap capaian matematika dengan membuat model slope acak.

Langkah-langkah dalam membuat model slope acak hampir sama dengan membuat model intersep acak. Perbedaannya terdapat pada penambahan prediktor ESCS pada..

m2 <- lmer(MATH ~ 1 + ESCS + (1 + ESCS | CNTSCHID), data = pisa)

See the result

summary(m2)

Finding ICC

tab_model(m2)

Making prediction plot

pisa$m2 <- predict(m2)

pisa %>% 
  ggplot(aes(ESCS, m1, color = CNTSCHID, group = CNTSCHID)) + 
  geom_smooth(se = F, method = lm) +
  theme_bw() +
  labs(x = "ESCS", 
       y = "Matematika", 
       color = "CNTSCHID")

QQ-Plot

qqmath(ranef(m2, condVar = TRUE))

Intercept vs Slope

Untuk lebih memahami di mana posisi setiap sekolah dalam efek acak ini, kita bisa membuat grafik intersep vs slope untuk setiap sekolah dengan perintah sebagai berikut.

koef_m2 <- coef(m2)

# print random effects and best line
koef_m2$CNTSCHID %>%
  mutate(CNTSCHID = rownames(koef_m2$CNTSCHID))  %>% 
  ggplot(aes(ESCS, `(Intercept)`, label = CNTSCHID)) + 
  geom_point() + 
  geom_smooth(se = F, method = lm) +
  geom_label(nudge_y = 0.15, alpha = 0.5) +
  theme_bw() +
  labs(x = "Slope", y = "Intersep")