knitr::opts_chunk$set(
    message = FALSE,
    warning = FALSE,
    include = TRUE)

Regresyon Pekiştirme ve Proje Ön Hazırlığı

Teorik Pekiştirme ve Öğrenme Günlüğü

Bu hafta derste işlediğimiz regresyon konusunu hem teorik hem de uygulama açısından daha iyi pekiştirmek için IMS Tutorials – 03 Model kaynağının ilk sekiz bölümünü tamamladım. Açıkçası modüller beklediğimden daha açıklayıcı ve akıcıydı; kendi ders notlarımla birlikte götürünce aradaki bağlantıları çok daha rahat kurdum. Aşağıda her bölümle ilgili kısa notlarımı, aklımda kalan kritik noktaları ve küçük R denemelerimi yazıyorum.

1. Çalışma Modülleri

1.1. Visualizing two variables

Bu bölümde scatterplot’un aslında bir model kurmadan önce “hikâyeyi anlamanın” ilk adımı olduğunu fark ettim. Örneğin değişkenleri çizmeden korelasyon ya da regresyona geçmek riskli olabiliyormuş.

R’de küçük bir deneme yaptım: mtcars veri setindeki ağırlık (wt) ile yakıt tüketimi (mpg) ilişkisini inceleyerek başladım. Grafiğe bakınca ağırlık arttıkça mpg düşüyor.
Bu, regresyon öncesi zihnimde bir “model fikri” oluşturdu.

plot(mtcars$wt, mtcars$mpg,
     pch = 19, col = "darkred",
     xlab = "Ağırlık (1000 lbs)",
     ylab = "Yakıt verimliliği (mpg)",
     main = "Ağırlık ve Yakıt Verimliliği İlişkisi")

Kendi kendime “aa evet, burada hafif pozitif bir ilişki var gibi” demeye başladığımı fark ettim. Modülün outlier tespiti kısmı da işime yaradı; uç değerlerin regresyon çizgisini nasıl çekebildiğini görsel olarak anlamak çok iyi oldu.

1.2. Correlation

Bu bölümde korelasyonun nedensellik olmadığını tekrar etmek iyi geldi.
Ayrıca spurious correlation kısmı çok eğlenceliydi; çok alakasız değişkenlerin istatistiksel olarak anlamlı çıkabileceğini görmek düşündürücüydü. R’de Pearson korelasyonu denedim:

Genelde ~ -0.87 gibi bir sonuç veriyor yani çok güçlü negatif ilişki. Matriks korelasyonuna da baktım. Korelasyonun yönü, gücü ve bağlama göre yorumlanması gerektiğini tekrar hatırladım.

cor(mtcars$wt, mtcars$mpg)
## [1] -0.8676594
cor(mtcars[, c("mpg", "wt", "hp")])
##            mpg         wt         hp
## mpg  1.0000000 -0.8676594 -0.7761684
## wt  -0.8676594  1.0000000  0.6587479
## hp  -0.7761684  0.6587479  1.0000000

Ders notlarıyla karşılaştırınca aslında korelasyon katsayısının “güçlü/zayıf” olmasının bağlama göre değiştiğini bir kez daha anladım.

1.3. Simple linear regression

Bu bölüm benim için çok netleştirici oldu.
Özellikle “best fit line” mantığını görselleştirince regresyon çizgisinin nasıl seçildiğini gerçekten anladım. Kendi denemem:

model1 <- lm(mpg ~ wt, data = mtcars)
summary(model1)
## 
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5432 -2.3647 -0.1252  1.4096  6.8727 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  37.2851     1.8776  19.858  < 2e-16 ***
## wt           -5.3445     0.5591  -9.559 1.29e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.046 on 30 degrees of freedom
## Multiple R-squared:  0.7528, Adjusted R-squared:  0.7446 
## F-statistic: 91.38 on 1 and 30 DF,  p-value: 1.294e-10

Burada öğrendiğim şey:

  • β1 negatif yani “ağır araç daha fazla yakıt tüketir”

  • R² yüksek (~0.75) yani ağırlık mpg’nin çoğunu açıklıyor

Modeli grafiğe ekledim: Bu çizgi bence basit regresyonu en net anlatan şey.

plot(mtcars$wt, mtcars$mpg, pch=19)
abline(model1, col="blue", lwd=2)

1.4. Interpreting regression models

