# ==========================================
# 1. VERİ YÜKLEME (OLC_733 KLASÖRÜNDEN)
# ==========================================
library(mirt)
## Warning: package 'mirt' was built under R version 4.5.3
## Zorunlu paket yükleniyor: stats4
## Zorunlu paket yükleniyor: lattice
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.5.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Türkçe karakter içermeyen temiz klasör yolundan doğrudan çağırıyoruz:
load("C:/Users/User/OneDrive/Desktop/OLC_733/PISA_STU_2009.Rda")
# Hafızaya yüklenen nesneyi kontrol edip aktif matrise aktarıyoruz
veri_aktif <- PISA_STU_2009
# 13 politom maddeyi seçiyoruz
politom_df <- veri_aktif %>%
select(ST27Q01, ST27Q02, ST27Q03, ST27Q04, ST27Q05,
ST27Q06, ST27Q07, ST27Q08, ST27Q09, ST27Q10,
ST27Q11, ST27Q12, ST27Q13) %>%
haven::zap_labels() %>% # <--- Etiketleri temizler, veriyi standart vektöre dönüştürür
mutate(across(everything(), ~as.numeric(.))) %>% # Artık doğrudan numeric yapabilirsiniz
na.omit()
# Örneklem seçimi (N=800)
set.seed(456)
politom_final <- politom_df[sample(nrow(politom_df), 800), ]
# ==========================================
# 2. MODEL SEÇİMİ VE ANOVA TABLOSU
# ==========================================
mod_grm <- mirt(politom_final, 1, itemtype = 'graded')
mod_gpcm <- mirt(politom_final, 1, itemtype = 'gpcm')
# Model karşılaştırma tablosu (Hoca'nın beklediği o anova)
anova(mod_grm, mod_gpcm)
## AIC SABIC HQ BIC logLik X2 df p
## mod_grm 23762.31 23840.78 23855.89 24005.91 -11829.15
## mod_gpcm 23800.33 23878.80 23893.91 24043.93 -11848.17 -38.025 0 NaN
# ==========================================
# ADIM 2: SEÇİLEN GRM MODELİNİN VARSAYIMLARI
# ==========================================
# 1. Tek Boyutluluk İçin Mutlak Uyum İndeksleri (M2)
# (Bu komut aynı zamanda model-veri uyumunu da doğrular)
M2(mod_grm)
## M2 df p RMSEA RMSEA_5 RMSEA_95 SRMSR TLI CFI
## stats 297.424 39 0 0.091 0.082 0.101 0.096 0.778 0.834
# 2. Yerel Bağımsızlık Varsayımı (Yen'in Q3 kalıntı değerleri)
# Konsolda çıkacak matriste değerlerin genel olarak < .20 olması istenir.
residuals(mod_grm, type = "LD")
## LD matrix (lower triangle) and standardized residual correlations (upper triangle)
##
## Upper triangle summary:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.138 -0.109 -0.091 -0.034 0.078 0.259
##
## ST27Q01 ST27Q02 ST27Q03 ST27Q04 ST27Q05 ST27Q06 ST27Q07 ST27Q08 ST27Q09
## ST27Q01 -0.112 0.259 -0.138 0.252 0.093 0.115 -0.108 -0.093
## ST27Q02 30.361 -0.115 0.070 -0.097 0.087 -0.109 -0.115 -0.084
## ST27Q03 160.497 31.518 -0.128 0.196 -0.112 0.122 -0.084 -0.127
## ST27Q04 45.560 11.778 39.061 -0.102 -0.085 -0.110 0.080 -0.073
## ST27Q05 152.416 22.766 92.366 24.810 0.131 0.177 -0.090 -0.098
## ST27Q06 20.710 18.023 30.312 17.244 41.446 0.169 -0.112 -0.130
## ST27Q07 31.868 28.352 35.823 28.956 75.542 68.200 -0.060 -0.071
## ST27Q08 27.747 31.616 16.912 15.285 19.442 29.863 8.688 0.103
## ST27Q09 20.601 17.023 38.609 12.732 23.163 40.772 12.161 25.233
## ST27Q10 21.200 19.846 22.168 14.598 27.120 23.740 17.461 21.458 14.810
## ST27Q11 19.814 13.937 42.005 32.500 25.738 29.030 7.203 30.601 20.340
## ST27Q12 36.609 18.341 28.347 6.321 31.037 30.446 20.892 58.343 27.976
## ST27Q13 10.366 20.503 33.042 15.798 24.013 15.985 15.754 32.405 43.963
## ST27Q10 ST27Q11 ST27Q12 ST27Q13
## ST27Q01 -0.094 -0.091 -0.124 -0.066
## ST27Q02 -0.091 -0.076 0.087 -0.092
## ST27Q03 -0.096 -0.132 -0.109 -0.117
## ST27Q04 0.078 -0.116 0.051 -0.081
## ST27Q05 -0.106 -0.104 -0.114 -0.100
## ST27Q06 -0.099 0.110 -0.113 -0.082
## ST27Q07 -0.085 -0.055 -0.093 -0.081
## ST27Q08 0.095 -0.113 0.156 -0.116
## ST27Q09 0.079 -0.092 -0.108 -0.135
## ST27Q10 -0.099 0.167 -0.093
## ST27Q11 23.700 -0.082 0.094
## ST27Q12 66.954 16.287 0.084
## ST27Q13 20.873 21.227 16.897
# ==========================================
# ADIM 4: PARAMETRELER VE MKE'LER (SE)
# ==========================================
# simplify = TRUE kullanmıyoruz ki parametrelerin hemen altında SE (MKE) değerleri görünsün
grm_parametreler <- coef(mod_grm, IRTpars = TRUE)
# İlk 4 maddenin teknik parametre ve hata çıktılarını ekrana yazdırıyoruz:
grm_parametreler[1:4]
## $ST27Q01
## a b1 b2 b3
## par 0.5768947 -2.685449 2.013958 4.577691
##
## $ST27Q02
## a b1 b2 b3
## par 1.324775 -3.167236 -1.35082 0.7715399
##
## $ST27Q03
## a b1 b2 b3
## par 0.5949024 -2.312802 0.9570928 3.376379
##
## $ST27Q04
## a b1 b2 b3
## par 1.481798 -2.611004 -0.5529399 1.029426
# Modeli kurarken SE = TRUE argümanını ekliyoruz:
mod_grm <- mirt(politom_final, 1, itemtype = 'graded', SE = TRUE)
# Şimdi tekrar parametreleri çağırıyoruz:
politom_parametreler <- coef(mod_grm, IRTpars = TRUE)
politom_parametreler[1:4]
## $ST27Q01
## a b1 b2 b3
## par 0.5768947 -2.685449 2.013958 4.577691
## CI_2.5 0.4129089 -3.443810 1.413476 3.294788
## CI_97.5 0.7408806 -1.927088 2.614440 5.860594
##
## $ST27Q02
## a b1 b2 b3
## par 1.324775 -3.167236 -1.350820 0.7715399
## CI_2.5 1.104981 -3.669533 -1.575352 0.5987768
## CI_97.5 1.544568 -2.664939 -1.126288 0.9443031
##
## $ST27Q03
## a b1 b2 b3
## par 0.5949024 -2.312802 0.9570928 3.376379
## CI_2.5 0.4348381 -2.946250 0.6014079 2.466645
## CI_97.5 0.7549668 -1.679354 1.3127778 4.286113
##
## $ST27Q04
## a b1 b2 b3
## par 1.481798 -2.611004 -0.5529399 1.0294265
## CI_2.5 1.248828 -2.986432 -0.6961710 0.8470287
## CI_97.5 1.714768 -2.235576 -0.4097089 1.2118242
# ==========================================
# 5. BAŞLIK: GRAFİKLER (Yönerge Madde 8, 9 ve 10)
# ==========================================
# Grafik 1: Kategori Tepki Eğrileri (Trace Lines)
plot(mod_grm, type = 'trace', which.items = 1:4,
main = "Kategori Tepki Eğrileri (Trace Lines)")

