PIRLS-2021 Veri Setinde Türkiye ve Singapur Ülkelerinin Çeşitli Demografik Özellikler ve Okuma Becerilerine Verilen Yanıtlara Göre Karşılaştırılması

library(dplyr)
library(tidyverse)
library(haven)
load("C:/Users/a_onu/OneDrive/Desktop/R_Kodlar/data/ASASGPR5.Rdata")
 load("C:/Users/a_onu/OneDrive/Desktop/R_Kodlar/data/ASATURR5.Rdata")
 load("C:/Users/a_onu/OneDrive/Desktop/R_Kodlar/data/ASGSGPR5.Rdata")
 load("C:/Users/a_onu/OneDrive/Desktop/R_Kodlar/data/ASGTURR5.Rdata")

Tek Bir Veri Setinin Oluşturulması

tur <- bind_rows(ASATURR5, ASGTURR5)
sgpr<- bind_rows(ASASGPR5, ASGSGPR5)
pirls_birlesik <- bind_rows(tur, sgpr)
pirls_sub <- pirls_birlesik %>%
  select(
    IDCNTRY, IDSCHOOL, IDSTUD, TOTWGT,
    ASRREA01:ASRREA05, ASBG01, ASBG04, ASBG05A)
glimpse(pirls_sub)
## Rows: 25,502
## Columns: 12
## $ IDCNTRY  <dbl+lbl> 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 79…
## $ IDSCHOOL <dbl> 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5…
## $ IDSTUD   <dbl> 50010601, 50010602, 50010603, 50010604, 50010605, 50010607, 5…
## $ TOTWGT   <dbl+lbl> 64.07452, 64.07452, 64.07452, 64.07452, 64.07452, 64.0745…
## $ ASRREA01 <dbl+lbl> 575.4389, 624.1437, 566.9780, 559.1095, 569.8236, 599.029…
## $ ASRREA02 <dbl+lbl> 557.2702, 612.6839, 568.7682, 606.6993, 570.4883, 594.515…
## $ ASRREA03 <dbl+lbl> 561.9532, 544.7382, 532.7829, 618.6042, 577.8663, 535.789…
## $ ASRREA04 <dbl+lbl> 573.6631, 503.8760, 529.9671, 537.0766, 581.3183, 546.127…
## $ ASRREA05 <dbl+lbl> 567.4520, 556.7769, 574.7689, 578.1380, 563.8770, 568.321…
## $ ASBG01   <dbl+lbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ ASBG04   <dbl+lbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
## $ ASBG05A  <dbl+lbl> NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, N…
pirls_clean <- na.omit(pirls_sub)
glimpse(pirls_clean)
## Rows: 12,453
## Columns: 12
## $ IDCNTRY  <dbl+lbl> 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 79…
## $ IDSCHOOL <dbl> 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5001, 5…
## $ IDSTUD   <dbl> 50010601, 50010602, 50010603, 50010604, 50010605, 50010607, 5…
## $ TOTWGT   <dbl+lbl> 64.07452, 64.07452, 64.07452, 64.07452, 64.07452, 64.0745…
## $ ASRREA01 <dbl+lbl> 575.4389, 624.1437, 566.9780, 559.1095, 569.8236, 599.029…
## $ ASRREA02 <dbl+lbl> 557.2702, 612.6839, 568.7682, 606.6993, 570.4883, 594.515…
## $ ASRREA03 <dbl+lbl> 561.9532, 544.7382, 532.7829, 618.6042, 577.8663, 535.789…
## $ ASRREA04 <dbl+lbl> 573.6631, 503.8760, 529.9671, 537.0766, 581.3183, 546.127…
## $ ASRREA05 <dbl+lbl> 567.4520, 556.7769, 574.7689, 578.1380, 563.8770, 568.321…
## $ ASBG01   <dbl+lbl> 2, 2, 2, 2, 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, 2, 1, 1, 1, 2, …
## $ ASBG04   <dbl+lbl> 5, 4, 2, 3, 2, 4, 4, 3, 4, 3, 3, 3, 4, 3, 2, 3, 2, 3, 5, …
## $ ASBG05A  <dbl+lbl> 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, …

