Bu çalışmada, çoktan seçmeli test maddelerine verilen öğrenci yanıtları üzerinden, madde kalitesini değerlendirme, tek boyutluluk varsayımını sınama, hiyerarşik doğrusal model kurma ve farklı işleyen madde (DIF) analizi gerçekleştirilmiştir.
Gerekli Paketler
library(tidyverse)
library(data.table)
library(mirt)
library(lme4)
library(lmerTest)
library(difR)
library(WrightMap)
library(kableExtra)
library(broom.mixed)
library(ggeffects)
library(haven)
library(patchwork)
library(psych)
library(ltm)
library(ggplot2)
library(ggpubr)
library(knitr)
library(kableExtra)
library(dplyr)
library(magrittr)
1. VERİ YÜKLEME VE TANIMLAMA
df <- read_sav("C:/Users/Lenovo/Desktop/processed_data.sav")
Cinsiyet Dağılımları
df %>%
mutate(ITEM = as.character(ITEM))
## # A tibble: 109,122 × 29
## IDCNT IDSTU ITEM SCORE FAT TT RT COND COGD ITSEX SCM PHEL
## <dbl> <dbl> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 578 50010106 26 2 23.4 25.6 2.24 3 1 2 15.6 5
## 2 504 50010117 26 1 21.8 24.4 2.59 3 1 2 10.2 1
## 3 246 50010124 26 0 7.91 7.91 0 3 1 2 9.95 -9999
## 4 504 50010125 26 1 66.7 66.7 0 3 1 2 9.50 -9999
## 5 246 50010206 26 2 101. 101. 0 3 1 2 8.49 5
## 6 504 50010209 26 1 72.7 72.7 0 3 1 2 9.95 3
## 7 76 50010210 26 1 7.43 7.43 0 3 1 1 4.42 5
## 8 504 50010220 26 2 50.6 50.6 0 3 1 2 10.0 1
## 9 246 50010222 26 1 38.0 38.0 0 3 1 1 8.18 3
## 10 76 50010225 26 1 20.4 20.4 0 3 1 1 9.95 5
## # ℹ 109,112 more rows
## # ℹ 17 more variables: CNTA <dbl>, RESP <dbl>, CORR <dbl>, RT_RW <dbl>,
## # RAPID <dbl>, REVW <dbl>, RT_typ <dbl+lbl>, SOLVE <dbl>, ACCRCY <dbl>,
## # PRPD <dbl>, PREV <dbl>, PSOL <dbl>, PSREV <dbl>, Q1FAT <dbl>, Q3RT <dbl>,
## # FATlog <dbl>, Q1logFAT <dbl>
setDT(df)
n_students <- df[RESP == 1, uniqueN(IDSTU)]
cinsiyet_dagilimi <- unique(df, by = "IDSTU")[, .N, by = ITSEX]
kable(cinsiyet_dagilimi) %>%
kable_styling()
| ITSEX | N |
|---|---|
| 2 | 2100 |
| 1 | 2096 |
| 9 | 1 |
#ITSEX 9 olan gözlemi silelim
df <- df[ITSEX != 9]
2. MADDE KALİTE KONTROLÜ
Hambleton ve diğerleri (1991), madde analizinde, madde güçlüğü (p-doğru) ve madde ayırt ediciliği (standart sapma) temel kalite göstergeleridir demişlerdir. Bu analizde, literatüre uygun olarak, yalnızca %5 < p < %95 ve standart sapma > 0.05 olan maddeler geçerli kabul edilmiştir. Bu eşikler, hem çok kolay hem de çok zor maddeleri dışlamak ve ayırt edici olmayan maddeleri elemek amacıyla belirlenmiştir. 26 madde bu ölçütleri karşılamış ve analizde yer almaya uygun bulunmuştur. Bu maddelerin p-değerleri 0.195 ile 0.787 arasında değişmekte olup, yeterli varyansa sahip oldukları (standart sapmalar genelde > 0.45) görülmektedir. Bu, maddelerin hem öğrenci başarı düzeylerini yansıtma hem de bireyler arasında ayırt edicilik sağlama açısından uygun olduğunu göstermektedir.
item_quality <- df[RESP == 1, .(
p_correct = mean(SCORE == 2),
sd_score = sd(SCORE == 2)
), by = ITEM][p_correct > 0.05 & p_correct < 0.95 & sd_score > 0.05]
df <- df[ITEM %in% item_quality$ITEM]
kable(item_quality, caption = "Madde Kalite Kontrolü", digits = 3) %>%
kable_styling()
| ITEM | p_correct | sd_score |
|---|---|---|
| 26 | 0.281 | 0.450 |
| 7 | 0.414 | 0.493 |
| 22 | 0.310 | 0.462 |
| 24 | 0.307 | 0.461 |
| 13 | 0.430 | 0.495 |
| 23 | 0.300 | 0.458 |
| 9 | 0.423 | 0.494 |
| 17 | 0.388 | 0.487 |
| 1 | 0.352 | 0.478 |
| 4 | 0.610 | 0.488 |
| 15 | 0.357 | 0.479 |
| 18 | 0.374 | 0.484 |
| 6 | 0.485 | 0.500 |
| 16 | 0.349 | 0.477 |
| 25 | 0.346 | 0.476 |
| 5 | 0.492 | 0.500 |
| 21 | 0.195 | 0.396 |
| 19 | 0.301 | 0.459 |
| 2 | 0.423 | 0.494 |
| 12 | 0.253 | 0.435 |
| 3 | 0.787 | 0.410 |
| 20 | 0.395 | 0.489 |
| 8 | 0.441 | 0.497 |
| 10 | 0.327 | 0.469 |
| 14 | 0.623 | 0.485 |
| 11 | 0.551 | 0.497 |
3. IRT (2PL) ANALİZİ – Tek Faktörlü Model
Tek boyutluluk
library(EGAnet)
## [1;m[4;m
## EGAnet (version 2.3.0)[0m[0m
##
## For help getting started, see <https://r-ega.net>
##
## For bugs and errors, submit an issue to <https://github.com/hfgolino/EGAnet/issues>
##
## Attaching package: 'EGAnet'
## The following object is masked from 'package:ltm':
##
## information
library(tidyr)
library(dplyr)
# 1. Yalnızca yanıtlanan maddeleri seç ve ikili skorla
ega_data <- df[RESP == 1, .(IDSTU, ITEM, SCORE_bin = ifelse(SCORE == 2, 1, 0))] %>%
pivot_wider(names_from = ITEM, values_from = SCORE_bin) %>%
dplyr::select(-IDSTU) # EGA, bireysel ID'yi değil sadece madde skorlarını ister
# 2. Tek boyutluluk analizi (EGA)
EGA_result <- EGA(
data = as.data.frame(ega_data),
type = "polychoric", # çünkü veriler ikili/dikotom
plot = TRUE,
title = "EGA - Tek Boyutluluk Testi"
)
EGA analizi sonucu, maddelerin tek bir faktör altında toplandığını ve IRT modellemesi için uygun olduğunu gösteriyor.
Yerel Bağımsızlık
library(mirt)
# 1. Veri hazırlığı
df_items <- df[RESP == 1, .(IDSTU, ITEM, SCORE_bin = ifelse(SCORE == 2, 1, 0))]
df_items <- dcast(df_items, IDSTU ~ ITEM, value.var = "SCORE_bin")
# 2. 2PL modeli kur (veya 3PL, ama 2PL daha stabildir)
irt_model <- mirt(df_items[, -1], model = 1, itemtype = "2PL")
## Iteration: 1, Log-Lik: -47538.712, Max-Change: 1.51044Iteration: 2, Log-Lik: -44164.458, Max-Change: 0.59640Iteration: 3, Log-Lik: -43319.619, Max-Change: 0.36893Iteration: 4, Log-Lik: -42943.438, Max-Change: 0.22624Iteration: 5, Log-Lik: -42766.361, Max-Change: 0.19578Iteration: 6, Log-Lik: -42667.531, Max-Change: 0.18642Iteration: 7, Log-Lik: -42611.992, Max-Change: 0.14372Iteration: 8, Log-Lik: -42578.180, Max-Change: 0.10990Iteration: 9, Log-Lik: -42555.864, Max-Change: 0.10305Iteration: 10, Log-Lik: -42542.729, Max-Change: 0.07105Iteration: 11, Log-Lik: -42534.320, Max-Change: 0.05732Iteration: 12, Log-Lik: -42529.199, Max-Change: 0.05136Iteration: 13, Log-Lik: -42525.856, Max-Change: 0.02932Iteration: 14, Log-Lik: -42523.832, Max-Change: 0.02788Iteration: 15, Log-Lik: -42522.465, Max-Change: 0.01941Iteration: 16, Log-Lik: -42520.086, Max-Change: 0.00698Iteration: 17, Log-Lik: -42519.898, Max-Change: 0.00556Iteration: 18, Log-Lik: -42519.754, Max-Change: 0.00551Iteration: 19, Log-Lik: -42519.164, Max-Change: 0.00787Iteration: 20, Log-Lik: -42519.110, Max-Change: 0.00289Iteration: 21, Log-Lik: -42519.066, Max-Change: 0.00261Iteration: 22, Log-Lik: -42518.856, Max-Change: 0.00174Iteration: 23, Log-Lik: -42518.837, Max-Change: 0.00168Iteration: 24, Log-Lik: -42518.820, Max-Change: 0.00133Iteration: 25, Log-Lik: -42518.763, Max-Change: 0.00172Iteration: 26, Log-Lik: -42518.754, Max-Change: 0.00127Iteration: 27, Log-Lik: -42518.745, Max-Change: 0.00120Iteration: 28, Log-Lik: -42518.704, Max-Change: 0.00200Iteration: 29, Log-Lik: -42518.698, Max-Change: 0.00091Iteration: 30, Log-Lik: -42518.694, Max-Change: 0.00079Iteration: 31, Log-Lik: -42518.677, Max-Change: 0.00118Iteration: 32, Log-Lik: -42518.675, Max-Change: 0.00059Iteration: 33, Log-Lik: -42518.673, Max-Change: 0.00052Iteration: 34, Log-Lik: -42518.666, Max-Change: 0.00093Iteration: 35, Log-Lik: -42518.665, Max-Change: 0.00024Iteration: 36, Log-Lik: -42518.665, Max-Change: 0.00023Iteration: 37, Log-Lik: -42518.664, Max-Change: 0.00022Iteration: 38, Log-Lik: -42518.663, Max-Change: 0.00021Iteration: 39, Log-Lik: -42518.663, Max-Change: 0.00020Iteration: 40, Log-Lik: -42518.661, Max-Change: 0.00016Iteration: 41, Log-Lik: -42518.661, Max-Change: 0.00015Iteration: 42, Log-Lik: -42518.661, Max-Change: 0.00015Iteration: 43, Log-Lik: -42518.660, Max-Change: 0.00012Iteration: 44, Log-Lik: -42518.660, Max-Change: 0.00011Iteration: 45, Log-Lik: -42518.660, Max-Change: 0.00011Iteration: 46, Log-Lik: -42518.659, Max-Change: 0.00009
# 3. Kalıntı korelasyon matrisini hesapla
resid_cor <- residuals(irt_model, type = "Q3") # Q3 = Yeniden tahmin edilmiş korelasyonlar
## Q3 summary statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.213 -0.068 -0.042 -0.041 -0.012 0.181
##
## 1 2 3 4 5 6 7 8 9 10 11
## 1 1.000 -0.023 -0.015 -0.072 -0.012 0.009 0.031 -0.080 -0.105 -0.068 -0.049
## 2 -0.023 1.000 -0.058 -0.078 0.009 0.076 -0.035 -0.058 -0.111 -0.023 -0.061
## 3 -0.015 -0.058 1.000 -0.064 -0.032 -0.005 -0.015 -0.027 -0.051 -0.051 0.012
## 4 -0.072 -0.078 -0.064 1.000 -0.040 -0.054 -0.042 -0.002 -0.017 -0.032 -0.082
## 5 -0.012 0.009 -0.032 -0.040 1.000 0.043 -0.015 -0.045 -0.071 -0.048 0.014
## 6 0.009 0.076 -0.005 -0.054 0.043 1.000 -0.058 -0.032 -0.132 -0.070 0.028
## 7 0.031 -0.035 -0.015 -0.042 -0.015 -0.058 1.000 -0.037 -0.129 -0.003 -0.062
## 8 -0.080 -0.058 -0.027 -0.002 -0.045 -0.032 -0.037 1.000 -0.022 -0.056 -0.010
## 9 -0.105 -0.111 -0.051 -0.017 -0.071 -0.132 -0.129 -0.022 1.000 -0.072 -0.060
## 10 -0.068 -0.023 -0.051 -0.032 -0.048 -0.070 -0.003 -0.056 -0.072 1.000 -0.039
## 11 -0.049 -0.061 0.012 -0.082 0.014 0.028 -0.062 -0.010 -0.060 -0.039 1.000
## 12 -0.019 0.020 -0.019 -0.043 0.017 0.007 -0.050 -0.069 -0.086 -0.009 -0.063
## 13 -0.137 -0.144 -0.039 -0.003 -0.039 -0.136 -0.117 -0.022 0.181 -0.063 -0.022
## 14 -0.039 -0.056 0.018 -0.046 0.008 0.016 -0.088 0.011 -0.068 -0.065 0.084
## 15 -0.069 0.014 -0.017 -0.040 0.007 -0.012 -0.051 -0.047 -0.111 -0.073 -0.056
## 16 -0.067 -0.164 -0.051 0.012 -0.078 -0.213 -0.035 0.029 0.019 0.024 -0.058
## 17 -0.066 -0.068 -0.034 -0.047 -0.053 -0.058 -0.052 -0.007 -0.036 -0.005 0.012
## 18 -0.121 -0.042 -0.029 0.002 -0.024 -0.069 -0.068 -0.030 0.006 0.009 -0.039
## 19 -0.046 -0.018 -0.018 -0.062 -0.005 -0.073 -0.082 -0.019 -0.044 -0.086 0.003
## 20 -0.052 0.025 -0.027 -0.050 0.000 0.002 -0.081 -0.086 -0.159 -0.041 -0.037
## 21 -0.070 -0.053 -0.025 -0.011 -0.042 -0.065 -0.028 -0.042 0.010 -0.080 -0.075
## 22 -0.089 -0.106 -0.029 -0.042 -0.056 -0.095 -0.055 -0.014 -0.041 -0.064 -0.033
## 23 -0.081 -0.075 -0.047 -0.019 -0.038 -0.085 -0.049 0.001 0.049 -0.034 -0.017
## 24 -0.023 -0.065 -0.010 -0.023 -0.067 -0.080 -0.085 -0.048 -0.062 -0.051 0.011
## 25 -0.039 -0.005 0.013 0.002 -0.023 0.010 -0.110 -0.049 -0.089 -0.068 -0.036
## 26 -0.045 -0.043 -0.013 -0.006 -0.047 -0.049 -0.007 -0.055 -0.049 -0.054 -0.090
## 12 13 14 15 16 17 18 19 20 21 22
## 1 -0.019 -0.137 -0.039 -0.069 -0.067 -0.066 -0.121 -0.046 -0.052 -0.070 -0.089
## 2 0.020 -0.144 -0.056 0.014 -0.164 -0.068 -0.042 -0.018 0.025 -0.053 -0.106
## 3 -0.019 -0.039 0.018 -0.017 -0.051 -0.034 -0.029 -0.018 -0.027 -0.025 -0.029
## 4 -0.043 -0.003 -0.046 -0.040 0.012 -0.047 0.002 -0.062 -0.050 -0.011 -0.042
## 5 0.017 -0.039 0.008 0.007 -0.078 -0.053 -0.024 -0.005 0.000 -0.042 -0.056
## 6 0.007 -0.136 0.016 -0.012 -0.213 -0.058 -0.069 -0.073 0.002 -0.065 -0.095
## 7 -0.050 -0.117 -0.088 -0.051 -0.035 -0.052 -0.068 -0.082 -0.081 -0.028 -0.055
## 8 -0.069 -0.022 0.011 -0.047 0.029 -0.007 -0.030 -0.019 -0.086 -0.042 -0.014
## 9 -0.086 0.181 -0.068 -0.111 0.019 -0.036 0.006 -0.044 -0.159 0.010 -0.041
## 10 -0.009 -0.063 -0.065 -0.073 0.024 -0.005 0.009 -0.086 -0.041 -0.080 -0.064
## 11 -0.063 -0.022 0.084 -0.056 -0.058 0.012 -0.039 0.003 -0.037 -0.075 -0.033
## 12 1.000 -0.095 -0.018 -0.018 -0.067 -0.020 -0.054 -0.036 0.022 -0.097 -0.065
## 13 -0.095 1.000 -0.100 -0.119 0.049 -0.053 0.011 -0.098 -0.111 -0.019 -0.022
## 14 -0.018 -0.100 1.000 -0.043 -0.099 -0.010 -0.080 0.028 0.013 -0.057 -0.067
## 15 -0.018 -0.119 -0.043 1.000 -0.107 -0.070 -0.090 -0.039 0.061 -0.021 -0.053
## 16 -0.067 0.049 -0.099 -0.107 1.000 -0.036 0.020 -0.029 -0.138 0.044 0.087
## 17 -0.020 -0.053 -0.010 -0.070 -0.036 1.000 -0.066 -0.086 -0.035 -0.120 -0.033
## 18 -0.054 0.011 -0.080 -0.090 0.020 -0.066 1.000 -0.063 -0.098 -0.004 0.013
## 19 -0.036 -0.098 0.028 -0.039 -0.029 -0.086 -0.063 1.000 -0.045 0.017 -0.050
## 20 0.022 -0.111 0.013 0.061 -0.138 -0.035 -0.098 -0.045 1.000 -0.088 -0.100
## 21 -0.097 -0.019 -0.057 -0.021 0.044 -0.120 -0.004 0.017 -0.088 1.000 0.028
## 22 -0.065 -0.022 -0.067 -0.053 0.087 -0.033 0.013 -0.050 -0.100 0.028 1.000
## 23 -0.039 0.031 -0.032 -0.104 0.075 -0.051 0.042 -0.027 -0.126 0.034 0.033
## 24 -0.052 -0.064 -0.013 -0.083 0.016 -0.004 -0.036 -0.069 -0.043 -0.098 0.036
## 25 -0.065 -0.073 -0.006 -0.023 -0.121 -0.076 -0.099 0.001 -0.004 -0.024 -0.102
## 26 -0.069 -0.060 -0.054 -0.012 -0.037 -0.063 -0.018 -0.083 -0.017 -0.080 -0.014
## 23 24 25 26
## 1 -0.081 -0.023 -0.039 -0.045
## 2 -0.075 -0.065 -0.005 -0.043
## 3 -0.047 -0.010 0.013 -0.013
## 4 -0.019 -0.023 0.002 -0.006
## 5 -0.038 -0.067 -0.023 -0.047
## 6 -0.085 -0.080 0.010 -0.049
## 7 -0.049 -0.085 -0.110 -0.007
## 8 0.001 -0.048 -0.049 -0.055
## 9 0.049 -0.062 -0.089 -0.049
## 10 -0.034 -0.051 -0.068 -0.054
## 11 -0.017 0.011 -0.036 -0.090
## 12 -0.039 -0.052 -0.065 -0.069
## 13 0.031 -0.064 -0.073 -0.060
## 14 -0.032 -0.013 -0.006 -0.054
## 15 -0.104 -0.083 -0.023 -0.012
## 16 0.075 0.016 -0.121 -0.037
## 17 -0.051 -0.004 -0.076 -0.063
## 18 0.042 -0.036 -0.099 -0.018
## 19 -0.027 -0.069 0.001 -0.083
## 20 -0.126 -0.043 -0.004 -0.017
## 21 0.034 -0.098 -0.024 -0.080
## 22 0.033 0.036 -0.102 -0.014
## 23 1.000 0.007 -0.085 -0.041
## 24 0.007 1.000 -0.121 -0.087
## 25 -0.085 -0.121 1.000 -0.002
## 26 -0.041 -0.087 -0.002 1.000
# 4. İncele
print(resid_cor)
## 1 2 3 4 5 6 7 8 9 10 11
## 1 1.000 -0.023 -0.015 -0.072 -0.012 0.009 0.031 -0.080 -0.105 -0.068 -0.049
## 2 -0.023 1.000 -0.058 -0.078 0.009 0.076 -0.035 -0.058 -0.111 -0.023 -0.061
## 3 -0.015 -0.058 1.000 -0.064 -0.032 -0.005 -0.015 -0.027 -0.051 -0.051 0.012
## 4 -0.072 -0.078 -0.064 1.000 -0.040 -0.054 -0.042 -0.002 -0.017 -0.032 -0.082
## 5 -0.012 0.009 -0.032 -0.040 1.000 0.043 -0.015 -0.045 -0.071 -0.048 0.014
## 6 0.009 0.076 -0.005 -0.054 0.043 1.000 -0.058 -0.032 -0.132 -0.070 0.028
## 7 0.031 -0.035 -0.015 -0.042 -0.015 -0.058 1.000 -0.037 -0.129 -0.003 -0.062
## 8 -0.080 -0.058 -0.027 -0.002 -0.045 -0.032 -0.037 1.000 -0.022 -0.056 -0.010
## 9 -0.105 -0.111 -0.051 -0.017 -0.071 -0.132 -0.129 -0.022 1.000 -0.072 -0.060
## 10 -0.068 -0.023 -0.051 -0.032 -0.048 -0.070 -0.003 -0.056 -0.072 1.000 -0.039
## 11 -0.049 -0.061 0.012 -0.082 0.014 0.028 -0.062 -0.010 -0.060 -0.039 1.000
## 12 -0.019 0.020 -0.019 -0.043 0.017 0.007 -0.050 -0.069 -0.086 -0.009 -0.063
## 13 -0.137 -0.144 -0.039 -0.003 -0.039 -0.136 -0.117 -0.022 0.181 -0.063 -0.022
## 14 -0.039 -0.056 0.018 -0.046 0.008 0.016 -0.088 0.011 -0.068 -0.065 0.084
## 15 -0.069 0.014 -0.017 -0.040 0.007 -0.012 -0.051 -0.047 -0.111 -0.073 -0.056
## 16 -0.067 -0.164 -0.051 0.012 -0.078 -0.213 -0.035 0.029 0.019 0.024 -0.058
## 17 -0.066 -0.068 -0.034 -0.047 -0.053 -0.058 -0.052 -0.007 -0.036 -0.005 0.012
## 18 -0.121 -0.042 -0.029 0.002 -0.024 -0.069 -0.068 -0.030 0.006 0.009 -0.039
## 19 -0.046 -0.018 -0.018 -0.062 -0.005 -0.073 -0.082 -0.019 -0.044 -0.086 0.003
## 20 -0.052 0.025 -0.027 -0.050 0.000 0.002 -0.081 -0.086 -0.159 -0.041 -0.037
## 21 -0.070 -0.053 -0.025 -0.011 -0.042 -0.065 -0.028 -0.042 0.010 -0.080 -0.075
## 22 -0.089 -0.106 -0.029 -0.042 -0.056 -0.095 -0.055 -0.014 -0.041 -0.064 -0.033
## 23 -0.081 -0.075 -0.047 -0.019 -0.038 -0.085 -0.049 0.001 0.049 -0.034 -0.017
## 24 -0.023 -0.065 -0.010 -0.023 -0.067 -0.080 -0.085 -0.048 -0.062 -0.051 0.011
## 25 -0.039 -0.005 0.013 0.002 -0.023 0.010 -0.110 -0.049 -0.089 -0.068 -0.036
## 26 -0.045 -0.043 -0.013 -0.006 -0.047 -0.049 -0.007 -0.055 -0.049 -0.054 -0.090
## 12 13 14 15 16 17 18 19 20 21 22
## 1 -0.019 -0.137 -0.039 -0.069 -0.067 -0.066 -0.121 -0.046 -0.052 -0.070 -0.089
## 2 0.020 -0.144 -0.056 0.014 -0.164 -0.068 -0.042 -0.018 0.025 -0.053 -0.106
## 3 -0.019 -0.039 0.018 -0.017 -0.051 -0.034 -0.029 -0.018 -0.027 -0.025 -0.029
## 4 -0.043 -0.003 -0.046 -0.040 0.012 -0.047 0.002 -0.062 -0.050 -0.011 -0.042
## 5 0.017 -0.039 0.008 0.007 -0.078 -0.053 -0.024 -0.005 0.000 -0.042 -0.056
## 6 0.007 -0.136 0.016 -0.012 -0.213 -0.058 -0.069 -0.073 0.002 -0.065 -0.095
## 7 -0.050 -0.117 -0.088 -0.051 -0.035 -0.052 -0.068 -0.082 -0.081 -0.028 -0.055
## 8 -0.069 -0.022 0.011 -0.047 0.029 -0.007 -0.030 -0.019 -0.086 -0.042 -0.014
## 9 -0.086 0.181 -0.068 -0.111 0.019 -0.036 0.006 -0.044 -0.159 0.010 -0.041
## 10 -0.009 -0.063 -0.065 -0.073 0.024 -0.005 0.009 -0.086 -0.041 -0.080 -0.064
## 11 -0.063 -0.022 0.084 -0.056 -0.058 0.012 -0.039 0.003 -0.037 -0.075 -0.033
## 12 1.000 -0.095 -0.018 -0.018 -0.067 -0.020 -0.054 -0.036 0.022 -0.097 -0.065
## 13 -0.095 1.000 -0.100 -0.119 0.049 -0.053 0.011 -0.098 -0.111 -0.019 -0.022
## 14 -0.018 -0.100 1.000 -0.043 -0.099 -0.010 -0.080 0.028 0.013 -0.057 -0.067
## 15 -0.018 -0.119 -0.043 1.000 -0.107 -0.070 -0.090 -0.039 0.061 -0.021 -0.053
## 16 -0.067 0.049 -0.099 -0.107 1.000 -0.036 0.020 -0.029 -0.138 0.044 0.087
## 17 -0.020 -0.053 -0.010 -0.070 -0.036 1.000 -0.066 -0.086 -0.035 -0.120 -0.033
## 18 -0.054 0.011 -0.080 -0.090 0.020 -0.066 1.000 -0.063 -0.098 -0.004 0.013
## 19 -0.036 -0.098 0.028 -0.039 -0.029 -0.086 -0.063 1.000 -0.045 0.017 -0.050
## 20 0.022 -0.111 0.013 0.061 -0.138 -0.035 -0.098 -0.045 1.000 -0.088 -0.100
## 21 -0.097 -0.019 -0.057 -0.021 0.044 -0.120 -0.004 0.017 -0.088 1.000 0.028
## 22 -0.065 -0.022 -0.067 -0.053 0.087 -0.033 0.013 -0.050 -0.100 0.028 1.000
## 23 -0.039 0.031 -0.032 -0.104 0.075 -0.051 0.042 -0.027 -0.126 0.034 0.033
## 24 -0.052 -0.064 -0.013 -0.083 0.016 -0.004 -0.036 -0.069 -0.043 -0.098 0.036
## 25 -0.065 -0.073 -0.006 -0.023 -0.121 -0.076 -0.099 0.001 -0.004 -0.024 -0.102
## 26 -0.069 -0.060 -0.054 -0.012 -0.037 -0.063 -0.018 -0.083 -0.017 -0.080 -0.014
## 23 24 25 26
## 1 -0.081 -0.023 -0.039 -0.045
## 2 -0.075 -0.065 -0.005 -0.043
## 3 -0.047 -0.010 0.013 -0.013
## 4 -0.019 -0.023 0.002 -0.006
## 5 -0.038 -0.067 -0.023 -0.047
## 6 -0.085 -0.080 0.010 -0.049
## 7 -0.049 -0.085 -0.110 -0.007
## 8 0.001 -0.048 -0.049 -0.055
## 9 0.049 -0.062 -0.089 -0.049
## 10 -0.034 -0.051 -0.068 -0.054
## 11 -0.017 0.011 -0.036 -0.090
## 12 -0.039 -0.052 -0.065 -0.069
## 13 0.031 -0.064 -0.073 -0.060
## 14 -0.032 -0.013 -0.006 -0.054
## 15 -0.104 -0.083 -0.023 -0.012
## 16 0.075 0.016 -0.121 -0.037
## 17 -0.051 -0.004 -0.076 -0.063
## 18 0.042 -0.036 -0.099 -0.018
## 19 -0.027 -0.069 0.001 -0.083
## 20 -0.126 -0.043 -0.004 -0.017
## 21 0.034 -0.098 -0.024 -0.080
## 22 0.033 0.036 -0.102 -0.014
## 23 1.000 0.007 -0.085 -0.041
## 24 0.007 1.000 -0.121 -0.087
## 25 -0.085 -0.121 1.000 -0.002
## 26 -0.041 -0.087 -0.002 1.000
library(ggplot2)
library(reshape2)
##
## Attaching package: 'reshape2'
## The following objects are masked from 'package:data.table':
##
## dcast, melt
## The following object is masked from 'package:tidyr':
##
## smiths
melted_resid_cor <- melt(resid_cor)
ggplot(melted_resid_cor, aes(Var1, Var2, fill = value)) +
geom_tile() +
scale_fill_gradient2(low = "blue", high = "red", mid = "white", midpoint = 0) +
labs(title = "IRT Model Kalıntı Korelasyonları", x = "Maddeler", y = "Maddeler") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
IRT ANALİZİ
2-parametreli lojistik model (2PL) ve 3-parametreli lojistik model (3PL) ayrı ayrı uygulanmıştır. Her bir madde için ayırt edicilik (a) ve zorluk (b) parametreleri hesaplanmış, 3PL modelinde tahmin edilen varsayılan şans (guessing) parametresi (c) de eklenmiştir. 3PL modeli, 2PL modeline kıyasla daha iyi bir uyum göstermiştir (LL = -42316.5). Marjinal güvenilirlik değeri, modelin genel güvenilirliğinin yüksek olduğunu göstermektedir.
Maddeler, zorluk katsayılarına göre “Düşük”, “Orta” ve “Yüksek” olmak üzere üç gruba ayrılmıştır. Bu gruplama, öğrenci davranışlarının daha ayrıntılı modellenebilmesi için sonraki analizlerde kullanılmıştır.
2PL
df_items <- df[RESP == 1, .(IDSTU, ITEM, SCORE_bin = ifelse(SCORE == 2, 1, 0))]
df_items <- dcast(df_items, IDSTU ~ ITEM, value.var = "SCORE_bin")
irt_model <- mirt(data = df_items[, -1], model = 1, itemtype = "2PL", technical = list(NCYCLES = 1000))
## Iteration: 1, Log-Lik: -47538.712, Max-Change: 1.51044Iteration: 2, Log-Lik: -44164.458, Max-Change: 0.59640Iteration: 3, Log-Lik: -43319.619, Max-Change: 0.36893Iteration: 4, Log-Lik: -42943.438, Max-Change: 0.22624Iteration: 5, Log-Lik: -42766.361, Max-Change: 0.19578Iteration: 6, Log-Lik: -42667.531, Max-Change: 0.18642Iteration: 7, Log-Lik: -42611.992, Max-Change: 0.14372Iteration: 8, Log-Lik: -42578.180, Max-Change: 0.10990Iteration: 9, Log-Lik: -42555.864, Max-Change: 0.10305Iteration: 10, Log-Lik: -42542.729, Max-Change: 0.07105Iteration: 11, Log-Lik: -42534.320, Max-Change: 0.05732Iteration: 12, Log-Lik: -42529.199, Max-Change: 0.05136Iteration: 13, Log-Lik: -42525.856, Max-Change: 0.02932Iteration: 14, Log-Lik: -42523.832, Max-Change: 0.02788Iteration: 15, Log-Lik: -42522.465, Max-Change: 0.01941Iteration: 16, Log-Lik: -42520.086, Max-Change: 0.00698Iteration: 17, Log-Lik: -42519.898, Max-Change: 0.00556Iteration: 18, Log-Lik: -42519.754, Max-Change: 0.00551Iteration: 19, Log-Lik: -42519.164, Max-Change: 0.00787Iteration: 20, Log-Lik: -42519.110, Max-Change: 0.00289Iteration: 21, Log-Lik: -42519.066, Max-Change: 0.00261Iteration: 22, Log-Lik: -42518.856, Max-Change: 0.00174Iteration: 23, Log-Lik: -42518.837, Max-Change: 0.00168Iteration: 24, Log-Lik: -42518.820, Max-Change: 0.00133Iteration: 25, Log-Lik: -42518.763, Max-Change: 0.00172Iteration: 26, Log-Lik: -42518.754, Max-Change: 0.00127Iteration: 27, Log-Lik: -42518.745, Max-Change: 0.00120Iteration: 28, Log-Lik: -42518.704, Max-Change: 0.00200Iteration: 29, Log-Lik: -42518.698, Max-Change: 0.00091Iteration: 30, Log-Lik: -42518.694, Max-Change: 0.00079Iteration: 31, Log-Lik: -42518.677, Max-Change: 0.00118Iteration: 32, Log-Lik: -42518.675, Max-Change: 0.00059Iteration: 33, Log-Lik: -42518.673, Max-Change: 0.00052Iteration: 34, Log-Lik: -42518.666, Max-Change: 0.00093Iteration: 35, Log-Lik: -42518.665, Max-Change: 0.00024Iteration: 36, Log-Lik: -42518.665, Max-Change: 0.00023Iteration: 37, Log-Lik: -42518.664, Max-Change: 0.00022Iteration: 38, Log-Lik: -42518.663, Max-Change: 0.00021Iteration: 39, Log-Lik: -42518.663, Max-Change: 0.00020Iteration: 40, Log-Lik: -42518.661, Max-Change: 0.00016Iteration: 41, Log-Lik: -42518.661, Max-Change: 0.00015Iteration: 42, Log-Lik: -42518.661, Max-Change: 0.00015Iteration: 43, Log-Lik: -42518.660, Max-Change: 0.00012Iteration: 44, Log-Lik: -42518.660, Max-Change: 0.00011Iteration: 45, Log-Lik: -42518.660, Max-Change: 0.00011Iteration: 46, Log-Lik: -42518.659, Max-Change: 0.00009
irt_params <- coef(irt_model, simplify = TRUE)$items %>%
as.data.frame() %>%
rownames_to_column("ITEM") %>%
rename(a = a1, b = d) %>%
mutate(difficulty_group = cut(b, breaks = c(-Inf, -0.5, 0.5, Inf), labels = c("Düşük", "Orta", "Yüksek")))
marginal_reliability <- marginal_rxx(irt_model)
cat("2PL Model Marginal Reliability:", marginal_reliability, "\n")
## 2PL Model Marginal Reliability: 0.8955913
3PL
irt_model_3pl <- mirt(data = df_items[, -1], model = 1, itemtype = "3PL", technical = list(NCYCLES = 1000))
## Iteration: 1, Log-Lik: -51846.099, Max-Change: 1.93031Iteration: 2, Log-Lik: -45046.576, Max-Change: 1.33224Iteration: 3, Log-Lik: -43691.778, Max-Change: 2.03537Iteration: 4, Log-Lik: -43174.125, Max-Change: 1.23171Iteration: 5, Log-Lik: -42881.699, Max-Change: 0.64343Iteration: 6, Log-Lik: -42692.816, Max-Change: 0.41967Iteration: 7, Log-Lik: -42579.358, Max-Change: 0.32878Iteration: 8, Log-Lik: -42505.443, Max-Change: 0.30308Iteration: 9, Log-Lik: -42459.665, Max-Change: 0.22041Iteration: 10, Log-Lik: -42427.692, Max-Change: 0.21589Iteration: 11, Log-Lik: -42404.822, Max-Change: 0.19813Iteration: 12, Log-Lik: -42388.959, Max-Change: 0.18259Iteration: 13, Log-Lik: -42375.390, Max-Change: 0.17585Iteration: 14, Log-Lik: -42366.721, Max-Change: 0.15651Iteration: 15, Log-Lik: -42359.211, Max-Change: 0.14188Iteration: 16, Log-Lik: -42354.296, Max-Change: 0.11765Iteration: 17, Log-Lik: -42349.757, Max-Change: 0.11263Iteration: 18, Log-Lik: -42346.510, Max-Change: 0.12477Iteration: 19, Log-Lik: -42342.833, Max-Change: 0.11502Iteration: 20, Log-Lik: -42340.492, Max-Change: 0.16138Iteration: 21, Log-Lik: -42338.367, Max-Change: 0.13893Iteration: 22, Log-Lik: -42336.492, Max-Change: 0.13165Iteration: 23, Log-Lik: -42334.909, Max-Change: 0.10142Iteration: 24, Log-Lik: -42333.523, Max-Change: 0.09732Iteration: 25, Log-Lik: -42332.278, Max-Change: 0.06514Iteration: 26, Log-Lik: -42331.123, Max-Change: 0.03437Iteration: 27, Log-Lik: -42329.914, Max-Change: 0.06114Iteration: 28, Log-Lik: -42328.423, Max-Change: 0.05054Iteration: 29, Log-Lik: -42327.523, Max-Change: 0.02301Iteration: 30, Log-Lik: -42326.645, Max-Change: 0.11986Iteration: 31, Log-Lik: -42325.587, Max-Change: 0.08454Iteration: 32, Log-Lik: -42324.779, Max-Change: 0.09695Iteration: 33, Log-Lik: -42323.995, Max-Change: 0.08783Iteration: 34, Log-Lik: -42320.499, Max-Change: 0.03402Iteration: 35, Log-Lik: -42320.078, Max-Change: 0.01128Iteration: 36, Log-Lik: -42319.782, Max-Change: 0.00666Iteration: 37, Log-Lik: -42319.331, Max-Change: 0.00604Iteration: 38, Log-Lik: -42319.107, Max-Change: 0.00569Iteration: 39, Log-Lik: -42318.905, Max-Change: 0.00550Iteration: 40, Log-Lik: -42317.906, Max-Change: 0.00650Iteration: 41, Log-Lik: -42317.796, Max-Change: 0.00483Iteration: 42, Log-Lik: -42317.692, Max-Change: 0.00510Iteration: 43, Log-Lik: -42317.180, Max-Change: 0.00263Iteration: 44, Log-Lik: -42317.126, Max-Change: 0.00375Iteration: 45, Log-Lik: -42317.073, Max-Change: 0.00336Iteration: 46, Log-Lik: -42316.818, Max-Change: 0.00184Iteration: 47, Log-Lik: -42316.796, Max-Change: 0.00188Iteration: 48, Log-Lik: -42316.776, Max-Change: 0.00184Iteration: 49, Log-Lik: -42316.677, Max-Change: 0.00244Iteration: 50, Log-Lik: -42316.668, Max-Change: 0.00130Iteration: 51, Log-Lik: -42316.658, Max-Change: 0.00115Iteration: 52, Log-Lik: -42316.640, Max-Change: 0.00114Iteration: 53, Log-Lik: -42316.633, Max-Change: 0.00110Iteration: 54, Log-Lik: -42316.627, Max-Change: 0.00106Iteration: 55, Log-Lik: -42316.596, Max-Change: 0.00086Iteration: 56, Log-Lik: -42316.592, Max-Change: 0.00083Iteration: 57, Log-Lik: -42316.589, Max-Change: 0.00081Iteration: 58, Log-Lik: -42316.573, Max-Change: 0.00127Iteration: 59, Log-Lik: -42316.571, Max-Change: 0.00072Iteration: 60, Log-Lik: -42316.569, Max-Change: 0.00063Iteration: 61, Log-Lik: -42316.566, Max-Change: 0.00111Iteration: 62, Log-Lik: -42316.564, Max-Change: 0.00093Iteration: 63, Log-Lik: -42316.562, Max-Change: 0.00059Iteration: 64, Log-Lik: -42316.560, Max-Change: 0.00025Iteration: 65, Log-Lik: -42316.560, Max-Change: 0.00024Iteration: 66, Log-Lik: -42316.559, Max-Change: 0.00025Iteration: 67, Log-Lik: -42316.556, Max-Change: 0.00027Iteration: 68, Log-Lik: -42316.555, Max-Change: 0.00025Iteration: 69, Log-Lik: -42316.555, Max-Change: 0.00023Iteration: 70, Log-Lik: -42316.553, Max-Change: 0.00019Iteration: 71, Log-Lik: -42316.553, Max-Change: 0.00019Iteration: 72, Log-Lik: -42316.552, Max-Change: 0.00019Iteration: 73, Log-Lik: -42316.551, Max-Change: 0.00017Iteration: 74, Log-Lik: -42316.551, Max-Change: 0.00017Iteration: 75, Log-Lik: -42316.551, Max-Change: 0.00016Iteration: 76, Log-Lik: -42316.550, Max-Change: 0.00071Iteration: 77, Log-Lik: -42316.549, Max-Change: 0.00068Iteration: 78, Log-Lik: -42316.548, Max-Change: 0.00059Iteration: 79, Log-Lik: -42316.546, Max-Change: 0.00087Iteration: 80, Log-Lik: -42316.546, Max-Change: 0.00019Iteration: 81, Log-Lik: -42316.546, Max-Change: 0.00059Iteration: 82, Log-Lik: -42316.545, Max-Change: 0.00030Iteration: 83, Log-Lik: -42316.545, Max-Change: 0.00081Iteration: 84, Log-Lik: -42316.545, Max-Change: 0.00020Iteration: 85, Log-Lik: -42316.545, Max-Change: 0.00016Iteration: 86, Log-Lik: -42316.545, Max-Change: 0.00051Iteration: 87, Log-Lik: -42316.545, Max-Change: 0.00017Iteration: 88, Log-Lik: -42316.545, Max-Change: 0.00075Iteration: 89, Log-Lik: -42316.545, Max-Change: 0.00021Iteration: 90, Log-Lik: -42316.545, Max-Change: 0.00051Iteration: 91, Log-Lik: -42316.545, Max-Change: 0.00034Iteration: 92, Log-Lik: -42316.544, Max-Change: 0.00015Iteration: 93, Log-Lik: -42316.544, Max-Change: 0.00045Iteration: 94, Log-Lik: -42316.544, Max-Change: 0.00015Iteration: 95, Log-Lik: -42316.544, Max-Change: 0.00041Iteration: 96, Log-Lik: -42316.544, Max-Change: 0.00015Iteration: 97, Log-Lik: -42316.544, Max-Change: 0.00064Iteration: 98, Log-Lik: -42316.544, Max-Change: 0.00019Iteration: 99, Log-Lik: -42316.544, Max-Change: 0.00041Iteration: 100, Log-Lik: -42316.544, Max-Change: 0.00029Iteration: 101, Log-Lik: -42316.544, Max-Change: 0.00067Iteration: 102, Log-Lik: -42316.544, Max-Change: 0.00020Iteration: 103, Log-Lik: -42316.544, Max-Change: 0.00017Iteration: 104, Log-Lik: -42316.544, Max-Change: 0.00036Iteration: 105, Log-Lik: -42316.544, Max-Change: 0.00016Iteration: 106, Log-Lik: -42316.544, Max-Change: 0.00014Iteration: 107, Log-Lik: -42316.543, Max-Change: 0.00033Iteration: 108, Log-Lik: -42316.543, Max-Change: 0.00042Iteration: 109, Log-Lik: -42316.543, Max-Change: 0.00016Iteration: 110, Log-Lik: -42316.543, Max-Change: 0.00037Iteration: 111, Log-Lik: -42316.543, Max-Change: 0.00010Iteration: 112, Log-Lik: -42316.543, Max-Change: 0.00008
irt_params_3pl <- coef(irt_model_3pl, simplify = TRUE)$items %>%
as.data.frame() %>%
rownames_to_column("ITEM") %>%
rename(a = a1, b = d, c = g) %>%
mutate(difficulty_group = cut(b, breaks = c(-Inf, -0.5, 0.5, Inf),
labels = c("Düşük", "Orta", "Yüksek")))
marginal_reliability_3pl <- marginal_rxx(irt_model_3pl)
cat("3PL Model Marginal Reliability:", marginal_reliability_3pl, "\n")
## 3PL Model Marginal Reliability: 0.872255
2PL ve 3PL Modellerinin Log-Likelihood Değerleri
logLik_2pl <- logLik(irt_model)
logLik_3pl <- logLik(irt_model_3pl)
cat("2PL Model Log-Likelihood:", logLik_2pl, "\n")
## 2PL Model Log-Likelihood: -42518.66
cat("3PL Model Log-Likelihood:", logLik_3pl, "\n")
## 3PL Model Log-Likelihood: -42316.54
4. HLM MODELİ – Çok Düzeyli Analiz (Raudenbush & Bryk, 2002)
df_joined <- df[RESP == 1] %>%
dplyr::mutate(ITEM = as.character(ITEM)) %>%
dplyr::left_join(irt_params %>% dplyr::select(ITEM, difficulty_group), by = "ITEM") %>%
drop_na(CORR, RAPID, ACCRCY, PHEL, ITSEX)
hlm_model <- lmer(CORR ~ 1 + RAPID*difficulty_group + ACCRCY +
factor(PHEL) + factor(ITSEX) + (1 | CNTA),
data = df_joined,
control = lmerControl(optimizer = "bobyqa", check.conv.singular = "ignore"))
summary(hlm_model)
## Linear mixed model fit by REML. t-tests use Satterthwaite's method [
## lmerModLmerTest]
## Formula: CORR ~ 1 + RAPID * difficulty_group + ACCRCY + factor(PHEL) +
## factor(ITSEX) + (1 | CNTA)
## Data: df_joined
## Control: lmerControl(optimizer = "bobyqa", check.conv.singular = "ignore")
##
## REML criterion at convergence: 76033.9
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -3.6140 -0.5410 -0.0947 0.5338 2.8581
##
## Random effects:
## Groups Name Variance Std.Dev.
## CNTA (Intercept) 6.236e-15 7.897e-08
## Residual 1.263e-01 3.554e-01
## Number of obs: 98733, groups: CNTA, 3
##
## Fixed effects:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) -3.773e-02 3.017e-03 9.868e+04 -12.504 < 2e-16
## RAPID -1.071e-02 3.158e-03 9.872e+04 -3.390 0.000699
## difficulty_groupOrta 1.499e-01 3.632e-03 9.872e+04 41.285 < 2e-16
## difficulty_groupYüksek 3.541e-01 4.153e-03 9.872e+04 85.257 < 2e-16
## ACCRCY 1.002e+00 3.897e-03 9.866e+04 257.154 < 2e-16
## factor(PHEL)1 4.469e-03 4.178e-03 9.872e+04 1.070 0.284839
## factor(PHEL)2 -1.153e-03 4.087e-03 9.872e+04 -0.282 0.777795
## factor(PHEL)3 -5.692e-03 3.377e-03 9.872e+04 -1.685 0.091930
## factor(PHEL)4 4.784e-03 4.490e-03 9.872e+04 1.065 0.286682
## factor(PHEL)5 -1.265e-03 3.241e-03 9.872e+04 -0.390 0.696386
## factor(ITSEX)2 -2.472e-04 2.272e-03 9.872e+04 -0.109 0.913379
## RAPID:difficulty_groupOrta -3.095e-02 7.467e-03 9.872e+04 -4.145 3.41e-05
## RAPID:difficulty_groupYüksek -1.132e-01 8.540e-03 9.872e+04 -13.251 < 2e-16
##
## (Intercept) ***
## RAPID ***
## difficulty_groupOrta ***
## difficulty_groupYüksek ***
## ACCRCY ***
## factor(PHEL)1
## factor(PHEL)2
## factor(PHEL)3 .
## factor(PHEL)4
## factor(PHEL)5
## factor(ITSEX)2
## RAPID:difficulty_groupOrta ***
## RAPID:difficulty_groupYüksek ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation matrix not shown by default, as p = 13 > 12.
## Use print(x, correlation=TRUE) or
## vcov(x) if you need it
Hiyerarşik Doğrusal Modelleme Süreci ve Bulguları Bu çalışmada, öğrencilerin test maddelerine verdiği doğru yanıtlar (CORR) üzerinde etkili olabilecek bireysel davranışsal değişkenler ile madde zorluk düzeylerinin etkileşimi, çok düzeyli (hiyerarşik) doğrusal modelleme yöntemiyle analiz edilmiştir. Veri seti yalnızca teste yanıt veren öğrencilerle sınırlandırılmış ve IRT (Madde Tepki Kuramı) analizi sonucunda elde edilen madde zorluk düzeyleri (difficulty_group) veri setine entegre edilmiştir.
Modelde, öğrencilerin maddeye verdiği yanıtın doğruluğu (CORR) bağımlı değişken olarak ele alınmış; bağımsız değişkenler olarak:
Öğrencinin maddeye verdiği yanıt hızı (RAPID),
Madde zorluk düzeyi (düşük, orta, yüksek),
Öğrencinin genel doğruluk performansı (ACCRCY),
Cinsiyet (ITSEX),
Diğer demografik değişkenler (PHEL)
kullanılmıştır. Ayrıca, öğrencilerin ülkeleri (CNTA) rastgele etki olarak modele dahil edilmiştir.
📈 Model Bulguları Model çıktıları aşağıdaki temel bulguları ortaya koymuştur:
Yanıt Hızı (RAPID): Öğrencilerin maddeye daha hızlı yanıt vermesi, doğru yanıt verme olasılığını anlamlı biçimde azaltmaktadır (p < 0.001). Bu, aşırı hızlı yanıtların bilişsel işlem kalitesini düşürdüğünü gösterebilir.
Madde Zorluğu (difficulty_group): Orta ve yüksek zorluk düzeyindeki maddeler, düşük zorluk düzeyine kıyasla daha yüksek doğruluk oranlarıyla ilişkilidir. Bu bulgu, öğrencilerin zor maddelere daha dikkatli yaklaştığını düşündürebilir (p < 0.001).
RAPID × Zorluk Etkileşimi: RAPID değişkeninin madde doğruluğu üzerindeki negatif etkisi, madde zorluğu arttıkça daha da belirginleşmektedir. Bu durum, özellikle zor maddelerde hızlı yanıt veren öğrencilerin başarı olasılığının düştüğünü göstermektedir.
Genel Başarı (ACCRCY): Öğrencilerin genel doğruluk düzeyi, tekil madde başarısı üzerinde pozitif ve güçlü bir etkiye sahiptir (p < 0.001).
Demografik Değişkenler (PHEL, ITSEX): Cinsiyet (ITSEX) ve diğer demografik değişkenler (PHEL) büyük oranda anlamlı değildir. Bu, bireysel başarı üzerinde cinsiyetin sistematik bir etkisi olmadığını göstermektedir.
Rasgele Etkiler (Ülke düzeyi - CNTA): Ülkeler arası varyans oldukça düşüktür (Var = 0.000006), yani modelde açıklanan varyansın büyük çoğunluğu bireysel düzeyde toplanmaktadır. Ülke farklarının, öğrencilerin maddeye doğru yanıt verme olasılığı üzerinde belirleyici bir etkisi bulunmamaktadır.
Akademik Değerlendirme Elde edilen bulgular, öğrenci performansını yalnızca genel başarı düzeyiyle değil, aynı zamanda madde özellikleri ve yanıt stratejileriyle birlikte değerlendirme gerekliliğine işaret etmektedir. Özellikle madde zorluğu ile yanıt hızı arasındaki etkileşim, test stratejilerinin ve zaman yönetiminin ölçme geçerliği üzerindeki önemini vurgulamaktadır. Bu sonuçlar, hem test tasarımcıları hem de politika yapıcılar açısından madde analizlerinin sadece içerik değil, davranışsal boyutları da dikkate alarak değerlendirilmesi gerektiğini ortaya koymaktadır.
5. DIF ANALİZİ (Mantel-Haenszel) – Literatür: Holland & Thayer (1988)
# DIF Analizi: Hızlı - Yavaş Yanıt Grupları Arasında
# 1. Gerekli dönüşümler
setDT(df)
df[, FATlog := log(FAT + 1)]
## Warning in log(FAT + 1): NaNs produced
df[is.infinite(FATlog) | is.nan(FATlog), FATlog := NA_real_]
df[, rapid_flag := ifelse(FAT < 5 | FATlog < Q1logFAT, 1, 0)]
# 2. Öğrenci bazında hızlı yanıt oranı ve grup tanımlama
student_group <- df[, .(PRPD = mean(rapid_flag, na.rm = TRUE)), by = IDSTU]
student_group[, rapid_group := ifelse(PRPD > 0.15, 1, 0)]
# 3. İkili skor ve wide format
df_dif <- df[RESP == 1, .(IDSTU, ITEM, SCORE_bin = ifelse(SCORE == 2, 1, 0))]
df_dif <- dcast(df_dif, IDSTU ~ ITEM, value.var = "SCORE_bin")
# 4. Öğrenci gruplarıyla birleştir
df_dif <- merge(df_dif, student_group[, .(IDSTU, rapid_group)], by = "IDSTU", all.x = TRUE)
# 5. DIF analiz nesneleri
data_dif <- df_dif[, !(names(df_dif) %in% c("IDSTU", "rapid_group"))]
group_dif <- df_dif$rapid_group
# 6. Mantel-Haenszel DIF analizi
dif_mh <- difMH(
Data = data_dif,
group = group_dif,
focal.name = 1,
p.adjust.method = "BH"
)
# 7. DIF özet tablosu
dif_items <- tibble(
Item = colnames(data_dif),
p.value = dif_mh$p.value,
adjusted.p = dif_mh$adjusted.p,
MH = dif_mh$MH,
alphaMH = dif_mh$alphaMH,
ETS.Class = sqrt(dif_mh$MH) * sign(dif_mh$alphaMH - 0.5)
) %>%
filter(adjusted.p < 0.05 & abs(ETS.Class) > 0.5) %>%
left_join(irt_params, by = c("Item" = "ITEM"))
# 8. Tablo çıktısı
kable(dif_items, caption = "DIF Gösteren Maddeler", digits = 3) %>%
kable_styling()
| Item | p.value | adjusted.p | MH | alphaMH | ETS.Class | a | b | g | u | difficulty_group |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.000 | 0.000 | 86.550 | 0.452 | -9.303 | 3.681 | -1.809 | 0 | 1 | Düşük |
| 2 | 0.029 | 0.039 | 4.796 | 0.843 | 2.190 | 2.348 | -0.568 | 0 | 1 | Düşük |
| 7 | 0.000 | 0.000 | 37.036 | 0.577 | 6.086 | 3.397 | -0.920 | 0 | 1 | Düşük |
| 9 | 0.001 | 0.002 | 10.836 | 0.800 | 3.292 | 3.175 | -0.806 | 0 | 1 | Düşük |
| 10 | 0.001 | 0.002 | 10.794 | 0.717 | 3.285 | 2.586 | -1.411 | 0 | 1 | Düşük |
| 12 | 0.020 | 0.028 | 5.451 | 0.809 | 2.335 | 2.373 | -2.012 | 0 | 1 | Düşük |
| 13 | 0.000 | 0.000 | 17.127 | 0.738 | 4.138 | 3.465 | -0.835 | 0 | 1 | Düşük |
| 15 | 0.000 | 0.000 | 34.520 | 0.603 | 5.875 | 2.850 | -1.282 | 0 | 1 | Düşük |
| 16 | 0.000 | 0.000 | 29.269 | 0.648 | 5.410 | 2.091 | -1.087 | 0 | 1 | Düşük |
| 17 | 0.001 | 0.001 | 12.017 | 0.785 | 3.466 | 2.756 | -1.039 | 0 | 1 | Düşük |
| 18 | 0.000 | 0.000 | 18.167 | 0.777 | 4.262 | 2.078 | -0.924 | 0 | 1 | Düşük |
| 19 | 0.000 | 0.000 | 27.486 | 0.614 | 5.243 | 2.735 | -1.767 | 0 | 1 | Düşük |
| 20 | 0.000 | 0.000 | 66.899 | 0.520 | 8.179 | 2.937 | -1.130 | 0 | 1 | Düşük |
| 21 | 0.000 | 0.000 | 82.456 | 0.464 | -9.081 | 2.985 | -3.243 | 0 | 1 | Düşük |
| 22 | 0.000 | 0.000 | 67.833 | 0.537 | 8.236 | 2.301 | -1.574 | 0 | 1 | Düşük |
| 23 | 0.000 | 0.000 | 58.187 | 0.636 | 7.628 | 1.530 | -1.325 | 0 | 1 | Düşük |
| 24 | 0.000 | 0.000 | 101.971 | 0.403 | -10.098 | 3.045 | -1.986 | 0 | 1 | Düşük |
| 25 | 0.000 | 0.000 | 45.905 | 0.646 | 6.775 | 3.122 | -1.656 | 0 | 1 | Düşük |
| 26 | 0.000 | 0.000 | 66.309 | 0.525 | 8.143 | 2.787 | -2.155 | 0 | 1 | Düşük |
Davranış temelli DIF analizi sonuçları, hızlı ve yavaş yanıtlayan öğrenci grupları arasında bazı test maddelerinin sistematik olarak farklı işlediğini göstermektedir. Mantel-Haenszel yöntemiyle yapılan analizde toplam 18 madde istatistiksel olarak anlamlı düzeyde farklılık göstermiştir. Bu maddelerin tümü, Madde Tepki Kuramı’na göre kolay düzeyde sınıflandırılan sorular olup, düşük zorluk katsayılarına (b) sahiptir. Ayrıca ayırt edicilik katsayıları (a) genellikle 2.5’in üzerinde olup, bu maddelerin ölçme gücünün yüksek olduğunu göstermektedir. DIF yönü incelendiğinde, bazı maddeler hızlı yanıtlayanlar lehine, bazıları ise yavaş yanıtlayanlar lehine çalışmaktadır. Özellikle Madde 24, 1 ve 21 gibi sorular yavaş yanıtlayan öğrenciler için avantaj sağlarken, Madde 22, 23 ve 26 gibi sorular hızlı yanıtlayan öğrencilerin lehine işlemektedir. Bu bulgu, yanıt süresinin öğrencinin başarısını doğrudan etkileyebildiğini ve ölçme adaletinin zedelenebileceğini göstermektedir. DIF gösteren bu maddelerde gözlemlenen farkların içerikten çok yanıt stratejisine dayandığı anlaşılmakta ve bu durum testin geçerliğini olumsuz etkileyebilecek potansiyel bir tehdit olarak değerlendirilmektedir. Dolayısıyla, DIF gösteren maddelerin dikkatle incelenmesi, gerekirse yeniden düzenlenmesi ya da testten çıkarılması gerekmektedir. Bu analiz, test geliştiricilerin yalnızca madde içeriğine değil, aynı zamanda öğrencilerin sınavla etkileşim biçimlerine de duyarlı olmaları gerektiğini açıkça ortaya koymaktadır.
# 6. DIF analizinde kullanılacak veri nesneleri (hatasız)
data_dif <- df_dif %>%
dplyr::select(-IDSTU, -rapid_group)
group_dif <- df_dif$rapid_group
# 7. DIF analizi
dif_mh <- difMH(
Data = data_dif,
group = group_dif,
focal.name = 1,
p.adjust.method = "BH"
)
# 8. Özetleme
summary(dif_mh)
## Length Class Mode
## MH 26 -none- numeric
## p.value 26 -none- numeric
## alphaMH 26 -none- numeric
## varLambda 26 -none- numeric
## MHstat 1 -none- character
## alpha 1 -none- numeric
## thr 1 -none- numeric
## DIFitems 19 -none- numeric
## correct 1 -none- logical
## exact 1 -none- logical
## match 1 -none- character
## p.adjust.method 1 -none- character
## adjusted.p 26 -none- numeric
## purification 1 -none- logical
## names 26 -none- character
## anchor.names 0 -none- NULL
## save.output 1 -none- logical
## output 2 -none- character
dif_items <- tibble(
Item = colnames(data_dif),
p.value = dif_mh$p.value,
adjusted.p = dif_mh$adjusted.p,
MH = dif_mh$MH,
alphaMH = dif_mh$alphaMH,
ETS.Class = sqrt(dif_mh$MH) * sign(dif_mh$alphaMH - 0.5)
) %>%
filter(adjusted.p < 0.05 & abs(ETS.Class) > 0.5) %>%
left_join(irt_params, by = c("Item" = "ITEM"))
kable(dif_items, caption = "DIF Gösteren Maddeler", digits = 3) %>%
kable_styling()
| Item | p.value | adjusted.p | MH | alphaMH | ETS.Class | a | b | g | u | difficulty_group |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0.000 | 0.000 | 86.550 | 0.452 | -9.303 | 3.681 | -1.809 | 0 | 1 | Düşük |
| 2 | 0.029 | 0.039 | 4.796 | 0.843 | 2.190 | 2.348 | -0.568 | 0 | 1 | Düşük |
| 7 | 0.000 | 0.000 | 37.036 | 0.577 | 6.086 | 3.397 | -0.920 | 0 | 1 | Düşük |
| 9 | 0.001 | 0.002 | 10.836 | 0.800 | 3.292 | 3.175 | -0.806 | 0 | 1 | Düşük |
| 10 | 0.001 | 0.002 | 10.794 | 0.717 | 3.285 | 2.586 | -1.411 | 0 | 1 | Düşük |
| 12 | 0.020 | 0.028 | 5.451 | 0.809 | 2.335 | 2.373 | -2.012 | 0 | 1 | Düşük |
| 13 | 0.000 | 0.000 | 17.127 | 0.738 | 4.138 | 3.465 | -0.835 | 0 | 1 | Düşük |
| 15 | 0.000 | 0.000 | 34.520 | 0.603 | 5.875 | 2.850 | -1.282 | 0 | 1 | Düşük |
| 16 | 0.000 | 0.000 | 29.269 | 0.648 | 5.410 | 2.091 | -1.087 | 0 | 1 | Düşük |
| 17 | 0.001 | 0.001 | 12.017 | 0.785 | 3.466 | 2.756 | -1.039 | 0 | 1 | Düşük |
| 18 | 0.000 | 0.000 | 18.167 | 0.777 | 4.262 | 2.078 | -0.924 | 0 | 1 | Düşük |
| 19 | 0.000 | 0.000 | 27.486 | 0.614 | 5.243 | 2.735 | -1.767 | 0 | 1 | Düşük |
| 20 | 0.000 | 0.000 | 66.899 | 0.520 | 8.179 | 2.937 | -1.130 | 0 | 1 | Düşük |
| 21 | 0.000 | 0.000 | 82.456 | 0.464 | -9.081 | 2.985 | -3.243 | 0 | 1 | Düşük |
| 22 | 0.000 | 0.000 | 67.833 | 0.537 | 8.236 | 2.301 | -1.574 | 0 | 1 | Düşük |
| 23 | 0.000 | 0.000 | 58.187 | 0.636 | 7.628 | 1.530 | -1.325 | 0 | 1 | Düşük |
| 24 | 0.000 | 0.000 | 101.971 | 0.403 | -10.098 | 3.045 | -1.986 | 0 | 1 | Düşük |
| 25 | 0.000 | 0.000 | 45.905 | 0.646 | 6.775 | 3.122 | -1.656 | 0 | 1 | Düşük |
| 26 | 0.000 | 0.000 | 66.309 | 0.525 | 8.143 | 2.787 | -2.155 | 0 | 1 | Düşük |
öğrencilerin test maddelerine verdikleri yanıt süreleri temel alınarak oluşturulan hızlı ve yavaş yanıtlayıcı gruplar arasında bazı maddelerin sistematik olarak farklı işleyip işlemediği incelenmiştir. Bu amaçla, Mantel-Haenszel (MH) yöntemi kullanılarak davranışsal temelli farklı işleyen madde (DIF) analizi gerçekleştirilmiştir.
İlk olarak, tüm öğrencilerin yanıt sürelerinin ortalaması alınmış ve bu ortalama süreye göre öğrenciler iki gruba ayrılmıştır. Ortalama RAPID değeri 0.15’in üzerinde olan öğrenciler “hızlı yanıtlayan grup (focal group)” olarak tanımlanırken, diğerleri “yavaş yanıtlayan grup (referans group)” olarak sınıflandırılmıştır. Daha sonra her öğrencinin testteki tüm maddelere verdiği yanıtlar ikili (0/1) formata çevrilerek geniş formata dönüştürülmüştür. Bu yapı, MH analizinin uygulanmasına uygun bir matris oluşturmuştur.
Analiz sonucunda, toplam 26 maddenin istatistiksel olarak anlamlı düzeyde DIF gösterdiği saptanmıştır. Anlamlılık düzeyi olarak Benjamini–Hochberg yöntemi ile düzeltilmiş p-değerleri (adjusted p) esas alınmış ve adjusted.p < 0.05 kriteri kullanılmıştır. Ayrıca, ETS sınıflamasına göre anlamlılık yorumlarını desteklemek amacıyla ETS.Class değeri hesaplanmıştır. Bu değer, hem etkinin büyüklüğünü hem de yönünü göstermekte olup |ETS.Class| > 0.5 olan maddeler dikkate alınmıştır.
DIF gösteren bu 26 maddenin tamamı, madde tepki kuramı (IRT) temelinde yapılan analizde “düşük zorluk” kategorisinde sınıflandırılmıştır. Bu durum, özellikle kolay soruların yanıt davranışları açısından daha duyarlı olduğunu ve farklı strateji kullanan öğrenci grupları arasında sistematik farklar yaratabileceğini göstermektedir.
DIF yönüne göre maddeler incelendiğinde, bazı maddelerin hızlı yanıtlayan grup lehine, bazılarının ise yavaş yanıtlayan grup lehine çalıştığı belirlenmiştir. Örneğin, Madde 13, 22 ve 23 gibi maddelerde ETS.Class değerleri pozitif yönde yüksek bulunmuş ve bu durum, bu maddelerin hızlı yanıt veren öğrenciler lehine işlediğini göstermiştir. Buna karşılık, Madde 1, 21 ve 24 gibi bazı maddelerde ETS.Class değeri negatif ve yüksek bulunmuş, yani bu maddeler yavaş yanıt veren öğrenciler lehine avantaj sağlamaktadır.
Özellikle Madde 24, MH istatistiği (MH = 101.971) ve ETS.Class değeri (–10.098) açısından dikkat çekici bir farklılık göstermektedir. Bu bulgu, maddenin ölçme adaletini ciddi biçimde ihlal ettiğine işaret etmektedir. Benzer şekilde Madde 1 ve Madde 21’de de oldukça yüksek negatif ETS.Class değerleri gözlemlenmiştir. Bu maddelerin tamamı kolay düzeyde olmasına rağmen, yavaş yanıtlayan öğrencilerin bu maddelerde sistematik bir avantaja sahip olması, hızın madde işleyişini etkileyebileceğini göstermektedir.
Elde edilen bulgular, sadece davranışsal düzeyde gözlenen farklılıklarla sınırlı kalmamış, aynı zamanda IRT parametreleri ile de desteklenmiştir. DIF gösteren bu maddelerin ayırt edicilik (a) değerleri oldukça yüksektir; birçok madde için bu değer 2.5’in üzerindedir. Bu durum, DIF gösteren maddelerin ölçme gücünün yüksek olduğunu, ancak aynı zamanda daha hassas şekilde öğrenciler arasında fark yarattığını ortaya koymaktadır. Zorluk parametresi (b) açısından bakıldığında, bu maddelerin büyük çoğunluğunun kolay düzeyde yer aldığı, yani öğrencilerin büyük kısmı tarafından doğru yanıtlandığı görülmektedir.
Buna ek olarak, üç parametreli IRT modeli (3PL) ile yapılan analizlerde, bazı DIF gösteren maddelerde şans (guessing) parametresi (c) anlamlı düzeyde bulunmuştur. Özellikle Madde 18’in guessing değeri 0.102, Madde 23’ün guessing değeri 0.085 olarak tahmin edilmiştir. Bu, ilgili maddelerde bazı öğrencilerin bilgi yerine tahmine dayalı stratejilerle doğru yanıt verdiği olasılığını artırmaktadır. Bu durum da hız faktörüyle birleştiğinde, davranışsal temelli yanlılığın içeriğe değil stratejiye dayalı olduğunu destekler niteliktedir.
Toplamda elde edilen bu bulgular, hız faktörünün testin geçerliğini doğrudan etkileyebileceğini göstermektedir. Öğrencilerin aynı bilişsel yeterlik düzeyinde olmalarına rağmen farklı hızda yanıt vermeleri, bazı maddelerde sistematik avantaj ya da dezavantaj yaratabilmektedir. Bu durum, ölçme adaletinin ihlali anlamına gelmekte ve değerlendirme sonuçlarının güvenilirliğini azaltabilmektedir.
Sonuç olarak, DIF gösteren bu 26 madde, içerik uzmanları ve test geliştiricileri tarafından dikkatle incelenmelidir. Gerekirse bu maddeler revize edilmeli ya da testten çıkarılmalıdır. Ayrıca, bu tür davranışsal farklılıkların test analiz süreçlerine entegre edilmesi, özellikle büyük ölçekli sınavlarda ölçme adaletinin sağlanması açısından kritik öneme sahiptir. Öğrencilerin yalnızca bilişsel düzeyde değil, aynı zamanda davranışsal stratejiler açısından da testlerle etkileşim biçimleri değerlendirilmelidir.
6. TABLOLAR
# Madde Zorlukları
p1 <- ggplot(irt_params, aes(x = b, fill = difficulty_group)) +
geom_histogram(bins = 15, alpha = 0.8) +
labs(title = "Madde Güçlük Dağılımı", x = "b (Güçlük)", y = "Frekans") +
theme_minimal()
p1
# Hızlı tahmin etkisi
effects <- ggpredict(hlm_model, terms = c("RAPID", "difficulty_group"))
p2 <- ggplot(effects, aes(x = x, y = predicted, color = group)) +
geom_line(linewidth = 1) +
geom_ribbon(aes(ymin = conf.low, ymax = conf.high, fill = group), alpha = 0.2) +
labs(title = "Hızlı Tahminin Doğruluğa Etkisi", x = "Hızlı Tahmin", y = "Doğruluk") +
theme_minimal()
p2
# DIF Etkisi
p3 <- if(nrow(dif_items) > 0) {
ggplot(dif_items, aes(x = b, y = ETS.Class, color = difficulty_group)) +
geom_point(size = 3) +
geom_hline(yintercept = c(-0.5, 0.5), linetype = "dashed", color = "darkblue") +
labs(title = "DIF Etkisi", x = "Madde Güçlüğü", y = "ETS Sınıfı") +
theme_minimal()
} else {
ggplot() + annotate("text", x = 0.5, y = 0.5, label = "DIF Etkisi Yok", size = 5) + theme_void()
}
p3