Bu bölümde katsayı yorumlamayı daha bilinçli yapmayı öğrendim.
Mesela:

  • β0 → X=0 iken beklenen Y değeri

  • β1 → X’teki 1 birim değişimin Y üzerindeki etkisi

Basit ama çoğu zaman yanlış yorumlanıyor.

Ayrıca predict() fonksiyonunu da denedim:

Katsayılar:

  • β0 → ağırlık 0 olursa tahmini mpg (teorik başlangıç noktası)

  • β1 → ağırlık her 1000 lbs artınca mpg ortalama X kadar düşer

predict(model1, newdata = data.frame(wt = c(2, 3, 4)))
##        1        2        3 
## 26.59618 21.25171 15.90724

1.5. Model fit

Bu bölümde özellikle R² kavramına yoğunlaştım. Önceden sadece “modelin açıklama gücü” diye ezbere biliyordum ama şimdi:

  • Y’nin varyansının ne kadarını açıkladığını,

  • Model fit’inin her zaman yüksek olmak zorunda olmadığını,

  • Outlier’ların R²’yi şişirebildiğini

daha net anladım. Ayrıca Cook’s distance kısmı çok önemliymiş:

plot(cooks.distance(model1), type="h")

Cook’s distance grafiği bana bazı araçların diğerlerinden daha uç olduğunu gösterdi.

Leverage grafiği de: Bu bölümde “tek satır tüm modeli bozabilir” fikri pekişti.

plot(hatvalues(model1))

1.6. Parallel slopes

Burası için silindir sayısını (cyl) faktöre çevirdim:

mtcars$cyl_f <- factor(mtcars$cyl)

model2 <- lm(mpg ~ wt + cyl_f, data=mtcars)
summary(model2)
## 
## Call:
## lm(formula = mpg ~ wt + cyl_f, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5890 -1.2357 -0.5159  1.3845  5.7915 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  33.9908     1.8878  18.006  < 2e-16 ***
## wt           -3.2056     0.7539  -4.252 0.000213 ***
## cyl_f6       -4.2556     1.3861  -3.070 0.004718 ** 
## cyl_f8       -6.0709     1.6523  -3.674 0.000999 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.557 on 28 degrees of freedom
## Multiple R-squared:  0.8374, Adjusted R-squared:   0.82 
## F-statistic: 48.08 on 3 and 28 DF,  p-value: 3.594e-11

Bu modelde eğimler aynı ama her silindir grubunun başlangıç mpg seviyesi farklı. Paralel çizgi mantığı burada çok netti.

1.7. Evaluating and extending parallel slopes model

Bu kez eğim silindir sayısına göre değişsin.Bu bölümde fark ettiğim şey:Eğer wt:cyl_f terimi anlamlıysa eğer “silindir sayısı moderatör” olur. Bu da modülün amaçladığı interaksiyon mantığını oturttu.

model3 <- lm(mpg ~ wt * cyl_f, data=mtcars)
summary(model3)
## 
## Call:
## lm(formula = mpg ~ wt * cyl_f, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.1513 -1.3798 -0.6389  1.4938  5.2523 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   39.571      3.194  12.389 2.06e-12 ***
## wt            -5.647      1.359  -4.154 0.000313 ***
## cyl_f6       -11.162      9.355  -1.193 0.243584    
## cyl_f8       -15.703      4.839  -3.245 0.003223 ** 
## wt:cyl_f6      2.867      3.117   0.920 0.366199    
## wt:cyl_f8      3.455      1.627   2.123 0.043440 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.449 on 26 degrees of freedom
## Multiple R-squared:  0.8616, Adjusted R-squared:  0.8349 
## F-statistic: 32.36 on 5 and 26 DF,  p-value: 2.258e-10

1.8. Multiple regression

Birden fazla açıklayıcı değişken:

model4 <- lm(mpg ~ wt + hp + qsec, data=mtcars)
summary(model4)
## 
## Call:
## lm(formula = mpg ~ wt + hp + qsec, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.8591 -1.6418 -0.4636  1.1940  5.6092 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 27.61053    8.41993   3.279  0.00278 ** 
## wt          -4.35880    0.75270  -5.791 3.22e-06 ***
## hp          -0.01782    0.01498  -1.190  0.24418    
## qsec         0.51083    0.43922   1.163  0.25463    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.578 on 28 degrees of freedom
## Multiple R-squared:  0.8348, Adjusted R-squared:  0.8171 
## F-statistic: 47.15 on 3 and 28 DF,  p-value: 4.506e-11

