Oleh : Purwoko Haryadi Santoso
Prodi : Penelitian dan Evaluasi Pendidikan
Mata kuliah : Teori Tes
dir = "D:/DOCUMENTS/Kuliah Strata-3/2. Kuliah Semester 1/7. Teori Tes (Kam, 15.35)/analisis IRT politomus"
setwd(dir)
Terdapat 6 library yang akan digunakan dalam pekerjaan ini. Urutannya mewakili daftar pekerjaan yang akan dilaksanakan yaitu deskripsi data, analisis EFA, analisis CFA, estimasi reliabilitas, diakhiri melalui pemodelan IRT dengan graded response model (GRM).
library(psych)
library(corrplot)
corrplot 0.92 loaded
library(sirt)
- sirt 3.11-21 (2021-12-09 11:21:10)
library(lavaan)
This is lavaan 0.6-10
lavaan is FREE software! Please report any bugs.
Attaching package: ‘lavaan’
The following object is masked from ‘package:psych’:
cor2cov
library(semPlot)
Registered S3 method overwritten by 'htmlwidgets':
method from
print.htmlwidget tools:rstudio
Registered S3 method overwritten by 'data.table':
method from
print.data.table
library(mirt)
Loading required package: stats4
Loading required package: lattice
Data diambil dari disertasi Haeruddin (2020) prodi S3 Ilmu Pendidikan UNY yang berjudul “Perilaku Metakognisi dalam Memecahkan Masalah Fisika Berdasarkan Gaya Berpikir pada Mahasiswa Universitas Tadulako”. Data yang dianalisis dalam tugas ini merupakan 10 butir kuesioner perilaku metakognisi Haeruddin (2020) yang aslinya mengandung 40 butir kuesioner. Kesepuluh butir kuesioner yang dianalisis pada tugas ini mengukur 2 aspek metakognisi dalam pemecahan masalah fisika yaitu pengetahuan deklaratif (1-6) dan pengetahuan prosedural (7-10). Berdasarkan data yang disajikan, kuesioner metakognisi menggunakan Likert 4 skala.Butir pernyataan kuesioner 1-10 adalah sebagai berikut :
PENGETAHUAN DEKLARATIF
PENGETAHUAN PROSEDURAL
data <- read.table('(processed) Perilaku Metakognisi Menyelesaikan Masalah Fisika.txt', header = T)
head(data)
dim(data)
[1] 664 10
Hasil ini menunjukkan bahwa data kita terdiri dari 664 baris (responden) dan 10 kolom (butir kuesioner).
str(data)
'data.frame': 664 obs. of 10 variables:
$ B1 : int 3 2 4 2 4 4 4 2 3 3 ...
$ B2 : int 2 2 2 1 3 4 3 1 2 3 ...
$ B3 : int 3 2 3 2 4 3 4 2 3 2 ...
$ B4 : int 2 3 3 3 3 3 3 4 3 2 ...
$ B5 : int 4 3 1 1 3 4 3 3 3 3 ...
$ B6 : int 3 3 3 3 3 3 4 3 3 2 ...
$ B7 : int 4 3 3 2 4 3 3 3 3 3 ...
$ B8 : int 3 2 2 3 3 4 4 2 3 3 ...
$ B9 : int 3 3 3 1 2 3 3 3 3 2 ...
$ B10: int 2 2 4 2 3 4 3 2 3 2 ...
Output ini digunakan untuk mendeskripsikan tipe data dan observasi apakah ada data missing atau tidak. Tampak pada hasil, terdapat 664 observasi pada 10 variabel (butir kuesioner).
describe(data)
Output di atas merupakan deskripsi data yang bisa kita gunakan untuk memahami rata-rata, mean, missing data, normalitas data dengan melihat skew dan kurtosis, dan lain-lain.
apply(data, 2, table)
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10
1 16 23 26 9 22 22 30 17 32 32
2 141 159 190 51 146 183 185 135 215 178
3 388 380 365 341 374 346 367 374 371 363
4 119 102 83 263 122 113 82 138 46 91
Output distribusi respon peserta (1, 2, 3, 4) dalam setiap butir soal. Tabel juga menginformasikan apakah ada butir-butir yang memiliki respon yang sama sekali tidak ada yang memilih ?
corrplot(cor(data), method="number")
Analisis korelasi antar butir dengan visualisasi heatmap. Semakin “biru” atau “merah” artinya semakin memiliki korelasi. Biru berarti korelasi positif. Merah berarti korelasi negatif. Dapat dilihat bahwa terdapat 1 butir yang tidak memiliki korelasi dengan butir lainnya yaitu butir 4 (B4) yang seharusnya B4 berkorelasi dengan butir-butir lainnya dalam aspek PENGETAHUAN DEKLARATIF. Korelasi bisa menjadi indikator awal terbentuknya faktor di dalam data. Jika terdapat butir yang tidak memiliki korelasi dengan butir satu pun, dimungkinkan butir ini tidak bisa membentuk faktor dengan butir lainnya dalam setiap aspek dalam kuesioner.
KMO(data)
Kaiser-Meyer-Olkin factor adequacy
Call: KMO(r = data)
Overall MSA = 0.76
MSA for each item =
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10
0.75 0.78 0.82 0.61 0.77 0.73 0.78 0.80 0.75 0.74
Berdasarkan kriteria statistik, nilai KMO MSA yang disarankan adalah lebih dari 0.5 yang menunjukkan sampel yang dianalisis sudah cukup untuk menjalankan analisis faktor selanjutnya.
cortest.bartlett(data)
R was not square, finding R from data
$chisq
[1] 693.8181
$p.value
[1] 4.023131e-117
$df
[1] 45
Berdasarkan kriteria statistik, nilai p-value dari Bartlett test of Sphericity harus kurang dari 0.05 sehingga kita bisa melanjutkan analisis faktor.
corrplot(KMO(data)$ImCo, method="number")
Nilai AIC pada diagonal utama harus lebih dari 0.5 agar kita dapat melanjutkan analisis faktor.
det(cor(data))
[1] 0.3488543
Terdapat pendapat dari literatur bahwa nilai determinan positif dari matriks korelasi menunjukkan bahwa kita baru diperbolehkan untuk menjalankan analisis faktor.
pca1 = princomp(data, scores=TRUE, cor=TRUE)
summary(pca1)
Importance of components:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8
Standard deviation 1.6140125 1.0673913 1.0263980 0.96857210 0.95635153 0.89147795 0.8572719 0.79767164
Proportion of Variance 0.2605036 0.1139324 0.1053493 0.09381319 0.09146082 0.07947329 0.0734915 0.06362801
Cumulative Proportion 0.2605036 0.3744361 0.4797854 0.57359855 0.66505938 0.74453267 0.8180242 0.88165218
Comp.9 Comp.10
Standard deviation 0.77953261 0.75881953
Proportion of Variance 0.06076711 0.05758071
Cumulative Proportion 0.94241929 1.00000000
Nilai standard deviation pada output diatas menunjukkan nilai eigen value setiap komponen yang terbentuk. Nilai eigen value yang lebih dari 1 merupakan banyaknya analisis faktor yang bisa dilaksanakan. Jika kesulitan membandingkan angka-angka ini kita bisa lebih mudah menentukan banyaknya faktor yang disarankan melalui visualisasi scree plot di bawah ini.
scree(data)
Berdasarkan visualisasi scree plot, terlihat bahwa terdapat 3 faktor yang disarankan dalam kriteria eigen value > 1.
loadings(pca1)
Loadings:
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8 Comp.9 Comp.10
B1 0.376 0.375 0.286 0.213 0.551 0.522
B2 0.324 0.375 0.168 -0.344 -0.467 0.364 -0.384 -0.314
B3 0.316 -0.206 0.310 -0.200 0.698 0.436 -0.167 -0.105
B4 0.587 -0.754 0.220 -0.106
B5 0.300 -0.316 0.291 -0.456 -0.108 -0.417 0.291 0.452 0.181
B6 0.319 -0.137 -0.620 0.212 -0.120 0.250 0.384 -0.467
B7 0.349 -0.359 0.178 -0.190 0.228 -0.131 -0.440 -0.625 0.160
B8 0.325 0.139 0.205 0.133 -0.564 -0.602 0.258 -0.236
B9 0.323 0.248 0.260 0.103 0.626 0.293 -0.337 -0.403
B10 0.354 -0.531 -0.215 0.132 -0.547 0.465
Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7 Comp.8 Comp.9 Comp.10
SS loadings 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
Proportion Var 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
Cumulative Var 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
fa1 = factanal(data, factor=3, rotation="varimax")
fa1
Call:
factanal(x = data, factors = 3, rotation = "varimax")
Uniquenesses:
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10
0.463 0.800 0.806 0.974 0.717 0.005 0.669 0.822 0.757 0.765
Loadings:
Factor1 Factor2 Factor3
B1 0.725 0.103
B2 0.424 0.103
B3 0.268 0.344
B4 -0.147
B5 0.165 0.505
B6 0.140 0.975 0.155
B7 0.236 0.518
B8 0.346 0.228
B9 0.464 0.166
B10 0.279 0.314 0.241
Factor1 Factor2 Factor3
SS loadings 1.294 1.093 0.834
Proportion Var 0.129 0.109 0.083
Cumulative Var 0.129 0.239 0.322
Test of the hypothesis that 3 factors are sufficient.
The chi square statistic is 31.24 on 18 degrees of freedom.
The p-value is 0.027
fa.diagram(fa1$loadings, digits = 3)
Terbukti bahwa dugaan awal kita terhadap butir 4 (B4) yang berdasarkan diagram di atas, butir ini tidak bisa membentuk faktor dengan butir lainnya dan disarankan kita menghapus butir ini dalam kuesioner kita. Untuk selanjutnya butir ini harus dieliminasi untuk memperbaiki kualitas instrumen kita.
Evaluasi : berdasarkan hasil ini, dapat dikatakan bahwa butir-butir tidak membentuk aspek yang sesuai dengan deskripsi rancangan kuesioner yang dijelaskan di atas yaitu mengukur 2 aspek perilaku metakognisi yaitu deklaratif (B1-B6) dan prosedural (B7-B10). Bahkan B4 tidak membentuk kelompok dengan aspek yang terbentuk yang menandakan bahwa aspek ini tidak mencirikan penilaian pada setiap aspek tersebut.
Berdasarkan hasil EFA, kita menetapkan spesifikasi model yang akan dikonfirmasi melalui CFA. Analisis CFA bertujuan untuk mengkonfirmasi hasil faktor-faktor atau aspek-aspek yang sudah diturunkan pada analisis sebelumnya yaitu EFA. Meskipun hasil analisis EFA ditemukan ketidaksesuaian dengan rancangan kuesioner Haeruddin (2020), analisis CFA tetap bisa dilakukan bahkan bisa menjadi perbaikan terhadap kuesioner yang telah dikembangkan Haeruddin (2020). Tanda “=~” menunjukkan bahwa faktor yang di-loading melalui butir-butir tertentu yang dispesifikasi. Simbol ~~ menunjukkan bahwa dimodelkan korelasi diantara faktor-faktor yang terbentuk.
model <- "
F1 =~ B1 + B9 + B2 + B8
F2 =~ B6 + B10
F3 =~ B7 + B5 + B3
F1 ~~ F2
F2 ~~ F3
F1 ~~ F3 "
Hasil yang perlu kita perhatikan adalah indeks fitting CFI, TLI yang harus lebih besar dari 0.9 dan indeks RMSEA dan SRMR yang harus lebih kecil dari 0.05. Jika batas ini dipenuhi, maka faktor yang dimodelkan sudah fit/ cocok dengan data yang tersedia.
fitmod = cfa(model, data)
summary(fitmod, fit.measures = TRUE, standardized = TRUE)
lavaan 0.6-9 ended normally after 43 iterations
Estimator ML
Optimization method NLMINB
Number of model parameters 21
Number of observations 664
Model Test User Model:
Test statistic 52.051
Degrees of freedom 24
P-value (Chi-square) 0.001
Model Test Baseline Model:
Test statistic 685.040
Degrees of freedom 36
P-value 0.000
User Model versus Baseline Model:
Comparative Fit Index (CFI) 0.957
Tucker-Lewis Index (TLI) 0.935
Loglikelihood and Information Criteria:
Loglikelihood user model (H0) -6164.444
Loglikelihood unrestricted model (H1) -6138.418
Akaike (AIC) 12370.888
Bayesian (BIC) 12465.352
Sample-size adjusted Bayesian (BIC) 12398.676
Root Mean Square Error of Approximation:
RMSEA 0.042
90 Percent confidence interval - lower 0.026
90 Percent confidence interval - upper 0.058
P-value RMSEA <= 0.05 0.788
Standardized Root Mean Square Residual:
SRMR 0.034
Parameter Estimates:
Standard errors Standard
Information Expected
Information saturated (h1) model Structured
Latent Variables:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
F1 =~
B1 1.000 0.431 0.621
B9 0.764 0.092 8.279 0.000 0.329 0.484
B2 0.801 0.097 8.284 0.000 0.345 0.484
B8 0.736 0.094 7.829 0.000 0.317 0.443
F2 =~
B6 1.000 0.418 0.564
B10 1.198 0.167 7.169 0.000 0.501 0.678
F3 =~
B7 1.000 0.409 0.566
B5 0.861 0.118 7.286 0.000 0.352 0.486
B3 0.803 0.113 7.104 0.000 0.329 0.460
Covariances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
F1 ~~
F2 0.100 0.016 6.098 0.000 0.557 0.557
F2 ~~
F3 0.096 0.017 5.750 0.000 0.561 0.561
F1 ~~
F3 0.112 0.016 6.917 0.000 0.635 0.635
Variances:
Estimate Std.Err z-value P(>|z|) Std.lv Std.all
.B1 0.296 0.025 11.977 0.000 0.296 0.615
.B9 0.354 0.023 15.202 0.000 0.354 0.766
.B2 0.389 0.026 15.193 0.000 0.389 0.766
.B8 0.411 0.026 15.821 0.000 0.411 0.804
.B6 0.374 0.031 11.949 0.000 0.374 0.681
.B10 0.295 0.038 7.859 0.000 0.295 0.541
.B7 0.355 0.029 12.207 0.000 0.355 0.679
.B5 0.401 0.028 14.337 0.000 0.401 0.764
.B3 0.402 0.027 14.866 0.000 0.402 0.788
F1 0.185 0.028 6.635 0.000 1.000 1.000
F2 0.175 0.032 5.411 0.000 1.000 1.000
F3 0.168 0.030 5.559 0.000 1.000 1.000
fitmeasures(fitmod)
npar fmin chisq df pvalue
21.000 0.039 52.051 24.000 0.001
baseline.chisq baseline.df baseline.pvalue cfi tli
685.040 36.000 0.000 0.957 0.935
nnfi rfi nfi pnfi ifi
0.935 0.886 0.924 0.616 0.958
rni logl unrestricted.logl aic bic
0.957 -6164.444 -6138.418 12370.888 12465.352
ntotal bic2 rmsea rmsea.ci.lower rmsea.ci.upper
664.000 12398.676 0.042 0.026 0.058
rmsea.pvalue rmr rmr_nomean srmr srmr_bentler
0.788 0.017 0.017 0.034 0.034
srmr_bentler_nomean crmr crmr_nomean srmr_mplus srmr_mplus_nomean
0.034 0.038 0.038 0.034 0.034
cn_05 cn_01 gfi agfi pgfi
465.537 549.282 0.983 0.968 0.524
mfi ecvi
0.979 0.142
Gambar di bawah ini merupakan representasi dari summary hasil pemodelan CFA yang tampil di atas. Panah dua arah di antara faktor merupakan nilai covariances pada summary CFA. Nilai yang berada di anak panah yang menghubungkan faktor dan butir kuesioner adalah faktor loading. Seberaba besar loading dalam satu faktor dapat digambarkan dengan tebal garis yang terbentuk. Semakin tebal artinya butir tersebut memiliki loading factor yang lebih besar. Anak panah putus-putus menunjukkan butir pertama yang kita sebutkan pada saat spesifikasi model setiap faktornya. Kemudian nilai paling bawah pada setiap butir (anak panah menunjuk butir itu sendiri) adalah nilai variances pada output summar CFA di atas yang menjelaskan seberapa besar varians yang bisa dijelaskan oleh setiap butir.
semPaths(fitmod, what='std', layout='tree', title = TRUE, posCol = 1, nDigits = 3,
edge.label.cex=0.7, exoVar = FALSE, sizeMan = 5, sizeLat = 5)
data_new = data[, c(1,2,3,5,6,7,8,9,10)]
alpha(data_new)
Reliability analysis
Call: alpha(x = data_new)
lower alpha upper 95% confidence boundaries
0.65 0.69 0.73
Reliability if an item is dropped:
Item statistics
Non missing response frequency for each item
1 2 3 4 miss
B1 0.02 0.21 0.58 0.18 0
B2 0.03 0.24 0.57 0.15 0
B3 0.04 0.29 0.55 0.12 0
B5 0.03 0.22 0.56 0.18 0
B6 0.03 0.28 0.52 0.17 0
B7 0.05 0.28 0.55 0.12 0
B8 0.03 0.20 0.56 0.21 0
B9 0.05 0.32 0.56 0.07 0
B10 0.05 0.27 0.55 0.14 0
Dari hasil ini diperoleh alpha sebesar 0.69 yang masih belum memenuhi syarat yang direkomendasikan sebagian besar literatur metodologi penelitian yaitu sebesar 0.7. Namun jika nilai ini dibulatkan mungkin kita bisa menganggap nilai ini sudah memenuhi syarat instrumen yang reliabel.
mod.grm <- mirt(data_new, model = 1, itemtype = 'graded', SE = TRUE)
Iteration: 1, Log-Lik: -6133.401, Max-Change: 0.38859
Iteration: 2, Log-Lik: -6120.611, Max-Change: 0.09692
Iteration: 3, Log-Lik: -6117.956, Max-Change: 0.07548
Iteration: 4, Log-Lik: -6117.181, Max-Change: 0.03550
Iteration: 5, Log-Lik: -6116.886, Max-Change: 0.02179
Iteration: 6, Log-Lik: -6116.788, Max-Change: 0.01301
Iteration: 7, Log-Lik: -6116.741, Max-Change: 0.00568
Iteration: 8, Log-Lik: -6116.735, Max-Change: 0.00331
Iteration: 9, Log-Lik: -6116.733, Max-Change: 0.00140
Iteration: 10, Log-Lik: -6116.733, Max-Change: 0.00197
Iteration: 11, Log-Lik: -6116.732, Max-Change: 0.00056
Iteration: 12, Log-Lik: -6116.732, Max-Change: 0.00019
Iteration: 13, Log-Lik: -6116.732, Max-Change: 0.00019
Iteration: 14, Log-Lik: -6116.732, Max-Change: 0.00088
Iteration: 15, Log-Lik: -6116.732, Max-Change: 0.00013
Iteration: 16, Log-Lik: -6116.732, Max-Change: 0.00013
Iteration: 17, Log-Lik: -6116.732, Max-Change: 0.00058
Iteration: 18, Log-Lik: -6116.732, Max-Change: 0.00007
Calculating information matrix...
mod.grm
Call:
mirt(data = data_new, model = 1, itemtype = "graded", SE = TRUE)
Full-information item factor analysis with 1 factor(s).
Converged within 1e-04 tolerance after 18 EM iterations.
mirt version: 1.35.1
M-step optimizer: BFGS
EM acceleration: Ramsay
Number of rectangular quadrature: 61
Latent density type: Gaussian
Information matrix estimated with method: Oakes
Second-order test: model is a possible local maximum
Condition number of information matrix = 19.77976
Log-likelihood = -6116.732
Estimated parameters: 36
AIC = 12305.46
BIC = 12467.4; SABIC = 12353.1
G2 (262107) = 3971.04, p = 1
RMSEA = 0, CFI = NaN, TLI = NaN
extract.mirt(mod.grm, what='converged')
[1] TRUE
Hasil “TRUE” menunjukan tidak ada masalah yang terdeteksi di bawah kriteria konvergesi dalam proses estimasi yang dilaksanakan.
extract.mirt(mod.grm, what='secondordertest')
[1] TRUE
Hasil “TRUE” menunjukan tidak ada masalah yang terdeteksi di bawah kriteria konvergesi dalam proses estimasi yang dilaksanakan.
coef(mod.grm, simplify=T, IRTpars=T)
$items
a b1 b2 b3
B1 1.290 -3.456 -1.171 1.532
B2 0.995 -3.779 -1.188 2.002
B3 0.932 -3.859 -0.930 2.404
B5 0.865 -4.301 -1.435 1.980
B6 0.981 -3.870 -0.950 1.921
B7 1.066 -3.322 -0.838 2.205
B8 0.971 -4.187 -1.460 1.641
B9 0.999 -3.392 -0.633 2.997
B10 1.123 -3.139 -0.848 2.002
$means
F1
0
$cov
F1
F1 1
Output b1, b2, dan b3 adalah hasil estimasi parameter batas kategori setiap butir dan kemiringan (slope) a juga ditunjukkan. b1 adalah batas antara kategori 1 (P1) dan ketegori 2 (P2). b2 adalah batas antara kategori 2 (P2) dan kategori 3 (P3). b3 adalah batas antara kategori 3 (P3) dan kategori 4 (P4).
coef(mod.grm, IRTpars=T, printSE=T)
$B1
a b1 b2 b3
par 1.290 -3.456 -1.171 1.532
SE 0.143 0.345 0.122 0.147
$B2
a b1 b2 b3
par 0.995 -3.779 -1.188 2.002
SE 0.121 0.434 0.147 0.223
$B3
a b1 b2 b3
par 0.932 -3.859 -0.930 2.404
SE 0.114 0.447 0.134 0.270
$B5
a b1 b2 b3
par 0.865 -4.301 -1.435 1.980
SE 0.112 0.536 0.187 0.242
$B6
a b1 b2 b3
par 0.981 -3.870 -0.950 1.921
SE 0.118 0.444 0.134 0.213
$B7
a b1 b2 b3
par 1.066 -3.322 -0.838 2.205
SE 0.124 0.353 0.117 0.228
$B8
a b1 b2 b3
par 0.971 -4.187 -1.460 1.641
SE 0.118 0.495 0.175 0.189
$B9
a b1 b2 b3
par 0.999 -3.392 -0.633 2.997
SE 0.124 0.389 0.112 0.334
$B10
a b1 b2 b3
par 1.123 -3.139 -0.848 2.002
SE 0.126 0.318 0.113 0.200
$GroupPars
MEAN_1 COV_11
par 0 1
SE NA NA
Output di atas juga menampilkan hasil estimasi parameter butir yang disertai dengan standard error-nya (SE). Dapat dilihat kategori b1 menunjukkan trend nilai standard error yang paling besar dibandingkan butir-butir yang lain.
coef(mod.grm, IRTpars=T)
$B1
a b1 b2 b3
par 1.290 -3.456 -1.171 1.532
CI_2.5 1.010 -4.132 -1.411 1.243
CI_97.5 1.569 -2.779 -0.931 1.821
$B2
a b1 b2 b3
par 0.995 -3.779 -1.188 2.002
CI_2.5 0.758 -4.630 -1.477 1.566
CI_97.5 1.232 -2.928 -0.899 2.439
$B3
a b1 b2 b3
par 0.932 -3.859 -0.930 2.404
CI_2.5 0.709 -4.736 -1.194 1.874
CI_97.5 1.155 -2.983 -0.667 2.933
$B5
a b1 b2 b3
par 0.865 -4.301 -1.435 1.980
CI_2.5 0.647 -5.352 -1.802 1.507
CI_97.5 1.084 -3.249 -1.068 2.453
$B6
a b1 b2 b3
par 0.981 -3.87 -0.950 1.921
CI_2.5 0.749 -4.74 -1.212 1.503
CI_97.5 1.213 -3.00 -0.688 2.338
$B7
a b1 b2 b3
par 1.066 -3.322 -0.838 2.205
CI_2.5 0.823 -4.014 -1.067 1.758
CI_97.5 1.308 -2.631 -0.608 2.651
$B8
a b1 b2 b3
par 0.971 -4.187 -1.460 1.641
CI_2.5 0.739 -5.158 -1.802 1.270
CI_97.5 1.202 -3.217 -1.118 2.011
$B9
a b1 b2 b3
par 0.999 -3.392 -0.633 2.997
CI_2.5 0.755 -4.155 -0.852 2.343
CI_97.5 1.242 -2.629 -0.414 3.652
$B10
a b1 b2 b3
par 1.123 -3.139 -0.848 2.002
CI_2.5 0.875 -3.762 -1.070 1.610
CI_97.5 1.370 -2.515 -0.626 2.393
$GroupPars
MEAN_1 COV_11
par 0 1
CI_2.5 NA NA
CI_97.5 NA NA
Output hasil estimasi parameter butir beserta rentang confidence interval (CI) dengan taraf signifikansi 5%.
Di bawah ini adalah hasil estimasi kemampuan setiap peserta terhadap setiap butir soal. Semakin positif ability-nya artinya orang tersebut cenderung merespon setiap butir menuju angka 4 (maksimal). Sebaliknya semakin negatif artinya orang tersebut cenderung merespon setiap butir menuju angka 1 (minimal). Metode estimasi yang digunakan adalah EAP (Expected A Posteriori). Pola respon pada masing-masing butir setiap person juga ditampilkan. Empirical reliability juga ditampilkan yang nilainya berbeda sedikit dengan estimasi alpha cronbach. Untuk nilai sekarang sudah memenuhi kriteria yang disarankan literatur statistik.
fscores(mod.grm, method='EAP', full.scores=F)
Method: EAP
Empirical Reliability:
F1
0.7042
B1 B2 B3 B5 B6 B7 B8 B9 B10 F1 SE_F1
[1,] 1 2 1 2 4 1 1 2 2 -2.330711148 0.5719903
[2,] 1 2 1 4 3 2 3 3 3 -0.758845632 0.5826364
[3,] 1 2 2 2 1 2 2 1 2 -2.424130997 0.5280796
[4,] 1 2 2 2 2 4 1 3 3 -1.259676044 0.5958022
[5,] 1 2 2 3 2 1 3 2 2 -1.784187986 0.5404050
[6,] 1 2 2 3 2 2 2 2 3 -1.552894936 0.5345534
[7,] 1 2 2 3 4 2 2 1 2 -1.683282694 0.5585595
[8,] 1 2 3 2 2 3 3 1 3 -1.204204017 0.5662629
[9,] 1 2 3 2 3 2 3 2 3 -1.037195538 0.5440580
[10,] 1 2 4 4 1 2 2 3 1 -1.513488571 0.6191286
[11,] 1 3 2 2 2 2 2 3 2 -1.544255059 0.5355689
[12,] 1 3 2 3 1 1 3 1 2 -1.976138154 0.5768559
[13,] 1 3 2 4 3 3 3 3 4 0.222037551 0.5867546
[14,] 1 3 3 2 3 2 3 1 4 -0.758229637 0.5955152
[15,] 1 3 3 3 3 3 2 1 3 -0.674831029 0.5713148
[16,] 1 4 2 2 4 1 3 2 3 -0.858593494 0.6146433
[17,] 2 1 1 1 4 2 3 3 3 -1.101476614 0.5899722
[18,] 2 1 2 1 1 3 1 3 1 -2.295898018 0.5921402
[19,] 2 1 2 1 3 2 3 1 2 -1.827331193 0.5441743
[20,] 2 1 2 2 1 2 2 2 2 -2.121825000 0.5179087
[21,] 2 1 2 2 2 2 1 3 2 -1.875866743 0.5337091
[22,] 2 1 2 3 2 3 2 3 3 -0.989222162 0.5414160
[23,] 2 1 2 3 3 3 2 3 2 -1.021949636 0.5365461
[24,] 2 1 2 3 3 4 3 1 2 -1.066564586 0.5702665
[25,] 2 1 2 4 2 2 2 2 2 -1.637399812 0.5265733
[26,] 2 1 2 4 2 2 3 2 2 -1.400130390 0.5314170
[27,] 2 1 3 2 3 1 3 3 1 -1.421141207 0.5743496
[28,] 2 1 3 2 4 3 3 3 3 -0.271852008 0.5677439
[29,] 2 2 1 2 2 1 2 3 1 -2.185019770 0.5418813
[30,] 2 2 1 2 2 2 2 3 3 -1.472126355 0.5285770
[31,] 2 2 1 3 2 3 2 3 2 -1.272517807 0.5300355
[32,] 2 2 1 3 3 3 4 3 3 -0.286953965 0.5611116
[33,] 2 2 1 4 4 2 2 1 3 -1.182434356 0.5813720
[34,] 2 2 2 2 1 1 2 1 2 -2.379248769 0.5227787
[35,] 2 2 2 2 1 3 3 3 1 -1.457309384 0.5511424
[36,] 2 2 2 2 3 2 3 2 2 -1.346415126 0.5046468
[37,] 2 2 2 2 4 2 3 3 3 -0.711130408 0.5417804
[38,] 2 2 2 3 1 4 2 3 2 -1.151678113 0.5545861
[39,] 2 2 2 3 2 2 3 2 3 -1.127210641 0.5119452
[40,] 2 2 2 3 2 3 2 1 3 -1.278699191 0.5318169
[41,] 2 2 2 3 3 2 2 2 2 -1.372616072 0.5047527
[42,] 2 2 2 3 3 2 2 2 3 -1.124565688 0.5138340
[43,] 2 2 2 3 3 2 3 1 3 -1.057808804 0.5297779
[44,] 2 2 2 3 3 3 1 2 4 -0.811653116 0.5620613
[45,] 2 2 2 3 3 3 1 4 2 -0.873735903 0.5568144
[46,] 2 2 2 3 3 3 2 3 2 -0.898180266 0.5212749
[47,] 2 2 2 3 3 3 3 3 4 -0.184582565 0.5555476
[48,] 2 2 3 1 3 2 4 2 4 -0.602763104 0.5783649
[49,] 2 2 3 2 2 2 2 2 2 -1.572730828 0.5020185
[50,] 2 2 3 2 2 2 3 3 2 -1.131546086 0.5139358
[51,] 2 2 3 2 2 2 4 2 4 -0.781737365 0.5609831
[52,] 2 2 3 2 3 2 4 3 4 -0.215126446 0.5757440
[53,] 2 2 3 3 2 2 3 3 3 -0.666101175 0.5248737
[54,] 2 2 3 3 2 3 2 3 2 -0.907622257 0.5225258
[55,] 2 2 3 3 2 3 3 3 2 -0.677519632 0.5245325
[56,] 2 2 3 3 2 4 1 2 2 -1.132742744 0.5505703
[57,] 2 2 3 3 3 2 3 3 1 -0.852315358 0.5397779
[58,] 2 2 3 3 3 3 2 2 2 -0.915960708 0.5179683
[59,] 2 2 3 3 3 3 2 2 4 -0.459936396 0.5526366
[60,] 2 2 3 3 3 3 3 2 2 -0.689800236 0.5196093
[61,] 2 2 3 3 3 3 3 3 2 -0.441714439 0.5276651
[62,] 2 2 3 3 3 4 2 1 3 -0.620953818 0.5668438
[63,] 2 2 3 3 4 3 2 2 2 -0.771893114 0.5383273
[64,] 2 2 3 3 4 3 2 3 3 -0.206594365 0.5550079
[65,] 2 2 3 4 2 2 2 2 1 -1.460808831 0.5364612
[66,] 2 2 3 4 3 2 3 2 4 -0.309407360 0.5645405
[67,] 2 2 3 4 3 2 4 2 2 -0.608000485 0.5487195
[68,] 2 2 3 4 3 3 3 2 4 -0.010165547 0.5678371
[69,] 2 2 3 4 4 4 3 2 3 0.209696834 0.5877696
[70,] 2 2 4 2 1 3 3 3 2 -0.879187285 0.5563706
[71,] 2 2 4 2 2 3 2 2 1 -1.435563641 0.5447414
[72,] 2 2 4 2 2 3 4 2 2 -0.820327957 0.5520004
[73,] 2 2 4 3 2 2 3 2 3 -0.775062616 0.5348118
[74,] 2 2 4 4 2 2 2 2 3 -0.862423322 0.5495900
[75,] 2 2 4 4 3 3 2 2 3 -0.306805489 0.5629913
[76,] 2 2 4 4 3 3 3 2 3 -0.056251180 0.5606520
[77,] 2 3 1 2 2 2 3 3 4 -0.820254079 0.5628251
[78,] 2 3 1 2 2 3 2 3 2 -1.238135047 0.5325273
[79,] 2 3 1 3 3 3 3 1 1 -1.147585465 0.5706846
[80,] 2 3 2 1 4 1 3 1 1 -1.762803661 0.5928603
[81,] 2 3 2 2 1 1 1 2 2 -2.108177119 0.5412677
[82,] 2 3 2 2 2 2 1 2 1 -1.918400367 0.5307922
[83,] 2 3 2 2 2 2 2 1 3 -1.498998423 0.5253811
[84,] 2 3 2 2 2 2 2 2 2 -1.558859624 0.5021724
[85,] 2 3 2 2 2 2 3 2 2 -1.343168083 0.5052553
[86,] 2 3 2 2 2 3 3 2 3 -0.843649305 0.5207521
[87,] 2 3 2 2 3 1 3 1 2 -1.479308090 0.5394166
[88,] 2 3 2 2 3 2 2 2 2 -1.342102967 0.5070816
[89,] 2 3 2 2 3 2 3 2 3 -0.865256392 0.5173134
[90,] 2 3 2 2 4 2 3 2 2 -0.996501959 0.5279480
[ reached getOption("max.print") -- omitted 472 rows ]
itemplot(mod.grm, 1)
itemplot(mod.grm, 1, CE = T)
itemplot(mod.grm, 2)
itemplot(mod.grm, 3)
itemplot(mod.grm, 4)
itemplot(mod.grm, 5)
itemplot(mod.grm, 6)
itemplot(mod.grm, 7)
itemplot(mod.grm, 8)
itemplot(mod.grm, 9)
Visualisasi CCC dalam satu plot. Dapat dilihat pada gambar di bawah ini, setiap butir bahkan hampir memiliki bentuk kurva CCC yang hampir sama.
plot(mod.grm, type = 'trace')
plot(mod.grm)
Informasi yang dimiliki instrumen cocok untuk menentukan ability peserta antara sekitar -4 sampai 2. Artinya instrumen lebih akurat mengestimasi peserta dengan estimasi dalam rentang ini.
plot(mod.grm, type='info')
Jika kita ingin menamplikan TIC pada butir tertentu. Misalkan yang ditampilkan di bawah ini adalah butir ke-9.
itemplot(mod.grm, 9, type='info')
M2(mod.grm, type="M2*")
Nilai p-value dari uji M2* yang ditunjukkan masih kurang dari 0.05 yang artinya hipotesus nol ditolak atau data tidak cocok dengan pemodelan GRM yang sedang dianalisis.Indeks lainnya seperti RMSEA dan SRMR juga tidak sesuai kriteria (< 0.05). TLI dan CFI juga jauh dari kriteria kecocokan model (> 0.9). Jika ini terjadi kita sebaiknya memeriksa apakah terdapat butir-butir yang tidak cocok yang mungkin bisa menyebabkan ketidakcocokan ini. Atau bisa juga terjadi karakteristik rancangan kuesioner tidak sesuai dengan sifat pemodelan skala GRM yang seharusnya.
itemfit(mod.grm)
Namun, jika dilihat dari itemfit sebagian besar butir sudah fit yang ditunjukkan nilai p.S_X2 yang lebih dari 0.05, kecuali B6 (atau butir ke-7 pada data asal) yang menunjukkan ketakcocokan dengan model GRM. Butir 6 mungkin yang menyebabkan ketidak cocokan model berdasarkan hasil uji M* sebelumnya.
itemfit(mod.grm, empirical.plot=1)
Visualisasi di atas menunjukkan CCC (kurva garis) pemodelan dibandingkan dengan CCC empirik sesuai data yang sebenarnya dengan menggunakan fungsi “itemfit()”. Butir yang digambarkan adalah butir ke-1.
personfit(mod.grm, method='EAP')
Indeks person fit Iz (“Zh”) dihitung. Nilai yang rendah (misalkan < -3) menunjukkan potensi pola respon yang menyimpang.
p.fit <- cbind(1:664,data, personfit(mod.grm, method='EAP'))
p.fit[order(p.fit[,16]),]
Tabel di atas adalah hasil Zh yang sudah diurutkan dari yang paling rendah. Terdapat 14 person yang nilai Zh nya kurang dari -3 yaitu peserta 191, 273, …, 195 artinya kelompok ini adalah person yang responnya tidak cocok dengan pemodelan GRM yang dijalankan.
Berdasarkan dokumentasi fungsi “conf.detect{sirt}”, indeks DETECT < 0.2 dan ASSI < 0.25 membuktikan konstruk yang sudah unidimensi. Nilai indeks DETECT juga bisa berupa hasil yang negatif untuk data unidimensi. Hasil data kali ini tidak menunjukkan sifat unidimensi karena DETECT 4.306 menunjukkan sangat multidimensi dan ASSI 0.778.
# estimate person score by simply using a transformed sum score
score <- stats::qnorm( (rowMeans(data_new)+.5 ) / ( 9 + 1 ) )
# extract item cluster
itemcluster <- substring(colnames(data_new), 1, 1 )
# DETECT Item cluster
detect1 <- sirt::conf.detect(data=data_new, score=score, itemcluster=itemcluster )
-----------------------------------------------------------
Confirmatory DETECT Analysis
Conditioning on 1 Score
Bandwidth Scale: 1.1
Pairwise Estimation of Conditional Covariances
...........................................................
Nonparametric ICC estimation
...........................................................
Nonparametric Estimation of conditional covariances
5% 10% 15% 20% 25% 30% 35% 40% 45% 50%
55% 60% 65% 70% 75% 80% 85% 90% 95%
-----------------------------------------------------------
residuals(mod.grm, type='LD')
LD matrix (lower triangle) and standardized values:
B1 B2 B3 B5 B6 B7 B8 B9 B10
B1 NA 0.080 -0.070 -0.084 -0.084 -0.097 0.056 0.133 -0.083
B2 12.823 NA -0.071 -0.101 -0.120 -0.085 0.130 -0.078 0.085
B3 9.770 9.951 NA 0.061 -0.096 0.074 0.065 -0.083 -0.065
B5 14.050 20.306 7.413 NA -0.134 0.094 -0.062 -0.059 -0.107
B6 13.920 28.878 18.357 35.612 NA -0.109 -0.110 -0.079 0.193
B7 18.851 14.435 11.031 17.763 23.784 NA -0.064 0.055 0.068
B8 6.202 33.862 8.371 7.548 24.131 8.279 NA -0.070 -0.083
B9 35.317 12.189 13.863 6.965 12.465 5.944 9.805 NA -0.053
B10 13.690 14.368 8.291 22.764 74.179 9.233 13.679 5.693 NA
Hasil ini merupakan deteksi asumsi independensi lokal pada setiap butir dengan fungsi “function()”. Elemen diagonal bawah adalah nilai LD-X2 dan elemen bagian atas adalah koefisien Cramer V yang dihitung dengan menggunakan LD-X2. Nilai absolut yang besar pada LD-X2 menunjukkan potensi pelanggaran asumsi independensi lokal.
residuals(mod.grm, type='Q3')
Q3 matrix:
B1 B2 B3 B5 B6 B7 B8 B9 B10
B1 1.000 0.013 -0.110 -0.217 -0.140 -0.197 -0.076 0.074 -0.164
B2 0.013 1.000 -0.132 -0.088 -0.096 -0.208 0.021 -0.095 -0.075
B3 -0.110 -0.132 1.000 0.025 -0.105 -0.025 -0.011 -0.091 -0.146
B5 -0.217 -0.088 0.025 1.000 -0.118 0.086 -0.060 -0.090 -0.086
B6 -0.140 -0.096 -0.105 -0.118 1.000 -0.092 -0.109 -0.201 0.150
B7 -0.197 -0.208 -0.025 0.086 -0.092 1.000 -0.090 -0.046 -0.084
B8 -0.076 0.021 -0.011 -0.060 -0.109 -0.090 1.000 -0.126 -0.191
B9 0.074 -0.095 -0.091 -0.090 -0.201 -0.046 -0.126 1.000 -0.133
B10 -0.164 -0.075 -0.146 -0.086 0.150 -0.084 -0.191 -0.133 1.000
Hasil ini juga menunjukkan deteksi asumsi independensi lokal tetapi dilakukan dengan metode “Q3”. Semakin besar nilai absolutnya menandakan potensi pelanggaran asumsi independensi lokal.