Giriş

Derse katılamadığım ama kaydını izlediğm bu öğrenme günlüğünde, veri üretimi konusu ile ilgili bir çalışma tasarlamaya çalıştım. Madde Tepki Kuramı çerçevesinde madde parametrelerinin bireylerin yetenek düzeyine (theta) dayalı sıralamalar üzerindeki etkisini analiz etmeyi amaçladım. Farklı test yapıları altında theta kestirimi yapıp sıralamalarda meydana gelen değişiklikleri karşılaştırmaya çalıştım.

Araştırma sorusu

Aynı öğrencilerden oluşan bir gruba uygulanan farklı yapıda sorular içeren fen bilimleri testleri, bireylerin theta sıralamasını değiştirir mi?

Gerekli Paketlerin Yüklenmesi

library(mirt)
library(irtoys)
library(dplyr)
library(knitr)
library(kableExtra)
library(DT)
library(magrittr)

Öğrencilere ait yetenek (theta) değerleri

set.seed(999)
birey_sayisi <- 1000
madde_sayisi <- 5
ogrenci_no <- paste0("o", 1:birey_sayisi)

1. a ve b Parametreleri Sabit

Tüm maddelerin ayırt edicilik (a) ve zorluk (b) parametrelerinin sabit olduğu bir test formu oluşturulmuştur.

set.seed(999)
birey_sayisi <- 1000
madde_sayisi <- 5
theta <- rnorm(birey_sayisi)

a <- runif(madde_sayisi, 0.5, 2)
b <- runif(madde_sayisi, -2, 2)
maddepar1 <- data.frame(a1 = a, d = -a * b)

cevap1 <- simdata(a = maddepar1$a1, d = maddepar1$d, N = birey_sayisi, itemtype = '2PL')

model1 <- mirt(cevap1, 1, itemtype = "2PL", verbose = FALSE)
theta1 <- fscores(model1, method = "EAP")

theta_df1 <- data.frame(ogrenci_no = paste0("o", 1:birey_sayisi), theta = theta1[,1])

datatable(theta_df1, options = list(pageLength = 10, autoWidth = TRUE)) %>%
  formatRound(columns = "theta", digits = 2) %>%
  formatStyle(columns = "theta", backgroundColor = "lightblue")

2. a Sabit, b Değişken

Bu sefer maddelerin ayırt edicilik (a) parametreleri sabit tutulmuş, zorluk (b) değerleri -2 ile +2 arasında olacak şekilde değiştirilmiştir. Amaç, madde zorluklarının theta sıralaması üzerindeki etkisini gözlemlemek.

set.seed(42)
a2 <- rep(1, madde_sayisi)
b2 <- seq(-2, 2, length.out = madde_sayisi)
maddepar2 <- data.frame(a2 = a2, d = -a2 * b2)

cevap2 <- simdata(a = maddepar2$a2, d = maddepar2$d, N = birey_sayisi, itemtype = '2PL')

model2 <- mirt(cevap2, 1, itemtype = "2PL", verbose = FALSE)
theta2 <- fscores(model2, method = "EAP")

theta_df2 <- data.frame(ogrenci_no = ogrenci_no, theta = theta2[,1])

datatable(theta_df2, options = list(pageLength = 10, autoWidth = TRUE)) %>%
  formatRound(columns = "theta", digits = 2) %>%
  formatStyle(columns = "theta", backgroundColor = "lightgreen")

3. b Sabit, a Değişken

Bu sefer tüm maddelerin zorluk (b) parametreleri sabit tutulmuş, ayırt edicilik (a) parametreleri -2 ile +2 arasında olacak şekilde değiştirilmiştir.

set.seed(84)
a3 <- seq(0.5, 2.5, length.out = madde_sayisi)
b3 <- rep(1, madde_sayisi)
maddepar3 <- data.frame(a3 = a3, d = -a3 * b3)

cevap3 <- simdata(a = maddepar3$a3, d = maddepar3$d, N = birey_sayisi, itemtype = '2PL')