# Grafik 2: Madde Bilgi Fonksiyonları (Item Information Curves)
plot(mod_grm, type = 'infotrace', which.items = 1:4,
main = "Madde Bilgi Fonksiyonları (IIC)")

# Grafik 3: Test Bilgi Fonksiyonu ve Standart Hata Eğrisi (TIF & SE)
plot(mod_grm, type = 'infoSE',
main = "Test Bilgi Fonksiyonu ve Standart Hata Egrisi")

# Grafik 4: Test Karakteristik Eğrisi (Test Characteristic Curve)
plot(mod_grm, type = 'score',
main = "Test Karakteristik Egrisi (TCC)")

# ==============================================================================
# ADIM 6: BİREYSEL YETENEK PARAMETRELERİ (θ) VE GÜVENİRLİK (Çok Kategorili)
# ==============================================================================
# 1. Bireysel Yetenek Puanlarını Tahmin Etme (EAP Yöntemi)
cokat_yetenek <- fscores(mod_grm, method = "EAP", full.scores = TRUE)
# Puanların genel özet istatistiklerini görelim:
summary(cokat_yetenek)
## F1
## Min. :-3.7264192
## 1st Qu.:-0.5608975
## Median :-0.0291213
## Mean : 0.0002451
## 3rd Qu.: 0.5314303
## Max. : 2.7939350
sd(cokat_yetenek)
## [1] 0.9112436
# 2. Çok Kategorili Model İçin Ampirik Güvenirlik Değerini Hesaplama
ampirik_guvenirlik_cokat <- fscores(mod_grm, method = "EAP", returnList = FALSE)
# mirt paketi üzerinden marjinal güvenirlik çıktısını console'a yazdıralım:
marginal_rxx(mod_grm)
## [1] 0.8322972