Hal pertama yang harus dilakukan ketika akan melakukan pemodelan multilevel adalah menyiapkan data. Sebelum memanggil data, kita perlu menjalankan package tidyverse untuk manajemen dan membersihkan data yang akan dianalisis.
Selanjutnya adalah memanggil data yang akan digunakan. Dalam hal ini data yang akan digunakan adalah data sampel PISA 2022 dengan nama file pisa_idn_sample.csv dan akan disimpan dengan nama pisa. Karena file berformat .csv maka kita menggunakan fungsi read.csv() untuk memanggil data.
Kemudian, untuk melihat struktur data kita bisa menjalankan perintah glimpse(pisa) seperti berikut.
Setelah mengetahui struktur data yang akan dianalisis, langkah selanjutnya adalah mengeksplorasi data. Pertama, kita perlu mengetahui seberapa besar sampel data kita dengan menjalankan fungsi count().
Harus dipastikan sampel data yang akan dianalisis memenuhi syarat agar bisa dibuat model multilevel.
Kemudian, sebelum membuat pemodelan multilevel, kita harus mengetahui variasi capaian matematika di tingkat sekolah dengan melakukan analisis statistik deskriptif untuk mencari rata-rata, standar deviasi, dan mencari missing value/NA. Fungsi yang digunakan dalam aanalisis deskriptif tersebut adalah sebagai berikut. - group_by() untuk mengelompokkan data berdasarkan id sekolah atau CNTSCHID. - summarise() untuk membuat ringkasan statistik (mean, sd, dan mencari missing value) - mutate_if() untuk membulatkan semua variabel numerik menjadi 2 titik desimal. - print() untuk mencetak semua baris.
Pemodelan multilevel bisa digunakan apabila rata-rata capaian matematika dan variansinya cukup berbeda di setiap sekolah. Selain itu, apabila sudah tidak ada missing value, maka kita bisa melanjutkan analisis.
Selanjutnya, kita dapat memeriksa distribusi sekolah untuk variabel yang menjadi perhatian, dalam hal ini adalah ESCS dan MATH menggunakan ggplot() dan geom_density() seperti berikut.
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().
Untuk melihat hasil model, kita bisa menjalankan fungsi summary()
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.
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.
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.
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().
Dalam grafik tersebut, setiap titik mewakili sebuah sekolah dan garis mewakili interval kepercayaan. Angka 0 pada sumbu \(x\) adalah intersep.
Jika sebelumnya kita telah membuat model nul tanpa prediktor, dalam model intersep acak kita akan memasukkan prediktor. Misanya kita ingin mengetahui hubungan antara ESCS terhadap capaian matematika, kita dapat dengan mudah membuat model tersebut dengan langkah yang sama seperti ketika kita membuat model nul.
melihat hasil:
mencari ICC:
membuat plot prediksi:
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..
melihat hasil:
mencari ICC:
membuat plot prediksi:
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.