Değişkenlerin Yeniden Adlandırılması

pirls_clean <- pirls_clean%>% mutate(Ulke= IDCNTRY, cinsiyet=ASBG01, teknolojik_imkan=ASBG05A, kitap_sayisi= ASBG04)
pirls_yeni<-pirls_clean %>%  mutate(cinsiyet = case_when(
    cinsiyet == 1 ~ "Male",
    cinsiyet == 2 ~ "Female",
    
    TRUE ~ NA_character_
  ), Ulke= case_when(
    Ulke==792~ "Turkiye",
    Ulke== 702~"Singapur",
     TRUE ~ NA_character_
  ))
pirls_yeni %>% count(Ulke)
## # A tibble: 2 × 2
##   Ulke         n
##   <chr>    <int>
## 1 Singapur  6633
## 2 Turkiye   5820
pirls_yeni %>% count(cinsiyet)
## # A tibble: 2 × 2
##   cinsiyet     n
##   <chr>    <int>
## 1 Female    6295
## 2 Male      6158
pirls_yeni %>% count(kitap_sayisi)
## # A tibble: 5 × 2
##   kitap_sayisi                                                   n
##   <dbl+lbl>                                                  <int>
## 1 1 [None or very few (0–10 books)]                           1511
## 2 2 [Enough to fill one shelf (11–25 books)]                  3310
## 3 3 [Enough to fill one bookcase (26–100 books)]              4350
## 4 4 [Enough to fill two bookcases (101–200 books)]            1804
## 5 5 [Enough to fill three or more bookcases (more than 200)]  1478

Ülkelere Göre Ortalama Puanların Hesaplanması

pirls_yeni %>%
  group_by(Ulke) %>%
  summarise(
    pv1 = mean(ASRREA01, na.rm = TRUE),
    pv2 = mean(ASRREA02, na.rm = TRUE),
    pv3 = mean(ASRREA03, na.rm = TRUE),
    pv4 = mean(ASRREA04, na.rm = TRUE),
    pv5 = mean(ASRREA05, na.rm = TRUE)
  )
## # A tibble: 2 × 6
##   Ulke       pv1   pv2   pv3   pv4   pv5
##   <chr>    <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Singapur  584.  584.  583.  584.  583.
## 2 Turkiye   506.  505.  505.  504.  504.
library(psych)
library(GGally)

describe(pirls_yeni)
##                  vars     n        mean        sd      median     trimmed
## IDCNTRY             1 12453      744.06     44.91      702.00      743.33
## IDSCHOOL            2 12453     5094.25     53.32     5094.00     5094.31
## IDSTUD              3 12453 50942921.40 533193.61 50940508.00 50943462.48
## TOTWGT              4 12453       91.73    121.26        7.92       67.41
## ASRREA01            5 12453      547.90     93.20      555.95      551.73
## ASRREA02            6 12453      547.47     94.18      555.46      551.31
## ASRREA03            7 12453      546.20     94.12      554.09      549.99
## ASRREA04            8 12453      546.28     94.08      553.36      549.91
## ASRREA05            9 12453      546.12     93.76      553.25      549.96
## ASBG01             10 12453        1.51      0.50        2.00        1.51
## ASBG04             11 12453        2.87      1.16        3.00        2.84
## ASBG05A            12 12453        1.26      0.44        1.00        1.20
## Ulke*              13 12453        1.47      0.50        1.00        1.46
## cinsiyet*          14 12453        1.49      0.50        1.00        1.49
## teknolojik_imkan   15 12453        1.26      0.44        1.00        1.20
## kitap_sayisi       16 12453        2.87      1.16        3.00        2.84
##                        mad         min         max      range  skew kurtosis
## IDCNTRY               0.00      702.00      792.00      90.00  0.13    -1.98
## IDSCHOOL             68.20     5001.00     5192.00     191.00  0.00    -1.18
## IDSTUD           681422.23 50010201.00 51920216.00 1910015.00  0.00    -1.18
## TOTWGT                8.00        1.26      695.11     693.85  1.78     3.60
## ASRREA01             92.53      187.78      830.63     642.86 -0.39     0.03
## ASRREA02             94.00      126.61      835.43     708.82 -0.39     0.09
## ASRREA03             93.03      166.11      829.98     663.87 -0.38     0.01
## ASRREA04             93.60      191.64      862.93     671.28 -0.37     0.02
## ASRREA05             93.55      160.51      855.14     694.62 -0.39     0.03
## ASBG01                0.00        1.00        2.00       1.00 -0.02    -2.00
## ASBG04                1.48        1.00        5.00       4.00  0.24    -0.65
## ASBG05A               0.00        1.00        2.00       1.00  1.07    -0.85
## Ulke*                 0.00        1.00        2.00       1.00  0.13    -1.98
## cinsiyet*             0.00        1.00        2.00       1.00  0.02    -2.00
## teknolojik_imkan      0.00        1.00        2.00       1.00  1.07    -0.85
## kitap_sayisi          1.48        1.00        5.00       4.00  0.24    -0.65
##                       se
## IDCNTRY             0.40
## IDSCHOOL            0.48
## IDSTUD           4778.02
## TOTWGT              1.09
## ASRREA01            0.84
## ASRREA02            0.84
## ASRREA03            0.84
## ASRREA04            0.84
## ASRREA05            0.84
## ASBG01              0.00
## ASBG04              0.01
## ASBG05A             0.00
## Ulke*               0.00
## cinsiyet*           0.00
## teknolojik_imkan    0.00
## kitap_sayisi        0.01