Bu bölümde tekrar ettiğim bence kritik bilgiler:

  • β katsayıları diğer değişkenler sabitken yorumlanır

  • Çoklu regresyonda yön ve büyüklük değişebilir

  • Değişkenler arası kolineerlik gizli etkiler yaratırmış

VIF testi:

library(car)
vif(model4)
##       wt       hp     qsec 
## 2.530443 4.921956 2.873804

Hazır bir dataset olan mtcars ile çalışmak bana. Veri görselleştirmenin aslında bir ön “hipotez” olduğunu, korelasyonun hikâyeyi hızlı özetlediğini, basit regresyonun ilişkiyi modellediğini, çoklu regresyonun daha gerçekçi olduğunu, ekileşimli modellerin moderatörlük mantığını, model fit ve outlier analizinin vazgeçilmez olduğunu, vif’in mutlaka kontrol edilmesi gerektiğini çok net bir sıra içinde gösterdi. Regresyonun hem matematiksel hem de uygulamalı tarafı kafamda birleşti.

2. Proje Ön Hazırlığı (Makale İncelemesi)

İleriki haftalarda benzerlerini yapacağınız çalışma için ön hazırlık yapmanız gerekmektedir.

2.1. Liu & Wang (2022)

Makalesini metodolojik bir gözle okuyunuz.

Liu, Y., & Wang, J. (2022). The mediating–moderating model of inquiry-based learning and science self-efficacy: evidence from PISA 2015. International Journal of Science Education44(7), 1096–1119. https://doi.org/10.1080/09500693.2022.2067364

  • Yazarlar hangi değişkenleri (Inquiry-based learning, Self-efficacy, vb.) kullanmış?

  • Bu değişkenler PISA veri setinde hangi kodlarla yer alıyor?

Değişkenler (Liu & Wang, 2022)
Değişken Türleri Değişken Adı Veri Setindeki Kodları Açıklaması
Bağımsız değişken Inquiry-Based Learning (Sorgulama temelli öğretim) IBTEACH Öğrencinin sınıfta deney, araştırma, hipotez kurma vb. etkinlikleri ne kadar yaptığını gösteren indeks
Bağımlı değişken Science Literacy (Fen başarısı) PV1SCIE – PV10SCIE PISA’nın 10 adet Fen plausible value başarı puanı
Aracı değişken Science Self-Efficacy (Bilim öz-yeterliği) SCIEEFF Öğrencinin bilimsel kavramları anlama ve bilimsel problemleri çözme konusundaki öz-yeterlik inancı
Düzenleyici değişken Teacher Support (Öğretmen desteği algısı) TEACHSUP Öğretmenin teşviki, yardım etmesi, açıklaması gibi destek davranışları
  • “Mediating-Moderating Model” teorik olarak nasıl kurulmuş?

Liu & Wang’ın modeli eş zamanlı aracılık ve düzenleyicilik içeren bir yapıdır.

  1. Inquiry-Based Learning → Self-Efficacy
    Sorgulama temelli öğretim, öğrencinin fen öğrenme sürecinin aktifleşmesiyle öz-yeterliği artırır (Bandura, 1997).

  2. Self-Efficacy → Science Achievement
    Öz-yeterlik artışı fen başarısında dolaylı bir artışa yol açar (Pajares, 2005).

  3. Teacher Support Moderasyon Etkisi
    Öğretmen desteği IBTEACH → Self-Efficacy yolunun gücünü değiştirir.

    • Yüksek öğretmen desteği → etki daha güçlü

    • Düşük öğretmen desteği → etki zayıf

  4. Aracı model:
    IB→SE→SCIIB→SE→SCI

  5. Düzenleyici model:
    IB×TS→SEIB×TS→SE

  6. Birleştirilmiş model:
    Self-efficacy hem aracı, Teacher support ise düzenleyici pozisyondadır.

2.2. Çam vd., (2024)

Aracı düzenleyici modelin kullanıldığı başka makalele incelemesidir.

