library(tidyverse)Introduction
Loading package
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.
Preparing data
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.
pisa <- read.csv("../dataset/pisa_idn_sample.csv")Checking data structure
Kemudian, untuk melihat struktur data kita bisa menjalankan perintah glimpse(pisa) seperti berikut.
glimpse(pisa)Data exploration
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().
count(pisa, CNTSCHID)Harus dipastikan sampel data yang akan dianalisis memenuhi syarat agar bisa dibuat model multilevel.
Looking data variance
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 analisis 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.
pisa %>%
group_by(CNTSCHID) %>%
summarise(mean = mean(MATH, na.rm = T),
SD = sd(MATH, na.rm = T),
miss = mean(is.na(MATH))) %>%
mutate_if(is.numeric, ~round(., 2)) %>%
print(n = 50)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.
Find density
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.
pisa %>%
ggplot(aes(MATH)) +
geom_density() +
facet_wrap(~CNTSCHID)pisa %>%
ggplot(aes(ESCS)) +
geom_density() +
facet_wrap(~CNTSCHID)Density plot
pisa %>%
ggplot(aes(MATH)) +
geom_density() +
facet_wrap(~CNTSCHID)