library(readxl)
library(CTT)
library(mirt)
## Warning: package 'mirt' was built under R version 4.3.3
## Loading required package: stats4
## Loading required package: lattice
#N1
N1 = read_xlsx("C:/Users/ENGGAR/OneDrive - uny.ac.id/Documents/UNY/Semester 4/Statpend/UTS_N75.xlsx")
head(N1)
## # A tibble: 6 × 37
## b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## 2 1 1 1 1 0 1 1 1 1 1 1 1 0
## 3 1 1 1 1 1 1 1 1 1 1 1 1 1
## 4 1 1 1 1 1 1 1 1 1 1 1 1 1
## 5 1 1 1 1 1 1 1 1 1 0 1 1 0
## 6 1 1 1 1 1 1 1 1 1 1 1 1 1
## # ℹ 24 more variables: b14 <dbl>, b15 <dbl>, b16 <dbl>, b17 <dbl>, b18 <dbl>,
## # b19 <dbl>, b20 <dbl>, b21 <dbl>, b22 <dbl>, b23 <dbl>, b24 <dbl>,
## # b25 <dbl>, b26 <dbl>, b27 <dbl>, b28 <dbl>, b29 <dbl>, b30 <dbl>,
## # b31 <dbl>, b32 <dbl>, b33 <dbl>, b34 <dbl>, b35 <dbl>, b36 <dbl>, b37 <dbl>
model <- 'F1 = 1-37 CONSTRAIN = (1-37, a1)'
ModelRasch <- mirt(data = N1, model = 1, itemtype = 'Rasch', SE = TRUE, verbose = FALSE)
Model1PL <- mirt(data = N1, model = 1, itemtype = '1PL', SE = TRUE, verbose = FALSE)
Model2PL <- mirt(data = N1, model = 1, itemtype = '2PL', SE = TRUE, verbose = FALSE)
Model3PL <- mirt(data = N1, model = 1, itemtype = '3PL', SE = TRUE, verbose = FALSE)
## Warning: EM cycles terminated after 500 iterations.
Model4PL <- mirt(data = N1, model = 1, itemtype = '4PL', SE = TRUE, verbose = FALSE)
## Warning: EM cycles terminated after 500 iterations.
##Model Rasch_N1
fitRasch <- itemfit(ModelRasch, fit_stats = "S_X2")
fitRasch <- data.frame(Butir = fitRasch$item, Chi = round(fitRasch$S_X2, 2),
pvalue = round(fitRasch$p.S_X2, 2),
Keputusan = ifelse(round(fitRasch$p.S_X2, 2)>= 0.05, "Cocok","Tidak Cocok"))
head(fitRasch)
## Butir Chi pvalue Keputusan
## 1 b1 6.34 0.50 Cocok
## 2 b2 6.98 0.43 Cocok
## 3 b3 8.34 0.30 Cocok
## 4 b4 12.36 0.09 Cocok
## 5 b5 10.65 0.22 Cocok
## 6 b6 10.27 0.17 Cocok
jumlah_fitRasch <- table(fitRasch$Keputusan)
jumlah_fitRasch
##
## Cocok Tidak Cocok
## 29 8
itemfit(ModelRasch, 'S_X2', empirical.plot = 9)
##Model 1PL_N1
fit1PL <- itemfit(Model1PL, fit_stats = "S_X2")
fit1PL <- data.frame(Butir = fit1PL$item, Chi = round(fit1PL$S_X2, 2), pvalue = round(fit1PL$p.S_X2, 2), Keputusan = ifelse(round(fit1PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit1PL)
## Butir Chi pvalue Keputusan
## 1 b1 6.26 0.62 Cocok
## 2 b2 6.86 0.55 Cocok
## 3 b3 8.34 0.40 Cocok
## 4 b4 12.22 0.14 Cocok
## 5 b5 10.77 0.29 Cocok
## 6 b6 10.39 0.24 Cocok
jumlah_fit1PL <- table(fit1PL$Keputusan)
jumlah_fit1PL
##
## Cocok Tidak Cocok
## 29 8
itemfit(Model1PL, 'S_X2', empirical.plot = 9)
##Model 2PL_N1
fit2PL <- itemfit(Model2PL, fit_stats = "S_X2")
fit2PL <- data.frame(Butir = fit2PL$item, Chi = round(fit2PL$S_X2, 2), pvalue = round(fit2PL$p.S_X2, 2), Keputusan = ifelse(round(fit2PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit2PL)
## Butir Chi pvalue Keputusan
## 1 b1 3.40 0.49 Cocok
## 2 b2 6.95 0.43 Cocok
## 3 b3 0.80 0.94 Cocok
## 4 b4 10.43 0.11 Cocok
## 5 b5 6.85 0.23 Cocok
## 6 b6 6.72 0.15 Cocok
jumlah_fit2PL <- table(fit2PL$Keputusan)
jumlah_fit2PL
##
## Cocok Tidak Cocok
## 35 1
itemfit(Model2PL, 'S_X2', empirical.plot = 9)
##Model 3PL_N1
fit3PL <- itemfit(Model3PL, fit_stats = "S_X2")
fit3PL <- data.frame(Butir = fit3PL$item, Chi = round(fit3PL$S_X2, 2), pvalue = round(fit3PL$p.S_X2, 2), Keputusan = ifelse(round(fit3PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit3PL)
## Butir Chi pvalue Keputusan
## 1 b1 2.51 0.64 Cocok
## 2 b2 2.66 0.75 Cocok
## 3 b3 5.72 0.33 Cocok
## 4 b4 15.08 0.01 Tidak Cocok
## 5 b5 5.12 0.16 Cocok
## 6 b6 9.68 0.05 Cocok
jumlah_fit3PL <- table(fit3PL$Keputusan)
jumlah_fit3PL
##
## Cocok Tidak Cocok
## 30 5
itemfit(Model3PL, 'S_X2', empirical.plot = 9)
##Model 4PL_N1
fit4PL <- itemfit(Model4PL, fit_stats = "S_X2")
fit4PL <- data.frame(Butir = fit4PL$item, Chi = round(fit4PL$S_X2, 2), pvalue = round(fit4PL$p.S_X2, 2), Keputusan = ifelse(round(fit4PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit4PL)
## Butir Chi pvalue Keputusan
## 1 b1 2.27 0.32 Cocok
## 2 b2 1.08 0.78 Cocok
## 3 b3 5.95 0.20 Cocok
## 4 b4 14.99 0.00 Tidak Cocok
## 5 b5 9.77 0.02 Tidak Cocok
## 6 b6 10.53 0.01 Tidak Cocok
jumlah_fit4PL <- table(fit4PL$Keputusan)
jumlah_fit4PL
##
## Cocok Tidak Cocok
## 26 8
itemfit(Model4PL, 'S_X2', empirical.plot = 9)
##AIC dan BIC_N1
anova(ModelRasch, Model1PL, Model2PL, Model3PL, Model4PL)
## AIC SABIC HQ BIC logLik X2 df p
## ModelRasch 2570.555 2538.853 2605.718 2658.619 -1247.277
## Model1PL 2611.642 2580.774 2645.879 2697.389 -1268.821 -43.087 -1 NaN
## Model2PL 2474.802 2413.068 2543.278 2646.297 -1163.401 210.839 37 0
## Model3PL 2468.626 2376.025 2571.340 2725.867 -1123.313 80.176 37 0
## Model4PL 2519.579 2396.111 2656.531 2862.568 -1111.790 23.047 37 0.965
##NFI Maks_N1
theta <- 0
nfi_rasch <- testinfo(ModelRasch, Theta = theta)
nfi_1pl <- testinfo(Model1PL, Theta = theta)
nfi_2pl <- testinfo(Model2PL, Theta = theta)
nfi_3pl <- testinfo(Model3PL, Theta = theta)
nfi_4pl <- testinfo(Model4PL, Theta = theta)
nfi_maks_df <- data.frame(Model = c("Rasch", "1PL", "2PL", "3PL", "4PL"), NFI_Maks = c(nfi_rasch, nfi_1pl, nfi_2pl, nfi_3pl, nfi_4pl))
nfi_maks_df
## Model NFI_Maks
## 1 Rasch 6.010745
## 2 1PL 6.478125
## 3 2PL 15.143693
## 4 3PL 19.685604
## 5 4PL 230.260298
#N2
N2 = read_xlsx("C:/Users/ENGGAR/OneDrive - uny.ac.id/Documents/UNY/Semester 4/Statpend/UTS_N200.xlsx")
head(N2)
## # A tibble: 6 × 37
## b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 0 0 0 0 0 0 1 1 0 0 0 0
## 2 1 1 1 1 0 0 1 0 1 1 1 1 1
## 3 1 0 1 1 1 0 0 1 0 1 1 1 0
## 4 1 1 1 1 1 1 1 1 1 1 1 1 1
## 5 1 1 1 1 1 1 1 1 1 1 1 1 1
## 6 0 0 0 0 0 0 0 0 0 0 1 0 0
## # ℹ 24 more variables: b14 <dbl>, b15 <dbl>, b16 <dbl>, b17 <dbl>, b18 <dbl>,
## # b19 <dbl>, b20 <dbl>, b21 <dbl>, b22 <dbl>, b23 <dbl>, b24 <dbl>,
## # b25 <dbl>, b26 <dbl>, b27 <dbl>, b28 <dbl>, b29 <dbl>, b30 <dbl>,
## # b31 <dbl>, b32 <dbl>, b33 <dbl>, b34 <dbl>, b35 <dbl>, b36 <dbl>, b37 <dbl>
model <- 'F1 = 1-37 CONSTRAIN = (1-37, a1)'
ModelRasch <- mirt(data = N2, model = 1, itemtype = 'Rasch', SE = TRUE, verbose = FALSE)
Model1PL <- mirt(data = N2, model = 1, itemtype = '1PL', SE = TRUE, verbose = FALSE)
Model2PL <- mirt(data = N2, model = 1, itemtype = '2PL', SE = TRUE, verbose = FALSE)
Model3PL <- mirt(data = N2, model = 1, itemtype = '3PL', SE = TRUE, verbose = FALSE)
## Warning: EM cycles terminated after 500 iterations.
Model4PL <- mirt(data = N2, model = 1, itemtype = '4PL', SE = TRUE, verbose = FALSE)
## Warning: EM cycles terminated after 500 iterations.
##Model Rasch_N2
fitRasch <- itemfit(ModelRasch, fit_stats = "S_X2")
fitRasch <- data.frame(Butir = fitRasch$item, Chi = round(fitRasch$S_X2, 2),
pvalue = round(fitRasch$p.S_X2, 2),
Keputusan = ifelse(round(fitRasch$p.S_X2, 2)>= 0.05, "Cocok","Tidak Cocok"))
head(fitRasch)
## Butir Chi pvalue Keputusan
## 1 b1 16.61 0.34 Cocok
## 2 b2 21.78 0.19 Cocok
## 3 b3 26.07 0.04 Tidak Cocok
## 4 b4 17.27 0.37 Cocok
## 5 b5 21.25 0.22 Cocok
## 6 b6 26.16 0.07 Cocok
jumlah_fitRasch <- table(fitRasch$Keputusan)
jumlah_fitRasch
##
## Cocok Tidak Cocok
## 27 10
itemfit(ModelRasch, 'S_X2', empirical.plot = 9)
##Model 1PL_N2
fit1PL <- itemfit(Model1PL, fit_stats = "S_X2")
fit1PL <- data.frame(Butir = fit1PL$item, Chi = round(fit1PL$S_X2, 2), pvalue = round(fit1PL$p.S_X2, 2), Keputusan = ifelse(round(fit1PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit1PL)
## Butir Chi pvalue Keputusan
## 1 b1 16.68 0.41 Cocok
## 2 b2 21.18 0.27 Cocok
## 3 b3 25.77 0.06 Cocok
## 4 b4 17.25 0.44 Cocok
## 5 b5 23.72 0.25 Cocok
## 6 b6 26.13 0.10 Cocok
jumlah_fit1PL <- table(fit1PL$Keputusan)
jumlah_fit1PL
##
## Cocok Tidak Cocok
## 29 8
itemfit(Model1PL, 'S_X2', empirical.plot = 9)
##Model 2PL_N2
fit2PL <- itemfit(Model2PL, fit_stats = "S_X2")
fit2PL <- data.frame(Butir = fit2PL$item, Chi = round(fit2PL$S_X2, 2), pvalue = round(fit2PL$p.S_X2, 2), Keputusan = ifelse(round(fit2PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit2PL)
## Butir Chi pvalue Keputusan
## 1 b1 13.56 0.41 Cocok
## 2 b2 14.02 0.78 Cocok
## 3 b3 22.49 0.02 Tidak Cocok
## 4 b4 12.75 0.47 Cocok
## 5 b5 17.73 0.34 Cocok
## 6 b6 23.51 0.17 Cocok
jumlah_fit2PL <- table(fit2PL$Keputusan)
jumlah_fit2PL
##
## Cocok Tidak Cocok
## 34 3
itemfit(Model2PL, 'S_X2', empirical.plot = 9)
##Model 3PL_N2
fit3PL <- itemfit(Model3PL, fit_stats = "S_X2")
fit3PL <- data.frame(Butir = fit3PL$item, Chi = round(fit3PL$S_X2, 2), pvalue = round(fit3PL$p.S_X2, 2), Keputusan = ifelse(round(fit3PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit3PL)
## Butir Chi pvalue Keputusan
## 1 b1 12.79 0.38 Cocok
## 2 b2 18.19 0.51 Cocok
## 3 b3 16.39 0.04 Tidak Cocok
## 4 b4 15.07 0.30 Cocok
## 5 b5 17.89 0.27 Cocok
## 6 b6 19.31 0.20 Cocok
jumlah_fit3PL <- table(fit3PL$Keputusan)
jumlah_fit3PL
##
## Cocok Tidak Cocok
## 33 4
itemfit(Model3PL, 'S_X2', empirical.plot = 9)
##Model 4PL_N2
fit4PL <- itemfit(Model4PL, fit_stats = "S_X2")
fit4PL <- data.frame(Butir = fit4PL$item, Chi = round(fit4PL$S_X2, 2), pvalue = round(fit4PL$p.S_X2, 2), Keputusan = ifelse(round(fit4PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit4PL)
## Butir Chi pvalue Keputusan
## 1 b1 11.85 0.22 Cocok
## 2 b2 17.47 0.49 Cocok
## 3 b3 16.10 0.02 Tidak Cocok
## 4 b4 15.73 0.20 Cocok
## 5 b5 16.79 0.21 Cocok
## 6 b6 18.42 0.14 Cocok
jumlah_fit4PL <- table(fit4PL$Keputusan)
jumlah_fit4PL
##
## Cocok Tidak Cocok
## 31 6
itemfit(Model4PL, 'S_X2', empirical.plot = 9)
##AIC dan BIC_N2
anova(ModelRasch, Model1PL, Model2PL, Model3PL, Model4PL)
## AIC SABIC HQ BIC logLik X2 df p
## ModelRasch 7748.076 7753.024 7798.797 7873.412 -3836.038
## Model1PL 7800.165 7804.982 7849.551 7922.202 -3863.082 -54.089 -1 NaN
## Model2PL 7611.679 7621.315 7710.453 7855.754 -3731.839 262.486 37 0
## Model3PL 7536.254 7550.708 7684.415 7902.367 -3657.127 149.425 37 0
## Model4PL 7593.757 7613.028 7791.304 8081.908 -3648.878 16.498 37 0.999
##NFI Maks_N2
theta <- 0
nfi_rasch <- testinfo(ModelRasch, Theta = theta)
nfi_1pl <- testinfo(Model1PL, Theta = theta)
nfi_2pl <- testinfo(Model2PL, Theta = theta)
nfi_3pl <- testinfo(Model3PL, Theta = theta)
nfi_4pl <- testinfo(Model4PL, Theta = theta)
nfi_maks_df <- data.frame(Model = c("Rasch", "1PL", "2PL", "3PL", "4PL"), NFI_Maks = c(nfi_rasch, nfi_1pl, nfi_2pl, nfi_3pl, nfi_4pl))
nfi_maks_df
## Model NFI_Maks
## 1 Rasch 7.407140
## 2 1PL 7.584239
## 3 2PL 23.464835
## 4 3PL 47.882218
## 5 4PL 59.337281
#N3
N3 = read_xlsx("C:/Users/ENGGAR/OneDrive - uny.ac.id/Documents/UNY/Semester 4/Statpend/UTS_N500.xlsx")
head(N3)
## # A tibble: 6 × 37
## b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 1 0 0 0 1 0 1 1 0 0 0
## 2 1 0 1 1 1 0 1 0 1 1 0 0 0
## 3 1 0 0 0 0 0 0 1 0 0 0 0 0
## 4 1 0 0 1 1 0 0 0 0 0 1 0 0
## 5 1 0 0 0 0 0 0 1 1 1 1 1 0
## 6 1 1 0 1 0 1 1 1 1 0 0 1 0
## # ℹ 24 more variables: b14 <dbl>, b15 <dbl>, b16 <dbl>, b17 <dbl>, b18 <dbl>,
## # b19 <dbl>, b20 <dbl>, b21 <dbl>, b22 <dbl>, b23 <dbl>, b24 <dbl>,
## # b25 <dbl>, b26 <dbl>, b27 <dbl>, b28 <dbl>, b29 <dbl>, b30 <dbl>,
## # b31 <dbl>, b32 <dbl>, b33 <dbl>, b34 <dbl>, b35 <dbl>, b36 <dbl>, b37 <dbl>
model <- 'F1 = 1-37 CONSTRAIN = (1-37, a1)'
ModelRasch <- mirt(data = N3, model = 1, itemtype = 'Rasch', SE = TRUE, verbose = FALSE)
Model1PL <- mirt(data = N3, model = 1, itemtype = '1PL', SE = TRUE, verbose = FALSE)
Model2PL <- mirt(data = N3, model = 1, itemtype = '2PL', SE = TRUE, verbose = FALSE)
Model3PL <- mirt(data = N3, model = 1, itemtype = '3PL', SE = TRUE, verbose = FALSE)
Model4PL <- mirt(data = N3, model = 1, itemtype = '4PL', SE = TRUE, verbose = FALSE)
## Warning: EM cycles terminated after 500 iterations.
##Model Rasch_N3
fitRasch <- itemfit(ModelRasch, fit_stats = "S_X2")
fitRasch <- data.frame(Butir = fitRasch$item, Chi = round(fitRasch$S_X2, 2),
pvalue = round(fitRasch$p.S_X2, 2),
Keputusan = ifelse(round(fitRasch$p.S_X2, 2)>= 0.05, "Cocok","Tidak Cocok"))
head(fitRasch)
## Butir Chi pvalue Keputusan
## 1 b1 30.15 0.22 Cocok
## 2 b2 77.92 0.00 Tidak Cocok
## 3 b3 38.73 0.02 Tidak Cocok
## 4 b4 21.20 0.68 Cocok
## 5 b5 25.62 0.43 Cocok
## 6 b6 42.97 0.02 Tidak Cocok
jumlah_fitRasch <- table(fitRasch$Keputusan)
jumlah_fitRasch
##
## Cocok Tidak Cocok
## 22 15
itemfit(ModelRasch, 'S_X2', empirical.plot = 9)
##Model 1PL_N3
fit1PL <- itemfit(Model1PL, fit_stats = "S_X2")
fit1PL <- data.frame(Butir = fit1PL$item, Chi = round(fit1PL$S_X2, 2), pvalue = round(fit1PL$p.S_X2, 2), Keputusan = ifelse(round(fit1PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit1PL)
## Butir Chi pvalue Keputusan
## 1 b1 30.04 0.27 Cocok
## 2 b2 76.66 0.00 Tidak Cocok
## 3 b3 38.79 0.03 Tidak Cocok
## 4 b4 21.32 0.73 Cocok
## 5 b5 25.75 0.48 Cocok
## 6 b6 43.08 0.03 Tidak Cocok
jumlah_fit1PL <- table(fit1PL$Keputusan)
jumlah_fit1PL
##
## Cocok Tidak Cocok
## 24 13
itemfit(Model1PL, 'S_X2', empirical.plot = 9)
##Model 2PL_N3
fit2PL <- itemfit(Model2PL, fit_stats = "S_X2")
fit2PL <- data.frame(Butir = fit2PL$item, Chi = round(fit2PL$S_X2, 2), pvalue = round(fit2PL$p.S_X2, 2), Keputusan = ifelse(round(fit2PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit2PL)
## Butir Chi pvalue Keputusan
## 1 b1 27.41 0.29 Cocok
## 2 b2 32.56 0.25 Cocok
## 3 b3 13.60 0.70 Cocok
## 4 b4 14.49 0.88 Cocok
## 5 b5 19.62 0.61 Cocok
## 6 b6 39.61 0.02 Tidak Cocok
jumlah_fit2PL <- table(fit2PL$Keputusan)
jumlah_fit2PL
##
## Cocok Tidak Cocok
## 32 5
itemfit(Model2PL, 'S_X2', empirical.plot = 9)
##Model 3PL_N3
fit3PL <- itemfit(Model3PL, fit_stats = "S_X2")
fit3PL <- data.frame(Butir = fit3PL$item, Chi = round(fit3PL$S_X2, 2), pvalue = round(fit3PL$p.S_X2, 2), Keputusan = ifelse(round(fit3PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit3PL)
## Butir Chi pvalue Keputusan
## 1 b1 26.23 0.24 Cocok
## 2 b2 24.15 0.57 Cocok
## 3 b3 12.50 0.77 Cocok
## 4 b4 16.66 0.83 Cocok
## 5 b5 20.80 0.53 Cocok
## 6 b6 37.61 0.02 Tidak Cocok
jumlah_fit3PL <- table(fit3PL$Keputusan)
jumlah_fit3PL
##
## Cocok Tidak Cocok
## 33 4
itemfit(Model3PL, 'S_X2', empirical.plot = 9)
##Model 4PL_N3
fit4PL <- itemfit(Model4PL, fit_stats = "S_X2")
fit4PL <- data.frame(Butir = fit4PL$item, Chi = round(fit4PL$S_X2, 2), pvalue = round(fit4PL$p.S_X2, 2), Keputusan = ifelse(round(fit4PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit4PL)
## Butir Chi pvalue Keputusan
## 1 b1 20.63 0.48 Cocok
## 2 b2 23.92 0.52 Cocok
## 3 b3 12.39 0.72 Cocok
## 4 b4 14.22 0.82 Cocok
## 5 b5 20.48 0.49 Cocok
## 6 b6 37.65 0.01 Tidak Cocok
jumlah_fit4PL <- table(fit4PL$Keputusan)
jumlah_fit4PL
##
## Cocok Tidak Cocok
## 34 3
itemfit(Model4PL, 'S_X2', empirical.plot = 9)
##AIC dan BIC_N3
anova(ModelRasch, Model1PL, Model2PL, Model3PL, Model4PL)
## AIC SABIC HQ BIC logLik X2 df p
## ModelRasch 20450.47 20490.01 20513.32 20610.63 -10187.237
## Model1PL 20499.28 20537.78 20560.47 20655.22 -10212.642 -50.811 -1 NaN
## Model2PL 20133.49 20210.49 20255.87 20445.37 -9992.746 439.793 37 0
## Model3PL 19916.36 20031.86 20099.93 20384.18 -9847.181 291.13 37 0
## Model4PL 19956.82 20110.82 20201.58 20580.58 -9830.410 33.542 37 0.632
##NFI Maks_N3
theta <- 0
nfi_rasch <- testinfo(ModelRasch, Theta = theta)
nfi_1pl <- testinfo(Model1PL, Theta = theta)
nfi_2pl <- testinfo(Model2PL, Theta = theta)
nfi_3pl <- testinfo(Model3PL, Theta = theta)
nfi_4pl <- testinfo(Model4PL, Theta = theta)
nfi_maks_df <- data.frame(Model = c("Rasch", "1PL", "2PL", "3PL", "4PL"), NFI_Maks = c(nfi_rasch, nfi_1pl, nfi_2pl, nfi_3pl, nfi_4pl))
nfi_maks_df
## Model NFI_Maks
## 1 Rasch 7.806951
## 2 1PL 7.885664
## 3 2PL 17.285702
## 4 3PL 23.087843
## 5 4PL 32.847743
#N4
N4 = read_xlsx("C:/Users/ENGGAR/OneDrive - uny.ac.id/Documents/UNY/Semester 4/Statpend/UTS_N1000.xlsx")
head(N4)
## # A tibble: 6 × 37
## b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 1 0 0 0 1 0 1 1 0 0 0
## 2 1 0 1 1 1 0 1 0 1 1 0 0 0
## 3 1 0 0 0 0 0 0 1 0 0 0 0 0
## 4 1 0 0 1 1 0 0 0 0 0 1 0 0
## 5 1 0 0 0 0 0 0 1 1 1 1 1 0
## 6 1 1 0 1 0 1 1 1 1 0 0 1 0
## # ℹ 24 more variables: b14 <dbl>, b15 <dbl>, b16 <dbl>, b17 <dbl>, b18 <dbl>,
## # b19 <dbl>, b20 <dbl>, b21 <dbl>, b22 <dbl>, b23 <dbl>, b24 <dbl>,
## # b25 <dbl>, b26 <dbl>, b27 <dbl>, b28 <dbl>, b29 <dbl>, b30 <dbl>,
## # b31 <dbl>, b32 <dbl>, b33 <dbl>, b34 <dbl>, b35 <dbl>, b36 <dbl>, b37 <dbl>
model <- 'F1 = 1-37 CONSTRAIN = (1-37, a1)'
ModelRasch <- mirt(data = N4, model = 1, itemtype = 'Rasch', SE = TRUE, verbose = FALSE)
Model1PL <- mirt(data = N4, model = 1, itemtype = '1PL', SE = TRUE, verbose = FALSE)
Model2PL <- mirt(data = N4, model = 1, itemtype = '2PL', SE = TRUE, verbose = FALSE)
Model3PL <- mirt(data = N4, model = 1, itemtype = '3PL', SE = TRUE, verbose = FALSE)
## Warning: EM cycles terminated after 500 iterations.
Model4PL <- mirt(data = N4, model = 1, itemtype = '4PL', SE = TRUE, verbose = FALSE)
##Model Rasch_N4
fitRasch <- itemfit(ModelRasch, fit_stats = "S_X2")
fitRasch <- data.frame(Butir = fitRasch$item, Chi = round(fitRasch$S_X2, 2),
pvalue = round(fitRasch$p.S_X2, 2),
Keputusan = ifelse(round(fitRasch$p.S_X2, 2)>= 0.05, "Cocok","Tidak Cocok"))
head(fitRasch)
## Butir Chi pvalue Keputusan
## 1 b1 28.43 0.44 Cocok
## 2 b2 94.06 0.00 Tidak Cocok
## 3 b3 67.14 0.00 Tidak Cocok
## 4 b4 34.12 0.16 Cocok
## 5 b5 27.76 0.42 Cocok
## 6 b6 45.47 0.01 Tidak Cocok
jumlah_fitRasch <- table(fitRasch$Keputusan)
jumlah_fitRasch
##
## Cocok Tidak Cocok
## 14 23
itemfit(ModelRasch, 'S_X2', empirical.plot = 9)
##Model 1PL_N4
fit1PL <- itemfit(Model1PL, fit_stats = "S_X2")
fit1PL <- data.frame(Butir = fit1PL$item, Chi = round(fit1PL$S_X2, 2), pvalue = round(fit1PL$p.S_X2, 2), Keputusan = ifelse(round(fit1PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit1PL)
## Butir Chi pvalue Keputusan
## 1 b1 28.49 0.49 Cocok
## 2 b2 92.10 0.00 Tidak Cocok
## 3 b3 67.26 0.00 Tidak Cocok
## 4 b4 34.49 0.19 Cocok
## 5 b5 28.14 0.46 Cocok
## 6 b6 45.73 0.02 Tidak Cocok
jumlah_fit1PL <- table(fit1PL$Keputusan)
jumlah_fit1PL
##
## Cocok Tidak Cocok
## 15 22
itemfit(Model1PL, 'S_X2', empirical.plot = 9)
##Model 2PL_N4
fit2PL <- itemfit(Model2PL, fit_stats = "S_X2")
fit2PL <- data.frame(Butir = fit2PL$item, Chi = round(fit2PL$S_X2, 2), pvalue = round(fit2PL$p.S_X2, 2), Keputusan = ifelse(round(fit2PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit2PL)
## Butir Chi pvalue Keputusan
## 1 b1 27.05 0.41 Cocok
## 2 b2 25.50 0.65 Cocok
## 3 b3 23.93 0.25 Cocok
## 4 b4 23.34 0.56 Cocok
## 5 b5 14.90 0.96 Cocok
## 6 b6 37.83 0.06 Cocok
jumlah_fit2PL <- table(fit2PL$Keputusan)
jumlah_fit2PL
##
## Cocok Tidak Cocok
## 30 7
itemfit(Model2PL, 'S_X2', empirical.plot = 9)
##Model 3PL_N4
fit3PL <- itemfit(Model3PL, fit_stats = "S_X2")
fit3PL <- data.frame(Butir = fit3PL$item, Chi = round(fit3PL$S_X2, 2), pvalue = round(fit3PL$p.S_X2, 2), Keputusan = ifelse(round(fit3PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit3PL)
## Butir Chi pvalue Keputusan
## 1 b1 26.68 0.37 Cocok
## 2 b2 16.82 0.91 Cocok
## 3 b3 28.11 0.14 Cocok
## 4 b4 24.80 0.47 Cocok
## 5 b5 14.84 0.95 Cocok
## 6 b6 29.76 0.19 Cocok
jumlah_fit3PL <- table(fit3PL$Keputusan)
jumlah_fit3PL
##
## Cocok Tidak Cocok
## 36 1
itemfit(Model3PL, 'S_X2', empirical.plot = 9)
##Model 4PL_N4
fit4PL <- itemfit(Model4PL, fit_stats = "S_X2")
fit4PL <- data.frame(Butir = fit4PL$item, Chi = round(fit4PL$S_X2, 2), pvalue = round(fit4PL$p.S_X2, 2), Keputusan = ifelse(round(fit4PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit4PL)
## Butir Chi pvalue Keputusan
## 1 b1 23.15 0.57 Cocok
## 2 b2 16.45 0.90 Cocok
## 3 b3 27.34 0.13 Cocok
## 4 b4 23.76 0.48 Cocok
## 5 b5 12.33 0.97 Cocok
## 6 b6 29.59 0.16 Cocok
jumlah_fit4PL <- table(fit4PL$Keputusan)
jumlah_fit4PL
##
## Cocok Tidak Cocok
## 34 3
itemfit(Model4PL, 'S_X2', empirical.plot = 9)
##AIC dan BIC_N4
anova(ModelRasch, Model1PL, Model2PL, Model3PL, Model4PL)
## AIC SABIC HQ BIC logLik X2 df p
## ModelRasch 40760.02 40825.82 40830.90 40946.51 -20342.01
## Model1PL 40876.86 40940.93 40945.87 41058.44 -20401.43 -118.839 -1 NaN
## Model2PL 40067.12 40195.27 40205.15 40430.30 -19959.56 883.736 37 0
## Model3PL 39609.04 39801.26 39816.09 40153.80 -19693.52 532.078 37 0
## Model4PL 39657.77 39914.06 39933.83 40384.12 -19680.88 25.275 37 0.928
##NFI Maks_N4
theta <- 0
nfi_rasch <- testinfo(ModelRasch, Theta = theta)
nfi_1pl <- testinfo(Model1PL, Theta = theta)
nfi_2pl <- testinfo(Model2PL, Theta = theta)
nfi_3pl <- testinfo(Model3PL, Theta = theta)
nfi_4pl <- testinfo(Model4PL, Theta = theta)
nfi_maks_df <- data.frame(Model = c("Rasch", "1PL", "2PL", "3PL", "4PL"), NFI_Maks = c(nfi_rasch, nfi_1pl, nfi_2pl, nfi_3pl, nfi_4pl))
nfi_maks_df
## Model NFI_Maks
## 1 Rasch 7.874828
## 2 1PL 7.956241
## 3 2PL 17.969249
## 4 3PL 25.677394
## 5 4PL 32.889434
#N5
N5 = read_xlsx("C:/Users/ENGGAR/OneDrive - uny.ac.id/Documents/UNY/Semester 4/Statpend/UTS_N1500.xlsx")
head(N5)
## # A tibble: 6 × 37
## b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 0 0 0 0 0 0 1 1 0 0 0 0
## 2 1 1 1 1 0 0 1 0 1 1 1 1 1
## 3 1 0 1 1 1 0 0 1 0 1 1 1 0
## 4 1 1 1 1 1 1 1 1 1 1 1 1 1
## 5 1 1 1 1 1 1 1 1 1 1 1 1 1
## 6 0 0 0 0 0 0 0 0 0 0 1 0 0
## # ℹ 24 more variables: b14 <dbl>, b15 <dbl>, b16 <dbl>, b17 <dbl>, b18 <dbl>,
## # b19 <dbl>, b20 <dbl>, b21 <dbl>, b22 <dbl>, b23 <dbl>, b24 <dbl>,
## # b25 <dbl>, b26 <dbl>, b27 <dbl>, b28 <dbl>, b29 <dbl>, b30 <dbl>,
## # b31 <dbl>, b32 <dbl>, b33 <dbl>, b34 <dbl>, b35 <dbl>, b36 <dbl>, b37 <dbl>
model <- 'F1 = 1-37 CONSTRAIN = (1-37, a1)'
ModelRasch <- mirt(data = N5, model = 1, itemtype = 'Rasch', SE = TRUE, verbose = FALSE)
Model1PL <- mirt(data = N5, model = 1, itemtype = '1PL', SE = TRUE, verbose = FALSE)
Model2PL <- mirt(data = N5, model = 1, itemtype = '2PL', SE = TRUE, verbose = FALSE)
Model3PL <- mirt(data = N5, model = 1, itemtype = '3PL', SE = TRUE, verbose = FALSE)
## Warning: EM cycles terminated after 500 iterations.
Model4PL <- mirt(data = N5, model = 1, itemtype = '4PL', SE = TRUE, verbose = FALSE)
##Model Rasch_N5
fitRasch <- itemfit(ModelRasch, fit_stats = "S_X2")
fitRasch <- data.frame(Butir = fitRasch$item, Chi = round(fitRasch$S_X2, 2),
pvalue = round(fitRasch$p.S_X2, 2),
Keputusan = ifelse(round(fitRasch$p.S_X2, 2)>= 0.05, "Cocok","Tidak Cocok"))
head(fitRasch)
## Butir Chi pvalue Keputusan
## 1 b1 37.74 0.10 Cocok
## 2 b2 119.12 0.00 Tidak Cocok
## 3 b3 82.89 0.00 Tidak Cocok
## 4 b4 31.22 0.31 Cocok
## 5 b5 46.26 0.02 Tidak Cocok
## 6 b6 42.79 0.05 Cocok
jumlah_fitRasch <- table(fitRasch$Keputusan)
jumlah_fitRasch
##
## Cocok Tidak Cocok
## 11 26
itemfit(ModelRasch, 'S_X2', empirical.plot = 9)
##Model 1PL_N5
fit1PL <- itemfit(Model1PL, fit_stats = "S_X2")
fit1PL <- data.frame(Butir = fit1PL$item, Chi = round(fit1PL$S_X2, 2), pvalue = round(fit1PL$p.S_X2, 2), Keputusan = ifelse(round(fit1PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit1PL)
## Butir Chi pvalue Keputusan
## 1 b1 37.76 0.13 Cocok
## 2 b2 116.32 0.00 Tidak Cocok
## 3 b3 83.10 0.00 Tidak Cocok
## 4 b4 31.77 0.33 Cocok
## 5 b5 46.99 0.02 Tidak Cocok
## 6 b6 43.19 0.06 Cocok
jumlah_fit1PL <- table(fit1PL$Keputusan)
jumlah_fit1PL
##
## Cocok Tidak Cocok
## 13 24
itemfit(Model1PL, 'S_X2', empirical.plot = 9)
##Model 2PL_N5
fit2PL <- itemfit(Model2PL, fit_stats = "S_X2")
fit2PL <- data.frame(Butir = fit2PL$item, Chi = round(fit2PL$S_X2, 2), pvalue = round(fit2PL$p.S_X2, 2), Keputusan = ifelse(round(fit2PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit2PL)
## Butir Chi pvalue Keputusan
## 1 b1 34.84 0.14 Cocok
## 2 b2 25.03 0.72 Cocok
## 3 b3 21.99 0.52 Cocok
## 4 b4 16.69 0.94 Cocok
## 5 b5 19.14 0.83 Cocok
## 6 b6 30.16 0.31 Cocok
jumlah_fit2PL <- table(fit2PL$Keputusan)
jumlah_fit2PL
##
## Cocok Tidak Cocok
## 26 11
itemfit(Model2PL, 'S_X2', empirical.plot = 9)
##Model 3PL_N5
fit3PL <- itemfit(Model3PL, fit_stats = "S_X2")
fit3PL <- data.frame(Butir = fit3PL$item, Chi = round(fit3PL$S_X2, 2), pvalue = round(fit3PL$p.S_X2, 2), Keputusan = ifelse(round(fit3PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit3PL)
## Butir Chi pvalue Keputusan
## 1 b1 33.61 0.12 Cocok
## 2 b2 18.34 0.92 Cocok
## 3 b3 24.35 0.33 Cocok
## 4 b4 18.17 0.90 Cocok
## 5 b5 18.74 0.81 Cocok
## 6 b6 24.85 0.53 Cocok
jumlah_fit3PL <- table(fit3PL$Keputusan)
jumlah_fit3PL
##
## Cocok Tidak Cocok
## 35 2
itemfit(Model3PL, 'S_X2', empirical.plot = 9)
##Model 4PL_N5
fit4PL <- itemfit(Model4PL, fit_stats = "S_X2")
fit4PL <- data.frame(Butir = fit4PL$item, Chi = round(fit4PL$S_X2, 2), pvalue = round(fit4PL$p.S_X2, 2), Keputusan = ifelse(round(fit4PL$p.S_X2, 2)>=0.05, "Cocok","Tidak Cocok"))
head(fit4PL)
## Butir Chi pvalue Keputusan
## 1 b1 27.15 0.40 Cocok
## 2 b2 17.84 0.91 Cocok
## 3 b3 24.16 0.29 Cocok
## 4 b4 17.31 0.87 Cocok
## 5 b5 18.77 0.76 Cocok
## 6 b6 24.81 0.47 Cocok
jumlah_fit4PL <- table(fit4PL$Keputusan)
jumlah_fit4PL
##
## Cocok Tidak Cocok
## 33 4
itemfit(Model4PL, 'S_X2', empirical.plot = 9)
##AIC dan BIC_N5
anova(ModelRasch, Model1PL, Model2PL, Model3PL, Model4PL)
## AIC SABIC HQ BIC logLik X2 df p
## ModelRasch 61095.79 61176.97 61171.00 61297.69 -30509.89
## Model1PL 61284.07 61363.12 61357.31 61480.66 -30605.04 -190.288 -1 NaN
## Model2PL 60015.59 60173.69 60162.07 60408.77 -29933.80 1342.481 37 0
## Model3PL 59339.59 59576.75 59559.30 59929.36 -29558.80 750 37 0
## Model4PL 59386.78 59702.98 59679.72 60173.13 -29545.39 26.817 37 0.891
##NFI Maks_N5
theta <- 0
nfi_rasch <- testinfo(ModelRasch, Theta = theta)
nfi_1pl <- testinfo(Model1PL, Theta = theta)
nfi_2pl <- testinfo(Model2PL, Theta = theta)
nfi_3pl <- testinfo(Model3PL, Theta = theta)
nfi_4pl <- testinfo(Model4PL, Theta = theta)
nfi_maks_df <- data.frame(Model = c("Rasch", "1PL", "2PL", "3PL", "4PL"), NFI_Maks = c(nfi_rasch, nfi_1pl, nfi_2pl, nfi_3pl, nfi_4pl))
nfi_maks_df
## Model NFI_Maks
## 1 Rasch 7.885592
## 2 1PL 7.971389
## 3 2PL 18.543268
## 4 3PL 25.974458
## 5 4PL 30.944337