Çam, E., Ermiş, M., Yılmaz Hiğde, A., & Baştuğ, M. (2024). PIRLS 2021 Türkiye sonuçlarına göre öğrencilerin okuma tutumlarının okuma başarılarına etkisi: Ev ortamı desteğinin aracılık rolü. Nevşehir Hacı Bektaş Veli Üniversitesi SBE Dergisi, 14(3), 1497-1511. https://doi.org/10.30783/nevsosbilen.1516711

  • Yazarlar hangi değişkenleri (Inquiry-based learning, Self-efficacy, vb.) kullanmış?

  • Bu değişkenler PIRLS veri setinde hangi kodlarla yer alıyor?

Değişkenler (Çam vd., 2024)
Değişken Türleri Değişken Adı Veri Setindeki Kodlaması Açıklaması
Bağımsız değişken Okuma Tutumu (Reading Attitude) ASBGRA, ASBGRB, ASBGRC (öğrencinin okuma hakkındaki duyguları – composite index) PIRLS öğrenci anketinde “Reading Attitudes Scale” maddeleri
Bağımlı değişken Okuma Başarısı ASRREA01 – ASRREA10 Okuma için 10 PV başarı puanı
Aracı değişken Ev Ortamı Desteği (Home Environment Support) ASBHOM Ev ortamındaki kitaplar, okuma materyalleri ve destekleyici etkinlikler
  • “Mediating-Moderating Model” teorik olarak nasıl kurulmuş?

Makale aracılık (mediation) modeli üzerine kuruludur; düzenleyici (moderation) kullanılmamıştır. Makalenin kurduğu model tam aracı veya kısmi aracı etkileri inceleyen klasik bir Baron & Kenny (1986) tarzı teorik çerçevedir. Analizler: Yapısal Eşitlik Modellemesi (SEM), Bootstrapped indirect effects (dolaylı etki) şeklindedir. Örneklem: PIRLS 2021 öğrenci örneklemi (Türkiye). NOT: Ağırlıksız analiz yapılması benim çalışmama benzeyeceği için okuma olarak tercih edilmiştir.

  1. Okuma Tutumu → Okuma Başarısı

    • Pozitif okuma tutumu, öğrencinin okuma becerisini artırır.
  2. Okuma Tutumu → Ev Ortamı Desteği

    • Okuma tutumu yüksek olan öğrenciler, daha destekleyici ev ortamlarında bulunma eğilimindedir.
  3. Ev Ortamı Desteği → Okuma Başarısı

    • Zengin ev ortamı (kitaplık, okuma materyalleri vb.) okuma performansını güçlendirir.
  4. Dolaylı Etki (Mediation)

    • Ev ortamı desteği, okuma tutumu ile okuma başarısı arasındaki ilişkiyi kısmen aracı olarak açıklamaktadır.
  5. Doğrudan Etki

    • ReadingAttitude→ReadingAchievement
  6. Aracılık Yolu

    • ReadingAttitude→HomeEnvironment→ReadingAchievement
  7. Birleştirilmiş Model

    • ReadingAchievement=c′(RA)+b(HE)+e

3. Proje Ön Hazırlığı (Veri Seçimi ve Literatür ile Düzenleme)

Sizler benzer bi çalışmayı yapmak için veri olarak istediğiniz PISA, PIRLS vb. araştırmanın istediğiniz döngüsünü seçebilirsiniz.

PIRLS 2021 veri seti seçilmiştir.

3.1. Örneklem Grubu

Analizi Türkiye örneklemi ve eğitim başarısı yüksek olan başka bir ülke (örn: Finlandiya, Singapur) üzerinde ayrı ayrı yürütmek üzere veriyi filtreleyiniz.

