Teori Respons Butir (Item Response Theory-IRT) dikenal juga sebagai Teori Ciri Laten (Latent Trait Theory-LTT) atau lengkungan karakteristik butir (Item Characteristic Curve-ICC) atau Fungsi Karakteristik Butir (Items Characteristic Function-ICF) (Dali S.Naga, 1992: 160)
Salah satu model dalam IRT adalah Model Logistik Satu Parameter (1PL) dengan parameternya yaitu tingkat kesulitan butir (bi). Model 1PL yang paling populer digunakan adalah Rasch model. Rasch model muncul dipoulerkan oleh Dr. Georg Rasch, matematikawan dari Denmark.
Dari hasil analisis Rasch didapatkan kesimpulan bahwa “seseorang yang memiliki abilitas lebih tinggi akan memiliki probabilitas yang lebih besar untuk menjawab soal dengan benar. Hal yang sama juga berlaku untuk butir. Butir yang memiliki tingkat kesulitan lebih tinggi memiliki probabilitas untuk menyelesaikan butir tersebut lebih rendah daripada butir yang lain.” (Rasch, 1960 dalam Bond dan Fox, 2015).
Misalkan ada soal ujian matematika yang ingin kita uji, butir-butir soal yang mana yang memiliki tingkat kesulitan terendah hingga tertinggi.
Data ini terdiri dari 3 soal yang sudah diskor yaitu soal tambah-tambahan (soal_t), soal perkalian (soal_x) dan soal pembagian (soal_b)
rm(list = ls())
Aktifkan dulu library “ltm”
library("ltm")
## Loading required package: MASS
## Loading required package: msm
## Loading required package: polycor
Panggil file yang tersedia
data<-read.csv("tesmat.csv",header=TRUE, sep=";")
Coba kita cek jumlah responden dan variabelnya
dim(data)
## [1] 77 4
head(data)
## nama soal_t soal_x soal_b
## 1 Puti 1 0 0
## 2 Aghni 1 1 0
## 3 Fitri 1 0 0
## 4 Ivon 0 0 0
## 5 Renissa 1 1 0
## 6 Shahnaz 1 1 1
Oh berarti ada 77 responden dan 4 variabel.
Nama-nama variabelnya nama soal, soal_t, soal_x, soal_b
Selanjutnya mari kita ambil data yang hanya diperlukan untuk melakukan uji Rasch model yaitu menghilangkan variabel nama soal, caranya adalah sebagai berikut:
databersih<-data[2:4]
head(databersih)
## soal_t soal_x soal_b
## 1 1 0 0
## 2 1 1 0
## 3 1 0 0
## 4 0 0 0
## 5 1 1 0
## 6 1 1 1
Gunakan instruksi dibawah ini
model<-rasch(databersih, IRT.param = TRUE)
model
##
## Call:
## rasch(data = databersih, IRT.param = TRUE)
##
## Coefficients:
## Dffclt.soal_t Dffclt.soal_x Dffclt.soal_b Dscrmn
## -1.986 -0.715 0.195 2.144
##
## Log.Lik: -108.733
Tingkat kesulitan soal bisa kita ibaratkan sama seperti nilai z yang biasa digunakan pada perhitungan korva normal.
Biasanya areanya berada pada nilai -2 s/d +2.
Berdasarkan hasil perhitungan yang telah dilakukan ternyata soal_t memiliki tingkat kesulitan paling rendah (-1.986) dibandingkan soal_x (-0.715). Berarti bisa disimpulkan berdasarkan data-data hasil ujian tersebut, peserta tes lebih banyak yang benar untuk soal tambah-tambahan (soal_t) daripada soal-soal perkalian (soal_x)
GoF.rasch(model)
##
## Bootstrap Goodness-of-Fit using Pearson chi-squared
##
## Call:
## rasch(data = databersih, IRT.param = TRUE)
##
## Tobs: 3.85
## # data-sets: 50
## p-value: 0.14
Lihat p-valuenya, ternyata nilai p-value = 0.2 lebih besar dari standar (0,05) berarti model tersebut sudah cukup baik (good fit of model)
coef(model,prob=TRUE, order=TRUE)
## Dffclt Dscrmn P(x=1|z=0)
## soal_t -1.9855937 2.143959 0.9860335
## soal_x -0.7146573 2.143959 0.8223274
## soal_b 0.1945575 2.143959 0.3972053
Bila item difficulty = 0 berarti tingkat kesulitan butir rata-rata pada tes tersebut. Bila item difficulty > 0 berarti tingkat kesulitan butir berada diatas kemampuan rata-rata.
Dari hasil diatas ternyata soal_t dan soal_x masih dianggap soal-soal yang mudah atau dibawah rata-rata karena nilainya masih dibawah angka 0.
Dffclt Dscrmn P(x=1|z=0)
soal_t -1.9855937 2.143959 0.9860335 soal_x -0.7146573 2.143959 0.8223274 soal_b 0.1945575 2.143959 0.3972053
plot(model,type="ICC")
Pada grafik diatas ada sumbu yaitu sumbu horisontal (sumbu x) yang merupakan nilai tingkat kemampuan (Ability) dan sumbu vertikal (sumbu Y) yang merupakan peluang mengerjakan butir soal tersebut dengan benar (Probability).
semakin ke kanan tingkat kesulitan soal tersebut semakin tinggi (Ability).
Untuk melihat tingkat kesulitan item kita bayangkan ada garis pada Probability 50% pada slope tersebut.
Apabila kita menunjuk pada sumbu Y (probability) di angka 0,5, maka akan bersinggungan dengan slope warna hitam (soal_t) kemudian ditarik ke bawah maka akan jatuh di nilai Ability = -1,98
Untuk melihat satu slope saja gunakan perintah berikut ini
plot(model,type="ICC", items = c(1))
Dengan melakukan Plot Item Information curve maka akan menampilkan area Ability.
plot(model,type="IIC") # IIC untuk semua item
Bila Anda lihat soal_x memiliki tingkat kesulitan sekitar -0,71 berada dibawah rata-rata.
Bila ingin melihat item-item tertentu maka dituliskan seperti ini..
plot(model,type="IIC", items=c(1,3)) # item individual
Bila ingin melihat keseluruhan pengukuran item dalam bentuk kurva gunakan perintah ini..
plot(model,type="IIC", items=0) # area keseluruhan pengukuran item
Berapa persen tes ini bisa mengukur latent ability?
Caranya adalah sebagai berikut:
information(model,c(-4,4))
##
## Call:
## rasch(data = databersih, IRT.param = TRUE)
##
## Total Information = 6.43
## Information in (-4, 4) = 6.4 (99.52%)
## Based on all the items
Dari hasil diatas ternyata tes yang terdiri dari 3 item ini secara efektif menghasilkan 99,52% untuk mengukur latent ability.
Semoga bermanfaat.