model3 <- mirt(cevap3, 1, itemtype = "2PL", verbose = FALSE)
theta3 <- fscores(model3, method = "EAP")

theta_df3 <- data.frame(ogrenci_no = ogrenci_no, theta = theta3[,1])

datatable(theta_df3, options = list(pageLength = 10, autoWidth = TRUE)) %>%
  formatRound(columns = "theta", digits = 2) %>%
  formatStyle(columns = "theta", backgroundColor = "lightpink")

Sıralama Karşılaştırmaları

Farklı senaryolarda elde edilen theta değerlerinin sıralamalarını karşılaştırmak için ilk ve son 20 öğrencinin yer değiştirip değiştirmediğini analiz edelim.

ilk_son_karsilastir <- function(df1, df2) {
  ilk1 <- head(df1[order(df1$theta), "ogrenci_no"], 20)
  son1 <- tail(df1[order(df1$theta), "ogrenci_no"], 20)
  
  ilk2 <- head(df2[order(df2$theta), "ogrenci_no"], 20)
  son2 <- tail(df2[order(df2$theta), "ogrenci_no"], 20)
  
    tablo <- data.frame(
    Sıra = 1:20,
    Ilk20_S1 = ilk1,
    Ilk20_S2 = ilk2,
    Son20_S1 = rev(son1),
    Son20_S2 = rev(son2)
  )
  
  list(
    tablo = tablo,
    fark_ilk = sum(!(ilk1 %in% ilk2)),
    fark_son = sum(!(son1 %in% son2))
  )
}

1 vs 2 Karşılaştırması

karsilastirma12 <- ilk_son_karsilastir(theta_df1, theta_df2)
kable(karsilastirma12$tablo, caption = "Senaryo 1 vs Senaryo 2: İlk ve Son 20 Öğrenci Karşılaştırması") %>% 
  kable_styling("striped", full_width = TRUE, position = "center") %>%
  column_spec(1, bold = TRUE) %>%
  column_spec(2:5, background = "#f9f9f9") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#0073e6") %>%
  row_spec(1:20, background = "#f2f2f2")
Senaryo 1 vs Senaryo 2: İlk ve Son 20 Öğrenci Karşılaştırması
Sıra Ilk20_S1 Ilk20_S2 Son20_S1 Son20_S2
1 o1 o39 o914 o996
2 o10 o59 o869 o988
3 o19 o85 o831 o974
4 o32 o87 o730 o966
5 o35 o97 o654 o938
6 o40 o122 o589 o932
7 o59 o150 o583 o905
8 o77 o173 o574 o900
9 o78 o201 o572 o899
10 o90 o251 o524 o883
11 o93 o253 o451 o832
12 o101 o269 o437 o820
13 o110 o338 o410 o813
14 o113 o357 o331 o790
15 o115 o368 o327 o775
16 o117 o426 o316 o758
17 o124 o449 o288 o746
18 o129 o469 o233 o742
19 o131 o509 o163 o685
20 o137 o530 o148 o613

Zorluk seviyelerindeki değişiklik sıralama değişikliği yaşamasına neden olmuştur.

1 vs 3 Karşılaştırması

karsilastirma13 <- ilk_son_karsilastir(theta_df1, theta_df3)
kable(karsilastirma13$tablo, caption = "Senaryo 1 vs Senaryo 3: İlk ve Son 20 Öğrenci Karşılaştırması")
Senaryo 1 vs Senaryo 3: İlk ve Son 20 Öğrenci Karşılaştırması
Sıra Ilk20_S1 Ilk20_S2 Son20_S1 Son20_S2
1 o1 o8 o914 o950
2 o10 o9 o869 o863
3 o19 o10 o831 o841
4 o32 o11 o730 o804
5 o35 o12 o654 o788
6 o40 o16 o589 o683
7 o59 o19 o583 o672
8 o77 o22 o574 o665
9 o78 o24 o572 o655
10 o90 o26 o524 o645
11 o93 o33 o451 o613
12 o101 o38 o437 o599
13 o110 o41 o410 o534
14 o113 o49 o331 o445
15 o115 o50 o327 o405
16 o117 o63 o316 o356
17 o124 o64 o288 o324
18 o129 o65 o233 o312
19 o131 o66 o163 o239
20 o137 o71 o148 o165
kable(karsilastirma13$tablo, caption = "Senaryo 1 vs Senaryo 3: İlk ve Son 20 Öğrenci Karşılaştırması") %>% 
  kable_styling("striped", full_width = TRUE, position = "center") %>%
  column_spec(1, bold = TRUE) %>%
  column_spec(2:5, background = "#f9f9f9") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#0073e6") %>%
  row_spec(1:20, background = "#f2f2f2")