Örneklemin Tanıtımı (Atasoy, 2025)
Ülke Dil Ailesi Dil Yapısı PIRLS 2021 Okuma Başarı Ortalama Skoru Okuryazarlık Özellikleri / Notlar
Türkiye (TUR) Türk Dilleri (Oğuz Grubu) Agglutinative (Eklemeli), yüksek ses–harf uyumu 496 (ortalama civarı) Ses temelli çözümleme kolay, morfolojik yapı düzenli
Özbekistan (GUZ) Türk Dilleri (Karluk Grubu) Agglutinative, şeffaf ortografi 490 (orta düzey) Latin/Kiril geçişi etkili, kelime sınırları belirgin
Kazakistan (KAZA) Türk Dilleri (Kıpçak Grubu) Agglutinative, ses uyumu güçlü 487 (orta düzey) Fonolojik farkındalık gelişimi yüksek
Finlandiya (FIN) Uralik (Fin-Ugor) Çok şeffaf ortografi, çok düzenli fonoloji 549 (dünya lideri) Dünyanın en şeffaf yazı sistemlerinden biri; hızlı okur yetiştiriyor
Estonya (EST) Uralik (Fin-Ugor) Şeffaf, eklemeli yapı 561 (dünya 1.si) Hem okuma tutumu hem öz-kavram çok yüksek; ortografik şeffaflığın etkisi güçlü
Macaristan (HUN) Uralik (Fin-Ugor) Agglutinative, orta derecede şeffaf 543 (yüksek başarı) Morfolojik farkındalık güçlü, okuma başarısı yüksek
est_ogrenci  <- read_sav("ASGESPR5.sav")    
est_basari <- read_sav("ATGESPR5.sav")   
est_okul <- read_sav("ACGESPR5.sav") 

fin_ogrenci<- read_sav("ASGFINR5.sav")
fin_basari <- read_sav("ATGFINR5.sav")
fin_okul <- read_sav("ACGFINR5.sav")

hun_ogrenci <- read_sav("ASGHUNR5.sav")
hun_basari <- read_sav("ATGHUNR5.sav")
hun_okul <- read_sav("ACGHUNR5.sav")

tur_ogrenci  <- read_sav("ASGTURR5.sav")
tur_basari <- read_sav("ATGTURR5.sav")
tur_okul <- read_sav("ACGTURR5.sav")

kaza_ogrenci  <- read_sav("ASGKAZA5.sav")  
kaza_basari <- read_sav("ATGKAZA5.sav")
kaza_okul <- read_sav("ACGKAZA5.sav")

guz_ogrenci  <- read_sav("ASGUZBR5.sav")
guz_basari <- read_sav("ATGUZBR5.sav")
guz_okul <- read_sav("ACGUZBR5.sav")


est_ogrenci$IDCNTRY  <- 233
fin_ogrenci$IDCNTRY  <- 246
hun_ogrenci$IDCNTRY  <- 348
tur_ogrenci$IDCNTRY  <- 792
kaza_ogrenci$IDCNTRY <- 398
guz_ogrenci$IDCNTRY  <- 860

full_data_ogrenci <- bind_rows(est_ogrenci,
                       fin_ogrenci,
                       hun_ogrenci,
                       tur_ogrenci,
                       kaza_ogrenci,
                       guz_ogrenci)

head(full_data_ogrenci,3)
## # A tibble: 3 × 155
##   IDCNTRY IDPOP         IDGRADER IDGRADE WAVE    IDSCHOOL IDCLASS IDSTUD ITSEX  
##     <dbl> <dbl+lbl>     <dbl+lb> <dbl+l> <dbl+l>    <dbl>   <dbl>  <dbl> <dbl+l>
## 1     233 1 [Populatio… 2 [Uppe… 4       1 [Spr…     5001  500101 5.00e7 1 [Gir…
## 2     233 1 [Populatio… 2 [Uppe… 4       1 [Spr…     5001  500101 5.00e7 2 [Boy]
## 3     233 1 [Populatio… 2 [Uppe… 4       1 [Spr…     5001  500101 5.00e7 1 [Gir…
## # ℹ 146 more variables: ITADMINI <dbl+lbl>, ITLANG_SA <dbl+lbl>,
## #   LCID_SA <dbl+lbl>, ITLANG_SQ <dbl+lbl>, LCID_SQ <dbl+lbl>,
## #   IDBOOK <dbl+lbl>, ASBG01 <dbl+lbl>, ASBG03 <dbl+lbl>, ASBG04 <dbl+lbl>,
## #   ASBG05A <dbl+lbl>, ASBG05B <dbl+lbl>, ASBG05C <dbl+lbl>, ASBG05D <dbl+lbl>,
## #   ASBG05E <dbl+lbl>, ASBG05F <dbl+lbl>, ASBG05G <dbl+lbl>, ASBG05H <dbl+lbl>,
## #   ASBG05I <dbl+lbl>, ASBG05J <dbl+lbl>, ASBG05K <dbl+lbl>, ASBG06 <dbl+lbl>,
## #   ASBG07A <dbl+lbl>, ASBG07B <dbl+lbl>, ASBG08A <dbl+lbl>, …
est_basari$IDCNTRY  <- 233
fin_basari$IDCNTRY  <- 246
hun_basari$IDCNTRY  <- 348
tur_basari$IDCNTRY  <- 792
kaza_basari$IDCNTRY <- 398
guz_basari$IDCNTRY  <- 860

