Regression & Null Model

Estimate null model

Model pertama yang dibuat dalam pemodelan multilevel adalah model nul, yaitu model sederhana tanpa prediktor. Dengan membuat model nul kita akan mengetahui berapa banyak variasi yang kita miliki di setiap tingkat. Langkah pertama yang harus kita lakukan adalah menjalankan package lme4, lalu membuat model menggunakan fungsi lmer().

library(lme4)

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

Null model result

Untuk melihat hasil model, kita bisa menjalankan fungsi summary()

summary(m0)

Find ICC

Kemudian kita bisa mencari skor ICC secara manual dengan menghitung proporsi variasi sekolah dibagi penjumlahan variasi sekolah dan variasi individu. Selain menghitung secara manal, kita bisa mengetahui skor ICC menggunakan fungsi tab_model() dari package sjPlot.

library(sjPlot)

tab_model(m0)

Understanding ICC with Plot

Selanjutnya, untuk mempermudah memahami makna variasi tingkat sekolah dan tingkat individu, kita dapat melihat grafik di semua sekolah. Variasi tingkat sekolah berasal dari seberapa beda garis (ESCS) antar sekolah. Jika variasinya rendah, maka garisnya akan sangat mirip. Sebaliknya jika variasinya besar, maka garis-garis tersebut akan sangat berbeda. Variasi tingkat individu adalah ringkasan perbedaan antara individu (titik) dan sekolah (garis).

Langkah pertama yang kita lakukan untuk membuat grafik model untuk semua sekolah adalah memprediksi skor berdasarkan model yang kita buat menggunakan fungsi predict() dan menyimpannya sebagai variabel baru pada data kita.

pisa$m0 <- predict(m0)

Null model plot

Kemudian membuat grafik yang menunjukkan garis rata-rata linier untuk setiap sekolah menggunakan ggplot()serta fungsi geom_smooth(se = F, method = lm), untuk mengestimasi tren linier tanpa interval kepercayaan.

pisa %>% 
  ggplot(aes(ESCS, m0, color = CNTSCHID, group = CNTSCHID)) + 
  geom_smooth(se = F, method = lm) +
  theme_bw() +
  theme(axis.text.x = element_blank(),
        axis.ticks = element_blank()) +
  labs(x = "", y = "MAtematika", color = "CNTSCHID")

Plotting with qqmath

Selain menggunakan ggplot(), kita bisa memvisualisasikan efek acak tersebut menggunakan dotplot dari package lattice menggunakan fungsi qqmath() dengan efek acak dari model menggunakan fungsi ranef().

library(lattice)
qqmath(ranef(m0, condVar = TRUE))

Dalam grafik tersebut, setiap titik mewakili sebuah sekolah dan garis mewakili interval kepercayaan. Angka 0 pada sumbu \(x\) adalah intersep.