Ulkelere Göre Korelasyon Değerlerinin Hesaplanması

pirls_yeni %>%
  group_by(Ulke) %>%
  summarise(
    cor_kitap_sayisi_ASRREA01 = cor(kitap_sayisi, ASRREA01, use = "pairwise.complete.obs"),
    cor_kitap_sayisi_ASRREA02 = cor(kitap_sayisi, ASRREA02, use = "pairwise.complete.obs"),
     cor_kitap_sayisi_ASRREA03 = cor(kitap_sayisi, ASRREA03, use = "pairwise.complete.obs"),
      cor_kitap_sayisi_ASRREA04 = cor(kitap_sayisi, ASRREA04, use = "pairwise.complete.obs"),
       cor_kitap_sayisi_ASRREA05 = cor(kitap_sayisi, ASRREA05, use = "pairwise.complete.obs"))
## # A tibble: 2 × 6
##   Ulke     cor_kitap_sayisi_ASRR…¹ cor_kitap_sayisi_ASR…² cor_kitap_sayisi_ASR…³
##   <chr>                      <dbl>                  <dbl>                  <dbl>
## 1 Singapur                   0.304                  0.300                  0.308
## 2 Turkiye                    0.299                  0.296                  0.297
## # ℹ abbreviated names: ¹​cor_kitap_sayisi_ASRREA01, ²​cor_kitap_sayisi_ASRREA02,
## #   ³​cor_kitap_sayisi_ASRREA03
## # ℹ 2 more variables: cor_kitap_sayisi_ASRREA04 <dbl>,
## #   cor_kitap_sayisi_ASRREA05 <dbl>

Aykırı Değerler, Kaldıraç Etkisi ve Etkileşim Değerlerinin Hesaplanması