full_data_basari <- bind_rows(est_basari,
                              fin_basari,
                              hun_basari,
                              tur_basari,
                              kaza_basari,
                              guz_basari)

head(full_data_basari, 3)
## # A tibble: 3 × 185
##   IDCNTRY IDPOP      IDGRADER IDGRADE IDSCHOOL IDTEACH IDLINK IDTEALIN ITLANG_TQ
##     <dbl> <dbl+lbl>  <dbl+lb> <dbl+l>    <dbl>   <dbl> <dbl+>    <dbl> <dbl+lbl>
## 1     233 1 [Popula… 2 [Uppe… 4           5001  500101 1      50010101  2 [Span…
## 2     233 1 [Popula… 2 [Uppe… 4           5002  500201 1      50020101 51 [Basq…
## 3     233 1 [Popula… 2 [Uppe… 4           5003  500301 1      50030101  2 [Span…
## # ℹ 176 more variables: LCID_TQ <dbl+lbl>, isDummy <dbl+lbl>, ATBG01 <dbl+lbl>,
## #   ATBG02 <dbl+lbl>, ATBG03 <dbl+lbl>, ATBG04 <dbl+lbl>, ATBG05AA <dbl+lbl>,
## #   ATBG05AB <dbl+lbl>, ATBG05AC <dbl+lbl>, ATBG05AD <dbl+lbl>,
## #   ATBG05BA <dbl+lbl>, ATBG05BB <dbl+lbl>, ATBG05BC <dbl+lbl>,
## #   ATBG05BD <dbl+lbl>, ATBG05BE <dbl+lbl>, ATBG05BF <dbl+lbl>,
## #   ATBG05BG <dbl+lbl>, ATBG05BH <dbl+lbl>, ATBG05BI <dbl+lbl>,
## #   ATBG05BJ <dbl+lbl>, ATBG05BK <dbl+lbl>, ATBG06 <dbl+lbl>, …
est_okul$IDCNTRY  <- 233
fin_okul$IDCNTRY  <- 246
hun_okul$IDCNTRY  <- 348
tur_okul$IDCNTRY  <- 792
kaza_okul$IDCNTRY <- 398
guz_okul$IDCNTRY  <- 860

full_data_okul <- bind_rows(est_okul,
                            fin_okul,
                            hun_okul,
                            tur_okul,
                            kaza_okul,
                            guz_okul)

head(full_data_okul, 3)
## # A tibble: 3 × 101
##   IDCNTRY IDPOP          IDGRADER IDGRADE IDSCHOOL ITLANG_CQ LCID_CQ     ACBG03A
##     <dbl> <dbl+lbl>      <dbl+lb> <dbl+l>    <dbl> <dbl+lbl> <dbl+lbl>   <dbl+l>
## 1     233 1 [Population… 2 [Uppe… 4           5001  2 [Span…  3082 [Spa… 2 [11 …
## 2     233 1 [Population… 2 [Uppe… 4           5002 51 [Basq… 10691 [Bas… 3 [26 …
## 3     233 1 [Population… 2 [Uppe… 4           5003  2 [Span…  3082 [Spa… 4 [Mor…
## # ℹ 93 more variables: ACBG03B <dbl+lbl>, ACBG04 <dbl+lbl>, ACBG05A <dbl+lbl>,
## #   ACBG05B <dbl+lbl>, ACBG06A <dbl+lbl>, ACBG06B <dbl+lbl>, ACBG06C <dbl+lbl>,
## #   ACBG07A <dbl+lbl>, ACBG07B <dbl+lbl>, ACBG07C <dbl+lbl>, ACBG08 <dbl+lbl>,
## #   ACBG09 <dbl+lbl>, ACBG10AA <dbl+lbl>, ACBG10AB <dbl+lbl>,
## #   ACBG10AC <dbl+lbl>, ACBG10AD <dbl+lbl>, ACBG10AE <dbl+lbl>,
## #   ACBG10AF <dbl+lbl>, ACBG10AG <dbl+lbl>, ACBG10AH <dbl+lbl>,
## #   ACBG10AI <dbl+lbl>, ACBG10AJ <dbl+lbl>, ACBG10BA <dbl+lbl>, …
full_data_okul$IDCNTRY <- as.numeric(full_data_okul$IDCNTRY)