Senaryo 1 vs Senaryo 3: İlk ve Son 20 Öğrenci Karşılaştırması
Sıra Ilk20_S1 Ilk20_S2 Son20_S1 Son20_S2
1 o1 o8 o914 o950
2 o10 o9 o869 o863
3 o19 o10 o831 o841
4 o32 o11 o730 o804
5 o35 o12 o654 o788
6 o40 o16 o589 o683
7 o59 o19 o583 o672
8 o77 o22 o574 o665
9 o78 o24 o572 o655
10 o90 o26 o524 o645
11 o93 o33 o451 o613
12 o101 o38 o437 o599
13 o110 o41 o410 o534
14 o113 o49 o331 o445
15 o115 o50 o327 o405
16 o117 o63 o316 o356
17 o124 o64 o288 o324
18 o129 o65 o233 o312
19 o131 o66 o163 o239
20 o137 o71 o148 o165

Ayırt edicilik değerlerindeki değişiklik, bireylerin sıralamasında farklılık yaratmıştır.

2 vs 3 Karşılaştırması

karsilastirma23 <- ilk_son_karsilastir(theta_df2, theta_df3)
kable(karsilastirma23$tablo, caption = "Senaryo 2 vs Senaryo 3: İlk ve Son 20 Öğrenci Karşılaştırması") %>% 
  kable_styling("striped", full_width = TRUE, position = "center") %>%
  column_spec(1, bold = TRUE) %>%
  column_spec(2:5, background = "#f9f9f9") %>%
  row_spec(0, bold = TRUE, color = "white", background = "#0073e6") %>%
  row_spec(1:20, background = "#f2f2f2")
Senaryo 2 vs Senaryo 3: İlk ve Son 20 Öğrenci Karşılaştırması
Sıra Ilk20_S1 Ilk20_S2 Son20_S1 Son20_S2
1 o39 o8 o996 o950
2 o59 o9 o988 o863
3 o85 o10 o974 o841
4 o87 o11 o966 o804
5 o97 o12 o938 o788
6 o122 o16 o932 o683
7 o150 o19 o905 o672
8 o173 o22 o900 o665
9 o201 o24 o899 o655
10 o251 o26 o883 o645
11 o253 o33 o832 o613
12 o269 o38 o820 o599
13 o338 o41 o813 o534
14 o357 o49 o790 o445
15 o368 o50 o775 o405
16 o426 o63 o758 o356
17 o449 o64 o746 o324
18 o469 o65 o742 o312
19 o509 o66 o685 o239
20 o530 o71 o613 o165

Her iki senaryoda farklı madde parametreleri değiştiği için sıralama değişimi daha da yüksektir.

Sonuç

Bu çalışmada, madde tepki kuramı çerçevesinde farklı madde parametrelerinin bireylerin yetenek düzeyine dayalı sıralamalar üzerindeki etkisini verileri kendim üreterek analiz etmeye çalıştım. Veri üretimi ve analiz sürecinde, farklı senaryolar altında theta kestirimleri yaparak sıralamalardaki değişiklikleri gözlemledim. Sonuç olarak, madde zorluk ve ayırt edicilik parametrelerindeki değişikliklerin bireylerin sıralamalarını etkilediğini gözlemledim.

Not: Öğrenme günlüğü yaklaşık olarak 2 saat sürmüştür.