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")
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ı")
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")
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")
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.