full_data_okul$IDCNTRY <- factor(
  full_data_okul$IDCNTRY,
  levels = c(233, 246, 348, 792, 398, 860),
  labels = c("Estonya", "Finlandiya", "Macaristan", "Türkiye", "Kazakistan", "Özbekistan"))

full_data_ogrenci$IDCNTRY <- as.numeric(full_data_ogrenci$IDCNTRY)

full_data_ogrenci$IDCNTRY <- factor(
  full_data_ogrenci$IDCNTRY,
  levels = c(233, 246, 348, 792, 398, 860),
  labels = c("Estonya", "Finlandiya", "Macaristan", "Türkiye", "Kazakistan", "Özbekistan"))

full_data_basari$IDCNTRY <- as.numeric(full_data_basari$IDCNTRY)

full_data_basari$IDCNTRY <- factor(
  full_data_basari$IDCNTRY,
  levels = c(233, 246, 348, 792, 398, 860),
  labels = c("Estonya", "Finlandiya", "Macaristan", "Türkiye", "Kazakistan", "Özbekistan"))

ÖNEMSENEN NOT: PIRLS 2021 veri yapısında bazı ülkeler için öğrenci (ASG), okul (ACG) ve başarı (ATG) dosyaları iki farklı sürümde sunulmaktadır: A5 ve R5. Bu durum, söz konusu ülkelerde veri toplama sürecinde iki farklı anket ve test formununkullanılmasıyla ilgilidir. Finlandiya, Estonya ve Macaristan gibi geniş örnekleme sahip ülkelerde öğrencilere uygulanan maddelerin bir bölümü Form A (A5), diğer bölümü ise Form R (R5) üzerinden yöneltilmiştir. Bu uygulama, öğrencilerin cevap yükünü azaltmak, test süresini dengelemek ve daha kapsamlı veri elde etmek amacıyla kullanılan rotated booklet design yaklaşımının bir sonucudur. R5 dosyaları genellikle tüm maddeleri ve tam örneklem bilgisini içerdiğinden, analizlerde R5 sürümlerinin kullanılması uluslararası raporlama standartlarıyla daha uyumlu kabul edilmektedir.

3.1.1. Türk Dilleri (Türkiye (TUR)-Özbekistan (GUZ)-Kazakistan (KAZA))

  • Hepsi agglutinative yani kelimeler eklerle genişler.

  • Yüksek şeffaf ortografi yani bir harf genelde bir sese denktir.

  • Bu nedenle çözümleme (decoding) becerisi erken gelişir.

  • Ancak okuma anlama becerileri ortalama seviyededir yani özellikle sözlü dil becerisi ve metin yapısı faktörleri etkili.

3.1.2. Uralik Dilleri (Finlandiya (FIN)-Estonya (EST)-Macaristan (HUN))

  • Dünyanın en şeffaf yazı sistemlerinden bazılarıdır Bu yüzden çocuklar hızlı okur olur.

  • Morfolojik yapı güçlüdür yani kelime uzun olsa bile çözümleme düzenlidir.

  • Bu ülkeler PIRLS’te sürekli olarak en üst sıralarda yer alır.

3.1.3. Ortak Dil Özelliklerinin Eğitim Başarısına Etkisi

  • Hem Türk hem Uralik dilleri agglutinative dir yani eklemeli yapı okuma çözümlemesini kolaylaştırır.

  • Ancak Uralik dillerde ortografik şeffaflık ve erken eğitim müdahaleleri birleştiğinde başarı çok daha yüksek çıkabilmektedir.

  • Böylece dil ailesi sadece bir biyolojik miras değil, aynı zamanda eğitim sistemi ve dilsel şeffaflık etkileşimi olarak değerlendirilebilir.

3.2. Değişkenlerin Belirlenmesi

En az bir bağımlı, bir bağımsız, bir aracı ve bir düzenleyici değişken belirleyiniz. Değişken seçiminde literatür desteği alınız. Düzenleyici değişken için cinsiyet, SES gibi değişkenleri de kullanabilirsiniz.