lm_model <- lm(ASRREA01 ~ kitap_sayisi + teknolojik_imkan + cinsiyet, data = pirls_yeni)
lm_model
## 
## Call:
## lm(formula = ASRREA01 ~ kitap_sayisi + teknolojik_imkan + cinsiyet, 
##     data = pirls_yeni)
## 
## Coefficients:
##      (Intercept)      kitap_sayisi  teknolojik_imkan      cinsiyetMale  
##           502.03             23.62            -22.34             12.60
pirls_yeni$std_resid <- rstandard(lm_model)
pirls_yeni$leverage <- hatvalues(lm_model)
pirls_yeni$cooksD <- cooks.distance(lm_model)
head(pirls_yeni)
## # A tibble: 6 × 19
##   IDCNTRY   IDSCHOOL  IDSTUD TOTWGT ASRREA01 ASRREA02 ASRREA03 ASRREA04 ASRREA05
##   <dbl+lbl>    <dbl>   <dbl> <dbl+> <dbl+lb> <dbl+lb> <dbl+lb> <dbl+lb> <dbl+lb>
## 1 792           5001  5.00e7 64.1   575.     557.     562.     574.     567.    
## 2 792           5001  5.00e7 64.1   624.     613.     545.     504.     557.    
## 3 792           5001  5.00e7 64.1   567.     569.     533.     530.     575.    
## 4 792           5001  5.00e7 64.1   559.     607.     619.     537.     578.    
## 5 792           5001  5.00e7 64.1   570.     570.     578.     581.     564.    
## 6 792           5001  5.00e7 64.1   599.     595.     536.     546.     568.    
## # ℹ 10 more variables: ASBG01 <dbl+lbl>, ASBG04 <dbl+lbl>, ASBG05A <dbl+lbl>,
## #   Ulke <chr>, cinsiyet <chr>, teknolojik_imkan <dbl+lbl>,
## #   kitap_sayisi <dbl+lbl>, std_resid <dbl>, leverage <dbl>, cooksD <dbl>

Moderasyon Analizinin Yapılması

moderation_an <- lm(kitap_sayisi~teknolojik_imkan*cinsiyet, data = pirls_yeni)
summary(moderation_an)
## 
## Call:
## lm(formula = kitap_sayisi ~ teknolojik_imkan * cinsiyet, data = pirls_yeni)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -2.00651 -0.91754 -0.00651  0.99349  2.38685 
## 
## Coefficients:
##                               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                    3.19589    0.04400  72.634  < 2e-16 ***
## teknolojik_imkan              -0.27835    0.03255  -8.550  < 2e-16 ***
## cinsiyetMale                   0.20398    0.06286   3.245  0.00118 ** 
## teknolojik_imkan:cinsiyetMale -0.11501    0.04698  -2.448  0.01439 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.154 on 12449 degrees of freedom
## Multiple R-squared:  0.01723,    Adjusted R-squared:  0.017 
## F-statistic: 72.76 on 3 and 12449 DF,  p-value: < 2.2e-16
library(effectsize)
cohens_f_squared(moderation_an)
## # Effect Size for ANOVA (Type I)
## 
## Parameter                 | Cohen's f2 (partial) |      95% CI
## --------------------------------------------------------------
## teknolojik_imkan          |                 0.02 | [0.01, Inf]
## cinsiyet                  |             6.46e-04 | [0.00, Inf]
## teknolojik_imkan:cinsiyet |             4.81e-04 | [0.00, Inf]
## 
## - One-sided CIs: upper bound fixed at [Inf].
library(mediation)
tur_data <- pirls_yeni%>% filter(Ulke == "Turkiye")
sgp_data <- pirls_yeni %>% filter(Ulke == "Singapur")
library(mediation)

mod_1 <- lm(kitap_sayisi ~ teknolojik_imkan, data = pirls_yeni)
mod_2 <- lm(ASRREA01 ~ teknolojik_imkan + kitap_sayisi, data = pirls_yeni)

med_1 <- mediate(
  model.m = mod_1,
  model.y = mod_2,
  sims = 1000,
  boot = TRUE,
  treat = "teknolojik_imkan",
  mediator = "kitap_sayisi"
)

summary(med_1)
## 
## Causal Mediation Analysis 
## 
## Nonparametric Bootstrap Confidence Intervals with the Percentile Method
## 
##                 Estimate 95% CI Lower 95% CI Upper   p-value    
## ACME            -7.96767     -9.21507     -6.77327 < 2.2e-16 ***
## ADE            -22.68203    -26.35479    -19.00114 < 2.2e-16 ***
## Total Effect   -30.64969    -34.35003    -26.69542 < 2.2e-16 ***
## Prop. Mediated   0.25996      0.21884      0.30390 < 2.2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Sample Size Used: 12453 
## 
## 
## Simulations: 1000

Başta ülkeleri tek bir sette topladığım için analizler karıştı. Geri dönüp baştan başayamadığım için filter fonksiyonunu kullanarak ilerlemeye çalıştım fakat bazı yerlerde iki ülke tek bir ülkeymiş gibi analize dahil oldu.