Yukarıda ASG, ACG ve ATG dosyalarının hepsini yükledim ama proje olarak ASG dosyalarını kullanacağım şekilde belirledim. İleride başka şeyler denemek istersem diye yüklemişken onları da yükledim.

Değişkenler (Atasoy, 2025)
Değişken Türleri Değişken Adı Veri Setindeki Kodlaması Açıklaması
Bağımsız değişken (1) Reading Attitude (Okuma Tutumu) ASBGRA, ASBGRB, ASBGRC Öğrencinin okumaya yönelik tutumunu ölçen 3 maddelik ölçek.
Bağımsız değişken (2) Reading Interest (Okuma İlgisi) ASBG04A–ASBG04D Öğrencinin okumaya karşı ilgi ve motivasyon düzeyi.
Bağımlı değişken (1) Reading Achievement (Okuma Başarısı) PVREAD01–PVREAD10 PIRLS 2021 okuma başarı plausible value puanları.
Aracı değişken (1) Reading Self-Concept (Okuma Öz-Kavramı) ASBSCFCM, ASBSCFCL, ASBSCFCS Öğrencinin kendini bir okur olarak algılama düzeyi.
Aracı değişken (2) Home Literacy Environment (Ev Okuryazarlık Ortamı) ASBH03, ASBH06, ASBHOM Evde okuryazarlık kaynakları ve kitap materyallerinin düzeyi.
Düzenleyici değişken (1) Gender (Cinsiyet) ASBG01 1 = Erkek, 2 = Kız. Okuma tutumu → öz-kavram ilişkisinin düzenleyicisi.
Düzenleyici değişken (2) SES (Sosyoekonomik Düzey) ASDSES, ASDHEDUP, ASDHOCCP Öğrencinin sosyoekonomik durumunu yansıtan türetilmiş indeks.
Düzenleyici / Kontrol değişkeni (3) Country (Ülke) IDCNTRY Öğrencinin ait olduğu ülke

3.3. Notlar

3.3.1. Eksik Veriyi Temizleme

  • Henüz eksik veriyi nasıl ele alacağımızı bilmedeğiniz için eksik verileri raporlayıp silerek devam edebilirsiniz.

  • Eksik verileri raporladım ama kullanacağım değişkenler netleşmediği için tüm veri setini temizlemek gereksiz olacak. Analizde kullanacağım değiişkenleri anlizlere başlarken temizleyeceğim.

missing_report <- full_data_ogrenci %>%
  summarise_all(~ sum(is.na(.))) %>%
  t() %>%
  as.data.frame()

colnames(missing_report) <- "Missing_Count"
missing_report$Variable <- rownames(missing_report)
missing_report$Missing_Percent <- (missing_report$Missing_Count / nrow(full_data_ogrenci)) * 100

head(missing_report[order(-missing_report$Missing_Percent), ], 20)
##         Missing_Count Variable Missing_Percent
## ASBG05J         20721  ASBG05J       57.612745
## ASBG05K         20706  ASBG05K       57.571039
## ASBG05I         15010  ASBG05I       41.733860
## ASBG05H         14941  ASBG05H       41.542012
## ASBGHRL          3805  ASBGHRL       10.579436
## ASDGHRL          3805  ASDGHRL       10.579436
## ASBG08B          1998  ASBG08B        5.555247
## ASBG07B          1678  ASBG07B        4.665517
## ASBR08F          1518  ASBR08F        4.220653
## ASBR08E          1311  ASBR08E        3.645109
## ASBR08D          1292  ASBR08D        3.592282
## ASBR07C          1284  ASBR07C        3.570038
## ASBG09E          1257  ASBG09E        3.494967
## ASBR02E          1236  ASBR02E        3.436579
## ASBR07D          1227  ASBR07D        3.411555
## ASBR08C          1224  ASBR08C        3.403214
## ASBR03C          1211  ASBR03C        3.367069
## ASBG11E          1208  ASBG11E        3.358728
## ASBR07H          1166  ASBR07H        3.241951
## ASBR02D          1164  ASBR02D        3.236390

3.3.2. Ağırlıklandırılma Bilgisi

  • PISA verisi ağırlıklandırılmış (weighted) bir yapıdır. İlk çalımanınız ağırlandırmadan yapıp daha sonra bu konuya da değineceğiz.