Öğrenme GÜnlüğü

İkinci hafta ödevi ve ders tekrarını gecikmeli olarak tamamladım. Ders notlarını inceledikten sonra benzer bir çalışmayı PISA 2022 veri setinden Türkiye ve Finlandiya örneklemlerini kullanarak uygulamaya çalıştım. Analizlerde PV1MATH, ESCS ve MATHEFF (matematik öz-yeterliği) değişkenlerini kullandım.

Pisa 2022 Veri SEti ile Analize Hazırlık Çalışması

library(haven)
## Warning: package 'haven' was built under R version 4.5.3
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
library(tidyr)
library(psych)
## Warning: package 'psych' was built under R version 4.5.3
library(tidyverse)
## Warning: package 'ggplot2' was built under R version 4.5.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ readr     2.1.5
## ✔ ggplot2   4.0.2     ✔ stringr   1.5.2
## ✔ lubridate 1.9.4     ✔ tibble    3.3.0
## ✔ purrr     1.1.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%()   masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::filter()  masks stats::filter()
## ✖ dplyr::lag()     masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
pisa <-  readRDS("pisa2022_TR_FIN.rds")
class(pisa$CNT)
## [1] "haven_labelled" "vctrs_vctr"     "character"
str(pisa$CNT)
##  chr+lbl [1:17489] FIN, FIN, FIN, FIN, FIN, FIN, FIN, FIN, FIN, FIN, FIN, F...
##  @ label        : chr "Country code 3-character"
##  @ format.spss  : chr "A3"
##  @ display_width: int 3
##  @ labels       : Named chr [1:81] "MDA" "THA" "BRA" "FRA" ...
##   ..- attr(*, "names")= chr [1:81] "Republic of Moldova" "Thailand" "Brazil" "France" ...
veri <- pisa %>%
  select(CNT, ESCS, PV1MATH, MATHEFF)

Eksik Veri Analizi

colSums(is.na(veri))
##     CNT    ESCS PV1MATH MATHEFF 
##       0     313       0    1690
library(dplyr)

eksik_ulke <- veri %>%
  group_by(CNT) %>%
  summarise(across(
    everything(),
    list(
      
      eksik_yuzde = ~round(mean(is.na(.)) * 100, 2)
    )
  ))

eksik_ulke
## # A tibble: 2 × 4
##   CNT           ESCS_eksik_yuzde PV1MATH_eksik_yuzde MATHEFF_eksik_yuzde
##   <chr+lbl>                <dbl>               <dbl>               <dbl>
## 1 FIN [Finland]             3.01                   0               14.9 
## 2 TUR [Türkiye]             0.07                   0                2.22

Ülke bazında eksik veri oranları incelendiğinde, değişkenler arasında farklılıklar olduğu görülmektedir. Cinsiyet değişkeninde (ST004D01T) her iki ülke için de eksik veri bulunmamaktadır. Matematik başarı puanı (PV1MATH) değişkeninde de eksik gözleme rastlanmamıştır.

Sosyoekonomik durum (ESCS) değişkeninde Finlandiya için %3.01 oranında eksik veri bulunurken, Türkiye için bu oran oldukça düşük olup %0.07 düzeyindedir. Bu durum, ESCS değişkeninde Finlandiya örnekleminde daha fazla veri kaybı olduğunu göstermektedir.

Matematik öz yeterlik (MATHEFF) değişkeninde ise Finlandiya’da eksik veri oranı %14.93 gibi görece yüksek bir düzeydeyken, Türkiye’de bu oran %2.22’dir.

Betimsel İstatistikler

betimsel_ulke <- veri %>%
  group_by(CNT) %>%
  summarise(
    
    ESCS_ort = mean(ESCS, na.rm = TRUE),
    ESCS_ss  = sd(ESCS, na.rm = TRUE),
    ESCS_min = min(ESCS, na.rm = TRUE),
    ESCS_max = max(ESCS, na.rm = TRUE),

    PV1MATH_ort = mean(PV1MATH, na.rm = TRUE),
    PV1MATH_ss  = sd(PV1MATH, na.rm = TRUE),
    PV1MATH_min = min(PV1MATH, na.rm = TRUE),
    PV1MATH_max = max(PV1MATH, na.rm = TRUE),

    MATHEFF_ort = mean(MATHEFF, na.rm = TRUE),
    MATHEFF_ss  = sd(MATHEFF, na.rm = TRUE),
    MATHEFF_min = min(MATHEFF, na.rm = TRUE),
    MATHEFF_max = max(MATHEFF, na.rm = TRUE)
  )

betimsel_ulke
## # A tibble: 2 × 13
##   CNT           ESCS_ort ESCS_ss ESCS_min  ESCS_max  PV1MATH_ort PV1MATH_ss
##   <chr+lbl>        <dbl>   <dbl> <dbl+lbl> <dbl+lbl>       <dbl>      <dbl>
## 1 FIN [Finland]    0.194   0.857 -6.84     4.92             475.       92.8
## 2 TUR [Türkiye]   -1.23    1.16  -5.35     2.88             452.       89.3
## # ℹ 6 more variables: PV1MATH_min <dbl>, PV1MATH_max <dbl>, MATHEFF_ort <dbl>,
## #   MATHEFF_ss <dbl>, MATHEFF_min <dbl+lbl>, MATHEFF_max <dbl+lbl>

T Testi

PV1MATH, ESCS VE MATHEFF değişkenleri açısından Türkiye ve Finlandiya arasında anlamlı bir fark olup olmadığını incelemek amacıyla bağımsız örneklem t-testi uygulanmıştır.

t_test_math <- t.test(PV1MATH ~ CNT, data = veri, var.equal = TRUE)
t_test_math
## 
##  Two Sample t-test
## 
## data:  PV1MATH by CNT
## t = 16.428, df = 17487, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group FIN and group TUR is not equal to 0
## 95 percent confidence interval:
##  20.29176 25.78995
## sample estimates:
## mean in group FIN mean in group TUR 
##          475.2762          452.2354
t_test_ESCS <- t.test(ESCS ~ CNT, data = veri, var.equal = TRUE)
t_test_ESCS 
## 
##  Two Sample t-test
## 
## data:  ESCS by CNT
## t = 92.121, df = 17174, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group FIN and group TUR is not equal to 0
## 95 percent confidence interval:
##  1.390839 1.451313
## sample estimates:
## mean in group FIN mean in group TUR 
##         0.1935805        -1.2274957
t_test_MATHEFF <- t.test(MATHEFF ~ CNT, data = veri, var.equal = TRUE)
t_test_MATHEFF 
## 
##  Two Sample t-test
## 
## data:  MATHEFF by CNT
## t = 6.7785, df = 15797, p-value = 1.257e-11
## alternative hypothesis: true difference in means between group FIN and group TUR is not equal to 0
## 95 percent confidence interval:
##  0.09480814 0.17194410
## sample estimates:
## mean in group FIN mean in group TUR 
##        -0.3349876        -0.4683637

Analiz sonuçlarına göre, üç değişken açısından da iki ülke arasında istatistiksel olarak anlamlı farklar bulunmaktadır (p < .001). Matematik başarı puanları (PV1MATH) incelendiğinde, Finlandiya öğrencilerinin ortalama puanlarının (x̄ = 475.28) Türkiye öğrencilerine (x̄ = 452.24) göre daha yüksek olduğu belirlenmiştir.

Sosyoekonomik düzeyi ifade eden ESCS değişkeninde de Finlandiya öğrencilerinin ortalamasının (x̄ = 0.19), Türkiye öğrencilerinin ortalamasından (x̄ = -1.23) daha yüksek olduğu görülmüştür.

MATHEFF (matematik öz-yeterlik) değişkeni açısından ise her iki grubun ortalamalarının negatif olduğu, ancak Türkiye öğrencilerinin ortalamasının (x̄ = -0.47) Finlandiya öğrencilerine (x̄ = -0.33) kıyasla daha düşük olduğu belirlenmiştir.

Etki Büyüklüğü

cohen.d(PV1MATH ~ CNT, data = veri)
## Call: cohen.d(x = PV1MATH ~ CNT, data = veri)
## Cohen d statistic of difference between two means
##         lower effect upper
## PV1MATH -0.28  -0.25 -0.22
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.25
## r equivalent of difference between two means
## PV1MATH 
##   -0.12
cohen.d(ESCS ~ CNT, data = veri)
## Call: cohen.d(x = ESCS ~ CNT, data = veri)
## Cohen d statistic of difference between two means
##      lower effect upper
## ESCS -1.46  -1.42 -1.39
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 1.4
## r equivalent of difference between two means
##  ESCS 
## -0.58
cohen.d(MATHEFF ~ CNT, data = veri)
## Call: cohen.d(x = MATHEFF ~ CNT, data = veri)
## Cohen d statistic of difference between two means
##         lower effect upper
## MATHEFF -0.14  -0.11 -0.08
## 
## Multivariate (Mahalanobis) distance between groups
## [1] 0.11
## r equivalent of difference between two means
## MATHEFF 
##   -0.05

Cohen (1988) tarafından önerilen sınıflamaya göre, Cohen’s d değerinin 0.20 civarında olması küçük, 0.50 civarında olması orta ve 0.80 ve üzeri olması büyük etki büyüklüğüne karşılık gelmektedir.

matematik başarı puanları için küçük düzeyde bir etki (d = 0.25), sosyoekonomik düzey için çok büyük bir etki (d = 1.42) ve matematik öz-yeterlik için ise çok küçük düzeyde bir etki (d = 0.11) görülmektedir.

Uç Değer Kontrolü

library(outliers)
## Warning: package 'outliers' was built under R version 4.5.2
## 
## Attaching package: 'outliers'
## The following object is masked from 'package:psych':
## 
##     outlier
z_scores<- veri %>%
  group_by(CNT) %>%
  mutate(
    ESCS_z = scale(ESCS),
    PV1MATH_z = scale(PV1MATH),
    MATHEFF_z = scale(MATHEFF)
  ) %>%
  ungroup()


z_scores %>%
  group_by(CNT) %>%
  summarise(
    ESCS_min = min(ESCS_z, na.rm = TRUE),
    ESCS_max = max(ESCS_z, na.rm = TRUE),
    
    PV1MATH_min = min(PV1MATH_z, na.rm = TRUE),
    PV1MATH_max = max(PV1MATH_z, na.rm = TRUE),
    
    MATHEFF_min = min(MATHEFF_z, na.rm = TRUE),
    MATHEFF_max = max(MATHEFF_z, na.rm = TRUE)
  )
## # A tibble: 2 × 7
##   CNT          ESCS_min ESCS_max PV1MATH_min PV1MATH_max MATHEFF_min MATHEFF_max
##   <chr+lbl>       <dbl>    <dbl>       <dbl>       <dbl>       <dbl>       <dbl>
## 1 FIN [Finlan…    -8.21     5.51       -3.38        3.11       -2.62        2.23
## 2 TUR [Türkiy…    -3.54     3.52       -3.12        3.55       -2.41        2.24

Tek değişkenli uç değer analizi z puanları kullanılarak ülke bazında gerçekleştirilmiştir. Sonuçlara göre, özellikle ESCS değişkeninde Finlandiya örneklemi için |z| > 3 sınırını aşan aşırı uç değerlerin bulunduğunu göstermektedir. Buna karşılık Türkiye örnekleminde ESCS değişkenine ilişkin uç değerlerin daha sınırlı olduğu görülmüştür.

PV1MATH değişkeninde her iki ülke için de sınır değerlerin biraz üzerinde gözlemler bulunmakla birlikte, bu durum büyük örneklem büyüklüğüne sahip veri setleri için beklenen bir durum olarak değerlendirilmiştir. MATHEFF değişkeninde ise uç değer bulunmadığı görülmüştür.

Tek değişkenli uç değerleri saptamak için grafiksel yöntemlerden de yararlanma

# ESCS
ggplot(veri, aes(x = ESCS)) +
  geom_histogram(bins = 30, fill = "#0c4c8a") +
  facet_wrap(~CNT) +
  labs(title = "ESCS Dağılımı (Ülke Bazında)")
## Warning: Removed 313 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(veri, aes(x = CNT, y = ESCS)) +
  geom_boxplot(fill = "#0c4c8a")
## Warning: Removed 313 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

ESCS değişkenine ilişkin dağılım, histogram ve kutu grafikleri aracılığıyla ülke bazında incelenmiştir. Buna göre, Finlandiya örnekleminde dağılımın genel olarak simetrik yapıya yakın olmakla birlikte, hem alt hem de üst uçlarda belirgin aykırı değerlerin bulunduğunu göstermektedir. Türkiye örnekleminde ise dağılımın daha dar bir aralıkta toplandığı ve uç değerlerin daha sınırlı olduğu gözlenmiştir.

Kutu grafikleri incelendiğinde, Finlandiya grubunda özellikle yüksek ve düşük uçlarda yoğunlaşan aykırı gözlemler dikkat çekmektedir. Bu bulgular, z puanı analizinde elde edilen sonuçlarla tutarlılık göstermekte ve ESCS değişkeninde özellikle Finlandiya için uç değerlerin dikkate alınması gerektiğini ortaya koymaktadır.

ggplot(veri, aes(x = PV1MATH)) +
  geom_histogram(bins = 30, fill = "#0c4c8a") +
  facet_wrap(~CNT) +
  labs(title = "PV1MATH Dağılımı (Ülke Bazında)")

ggplot(veri, aes(x = CNT, y = PV1MATH)) +
  geom_boxplot(fill = "#0c4c8a")

PV1MATH değişkenine ilişkin dağılım histogram ve kutu grafikleri aracılığıyla incelenmiştir. Elde edilen bulgular, her iki ülke için de dağılımın yaklaşık simetrik ve normale yakın bir yapıya sahip olduğunu göstermektedir.

Kutu grafikleri incelendiğinde, her iki ülke grubunda da alt ve üst uçlarda sınırlı sayıda aykırı gözlem bulunduğu görülmektedir. Ancak bu değerlerin aşırı düzeyde olmadığı ve büyük örneklem büyüklüğü göz önüne alındığında veri setinin doğal dağılımının bir parçası olarak değerlendirilebileceği düşünülmektedir.

Ayrıca Finlandiya öğrencilerinin matematik başarı puanlarının genel olarak Türkiye öğrencilerine kıyasla daha yüksek olduğu gözlenmiştir.

ggplot(veri, aes(x = MATHEFF)) +
  geom_histogram(bins = 30, fill = "#0c4c8a") +
  facet_wrap(~CNT) +
  labs(title = "MATHEFF Dağılımı (Ülke Bazında)")
## Warning: Removed 1690 rows containing non-finite outside the scale range
## (`stat_bin()`).

ggplot(veri, aes(x = CNT, y = MATHEFF)) +
  geom_boxplot(fill = "#0c4c8a")
## Warning: Removed 1690 rows containing non-finite outside the scale range
## (`stat_boxplot()`).

MATHEFF değişkenine ilişkin dağılım histogram ve kutu grafikleri aracılığıyla incelenmiştir. Elde edilen bulgular, her iki ülke için de dağılımın tek tepeye sahip ve yaklaşık simetrik bir yapıda olduğunu, ancak uçlarda hafif çarpıklık bulunduğunu göstermektedir.

Kutu grafikleri incelendiğinde, her iki ülke grubunda da alt ve üst uçlarda aykırı gözlemler bulunduğu görülmektedir.

Ülke Bazında Mahalanois uzaklığı

Mahalanobis uzaklığı = bir gözlemin, tüm değişkenler birlikte düşünüldüğünde ne kadar “aykırı” olduğunu ölçer.

Tek değişkenli → ESCS tek başına Çok değişkenli → ESCS + PV1MATH + MATHEFF birlikte

yani: “Bu öğrenci, tüm değişkenler birlikte bakıldığında ne kadar uç?”

Mahalanobis değerlerinin uç olup olmadığını belirlemek için bir eşik değer gerekir.Bu eşik:

Ki-kare (χ²) dağılımı kullanılarak belirlenir.

veri_mv <- veri %>%
  select(CNT, ESCS, PV1MATH, MATHEFF) %>%
  drop_na()

mahal_sonuclari <- veri_mv %>%
  group_by(CNT) %>%
  do({
    
    df <- .
    
    # sadece sayısal değişkenler
    sayisal <- df[, c("ESCS", "PV1MATH", "MATHEFF")]
    
    # Mahalanobis
    md <- mahalanobis(
      sayisal,
      center = colMeans(sayisal),
      cov = cov(sayisal)
    )
    
    # kritik değer
    alpha <- 0.001
    cutoff <- qchisq(p = 1 - alpha, df = ncol(sayisal))
    
    # uç değer indeksleri
    ucdegerler <- which(md > cutoff)
    
    # çıktı
    data.frame(
      CNT = unique(df$CNT),
      toplam = nrow(df),
      aykiri = length(ucdegerler),
      cutoff = cutoff
    )
    
  })

mahal_sonuclari
## # A tibble: 2 × 4
## # Groups:   CNT [2]
##   CNT           toplam aykiri cutoff
##   <chr+lbl>      <int>  <int>  <dbl>
## 1 FIN [Finland]   8666     29   16.3
## 2 TUR [Türkiye]   7089      6   16.3

Üç sürekli değişken için χ² dağılımına göre p < .001 anlamlılık düzeyinde belirlenen kritik değer 16.27’dir. Bu kritik değeri aşan gözlemler çok değişkenli uç değer olarak değerlendirilmiştir. Analiz sonucunda Finlandiya örnekleminde 29, Türkiye örnekleminde ise 6 gözlemin çok değişkenli uç değer niteliği taşıdığı belirlenmiştir.

mahal_detay <- veri_mv %>%
  group_by(CNT) %>%
  do({
    
    df <- .
    sayisal <- df[, c("ESCS", "PV1MATH", "MATHEFF")]
    
    md <- mahalanobis(
      sayisal,
      center = colMeans(sayisal),
      cov = cov(sayisal)
    )
    
    cutoff <- qchisq(0.999, df = 3)
    
    ucdegerler <- which(md > cutoff)
    
    df[ucdegerler, ]
    
  })

mahal_detay
## # A tibble: 35 × 4
## # Groups:   CNT [2]
##    CNT           ESCS      PV1MATH MATHEFF  
##    <chr+lbl>     <dbl+lbl>   <dbl> <dbl+lbl>
##  1 FIN [Finland] -2.97        240. -1.44    
##  2 FIN [Finland] -4.50        381. -0.860   
##  3 FIN [Finland] -2.96        612. -0.269   
##  4 FIN [Finland] -1.68        289.  2.06    
##  5 FIN [Finland] -2.50        441. -3.38    
##  6 FIN [Finland] -3.09        404.  0.0254  
##  7 FIN [Finland] -3.15        309. -0.617   
##  8 FIN [Finland] -2.66        396. -3.47    
##  9 FIN [Finland] -3.47        374. -1.35    
## 10 FIN [Finland]  1.01        323.  2.25    
## # ℹ 25 more rows

Mahalanobis uzaklığına göre çok değişkenli uç değer olarak belirlenen gözlemler incelendiğinde, bu gözlemlerin özellikle ESCS değişkeninde uç değerlere sahip olduğu görülmektedir. Ancak bu gözlemlerin tek bir değişken açısından değil, değişkenlerin birlikte oluşturduğu yapı açısından aykırı olduğu anlaşılmaktadır.

veri_temiz <- veri_mv %>%
  group_by(CNT) %>%
  do({
    
    df <- .
    sayisal <- df[, c("ESCS", "PV1MATH", "MATHEFF")]
    
    md <- mahalanobis(
      sayisal,
      center = colMeans(sayisal),
      cov = cov(sayisal)
    )
    
    cutoff <- qchisq(0.999, df = 3)
    
    df[md <= cutoff, ]
    
  })

Çok değişkenli normallik sayıltısı

çok değişkenli normallik varsayımı, veri setindeki değişkenlerin birlikte oluşturduğu yapının çok değişkenli normal dağılıma uygun olmasını gerektirir.

Bu kapsamda çarpıklık (skewness) ve basıklık (kurtosis) değerleri değerlendirilir. Genel kabul gören yaklaşıma göre bu değerlerin -1 ile +1 aralığında olması değişkenin normal dağılıma yakın olduğunu, -2 ile +2 aralığında olması ise kabul edilebilir düzeyde olduğunu göstermektedir. Bununla birlikte, tek değişkenli normallik koşulunun sağlanması, çok değişkenli normalliğin kesin olarak sağlandığı anlamına gelmemektedir; ancak önemli bir ön koşul olarak kabul edilir.

Çok değişkenli normallik varsayımının sağlanması durumunda, model artıklarının (residuals) da normal dağıldığı kabul edilir ve bu durum istatistiksel çıkarımların güvenilirliğini artırır.

library(sur)
## Warning: package 'sur' was built under R version 4.5.3
## 
## Attaching package: 'sur'
## The following object is masked from 'package:psych':
## 
##     skew
skew(veri$ESCS)
## [1] -0.459121
se.skew(veri$ESCS)
## [1] 0.0186886
skew.ratio(veri$ESCS)
## [1] -24.5669
skew(veri$PV1MATH)
## [1] 0.08607723
se.skew(veri$PV1MATH)
## [1] 0.01852064
skew.ratio(veri$PV1MATH)
## [1] 4.647639
skew(veri$MATHEFF)
## [1] -0.1533364
se.skew(veri$MATHEFF)
## [1] 0.01948586
skew.ratio(veri$MATHEFF)
## [1] -7.869111

Değişkenlerin normallik varsayımı çarpıklık değerleri ve çarpıklık oranları incelenerek değerlendirilmiştir. Elde edilen bulgular, çarpıklık oranlarının ±1.96 sınırını aştığını göstermektedir.

Histogram ve kutu grafikleri birlikte değerlendirildiğinde, PV1MATH ve MATHEFF değişkenlerinin normale yakın dağılım gösterdiği, ESCS değişkeninde ise hafif düzeyde çarpıklık bulunduğu sonucuna ulaşılmıştır.

library(moments)
## Warning: package 'moments' was built under R version 4.5.2
library(dplyr)
library(moments)

# Veri hazırlama
veri_jb <- veri %>%
  select(CNT, ESCS, PV1MATH, MATHEFF) %>%
  mutate(
    ESCS = as.numeric(ESCS),
    PV1MATH = as.numeric(PV1MATH),
    MATHEFF = as.numeric(MATHEFF)
  ) %>%
  na.omit()

# Ülkelere ayırma
veri_fin <- veri_jb %>%
  filter(CNT == "FIN")

veri_tur <- veri_jb %>%
  filter(CNT == "TUR")

# Finlandiya için Jarque-Bera testleri
jb_fin_escs <- jarque.test(veri_fin$ESCS)
jb_fin_pv1math <- jarque.test(veri_fin$PV1MATH)
jb_fin_matheff <- jarque.test(veri_fin$MATHEFF)

# Türkiye için Jarque-Bera testleri
jb_tur_escs <- jarque.test(veri_tur$ESCS)
jb_tur_pv1math <- jarque.test(veri_tur$PV1MATH)
jb_tur_matheff <- jarque.test(veri_tur$MATHEFF)

# Sonuçları yazdırma
jb_fin_escs
## 
##  Jarque-Bera Normality Test
## 
## data:  veri_fin$ESCS
## JB = 702.91, p-value < 2.2e-16
## alternative hypothesis: greater
jb_fin_pv1math
## 
##  Jarque-Bera Normality Test
## 
## data:  veri_fin$PV1MATH
## JB = 47.627, p-value = 4.55e-11
## alternative hypothesis: greater
jb_fin_matheff
## 
##  Jarque-Bera Normality Test
## 
## data:  veri_fin$MATHEFF
## JB = 217.93, p-value < 2.2e-16
## alternative hypothesis: greater
jb_tur_escs
## 
##  Jarque-Bera Normality Test
## 
## data:  veri_tur$ESCS
## JB = 147.21, p-value < 2.2e-16
## alternative hypothesis: greater
jb_tur_pv1math
## 
##  Jarque-Bera Normality Test
## 
## data:  veri_tur$PV1MATH
## JB = 99.121, p-value < 2.2e-16
## alternative hypothesis: greater
jb_tur_matheff
## 
##  Jarque-Bera Normality Test
## 
## data:  veri_tur$MATHEFF
## JB = 188.22, p-value < 2.2e-16
## alternative hypothesis: greater

Jarque-Bera normallik testi sonuçları, hem Finlandiya hem de Türkiye örneklemlerinde incelenen tüm değişkenler için istatistiksel olarak anlamlı bulunmuştur (p < .001). Bu sonuçlar, değişkenlerin normal dağılımdan sapma gösterdiğine işaret etmektedir.

par(mfrow = c(1,2))

hist(veri_fin$ESCS, col = "steelblue", main = "FIN ESCS")

qqnorm(veri_fin$ESCS, main = "FIN ESCS Q-Q")
qqline(veri_fin$ESCS)

hist(veri_fin$PV1MATH, col = "steelblue", main = "FIN PV1MATH")

qqnorm(veri_fin$PV1MATH, main = "FIN PV1MATH Q-Q")
qqline(veri_fin$PV1MATH)

hist(veri_fin$MATHEFF, col = "steelblue", main = "FIN MATHEFF")

qqnorm(veri_fin$MATHEFF, main = "FIN MATHEFF Q-Q")
qqline(veri_fin$MATHEFF)

Finlandiya örneklemine ilişkin değişkenlerin normalliği histogram ve Q-Q grafikleri aracılığıyla incelenmiştir.Buna göre, PV1MATH değişkeninin normale oldukça yakın bir dağılım gösterdiğini ortaya koymaktadır. ESCS değişkeninde özellikle alt uçta belirgin sapmalar gözlenirken, MATHEFF değişkeninde ise Q-Q grafiğinde S şeklinde bir sapma dikkat çekmektedir.

par(mfrow = c(1,2))

hist(veri_tur$ESCS, col = "steelblue", main = "TUR ESCS")

qqnorm(veri_tur$ESCS, main = "TUR ESCS Q-Q")
qqline(veri_tur$ESCS)

hist(veri_tur$PV1MATH, col = "steelblue", main = "TUR PV1MATH")

qqnorm(veri_tur$PV1MATH, main = "FIN PV1MATH Q-Q")
qqline(veri_tur$PV1MATH)

hist(veri_tur$MATHEFF, col = "steelblue", main = "TUR MATHEFF")

qqnorm(veri_tur$MATHEFF, main = "TUR MATHEFF Q-Q")
qqline(veri_tur$MATHEFF)

Türkiye örneklemine ilişkin normallik incelemeleri histogram ve Q-Q grafikleri aracılığıyla değerlendirilmiştir. Elde edilen bulgular, PV1MATH değişkeninin normale oldukça yakın bir dağılım gösterdiğini ortaya koymaktadır. ESCS değişkeninde dağılımın sola çarpık olduğu ve özellikle alt uçta sapmalar bulunduğu gözlenmiştir. MATHEFF değişkeninde ise Q-Q grafiğinde belirgin bir S şeklinde sapma dikkat çekmektedir.

Finlandiya ve Türkiye örneklemleri birlikte değerlendirildiğinde, her iki ülke için de benzer dağılım yapılarının gözlendiği, ancak Finlandiya örnekleminde uç değerlerin daha geniş bir aralıkta yer aldığı belirlenmiştir

Doğrusallık

Doğrusallık iki değişken arasında doğrusal bir iliskinin oldugu sayıltısıdır.

İki değişken arasındaki doğrusallık iki değişkenli saçılım grafik incelenerek değerlendirilebilir.

Eğer iki değişken de normal dağılıyorsa ve doğrusal olarak ilişkiliyse, saçılım grafiği oval şeklindedir.

pairs(veri_mv[, c("ESCS", "PV1MATH", "MATHEFF")])

Değişkenler arasındaki doğrusal ilişkiler saçılım matrisi (pairs plot) aracılığıyla incelenmiştir. Elde edilen bulgular, ESCS ile PV1MATH ve MATHEFF ile PV1MATH değişkenleri arasında pozitif yönlü doğrusal ilişkilerin bulunduğunu göstermektedir. ESCS ile MATHEFF arasındaki ilişkinin ise daha zayıf olduğu gözlenmiştir.

Saçılım grafiklerinde belirgin bir eğrisel yapı veya doğrusal olmayan ilişki gözlenmemesi, doğrusal ilişki varsayımının sağlandığını göstermektedir.

Varyansların homojenliği

Varyansların homojenliği (homoscedasticity), bağımlı değişken(ler)in bağımsız değişken(ler)in aralığı boyunca aynı düzeyde varyansa sahip olduğu sayıltısıdır.

Varyansların heterojenligi gruplanmış veride daha önemlidir. Varyans homojenligini test etmek için Box’s M test kullanılabilir.

Varyansların heterojenliği değişkenlerden birinin normal dağılım göstermemesinden veya bağımsız değişkendeki hatalı ölçümlerden kaynaklanabilir.

ggplot(veri, aes(x = ESCS, y = PV1MATH)) +
  geom_point(alpha = 0.3) +
  facet_wrap(~CNT) +
  geom_smooth(method = "lm", color = "red")
## `geom_smooth()` using formula = 'y ~ x'
## Warning: Removed 313 rows containing non-finite outside the scale range
## (`stat_smooth()`).
## Warning: Removed 313 rows containing missing values or values outside the scale range
## (`geom_point()`).

Varyans homojenliği varsayımı, ESCS ve PV1MATH değişkenleri arasındaki saçılım grafikleri aracılığıyla ülke bazında incelenmiştir. Elde edilen bulgular, her iki ülke için de gözlemlerin doğrusal ilişki boyunca benzer bir yayılım gösterdiğini ortaya koymaktadır.

Çoklu Bağlantı

(Çoklu) bağlantı ve tekillik bağımsız değişkenler arasındaki korelasyon çok yüksek olduğunda ortaya çıkan problemlerdir.

library(knitr)

library(PerformanceAnalytics)
## Zorunlu paket yükleniyor: xts
## Zorunlu paket yükleniyor: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## ######################### Warning from 'xts' package ##########################
## #                                                                             #
## # The dplyr lag() function breaks how base R's lag() function is supposed to  #
## # work, which breaks lag(my_xts). Calls to lag(my_xts) that you type or       #
## # source() into this session won't work correctly.                            #
## #                                                                             #
## # Use stats::lag() to make sure you're not using dplyr::lag(), or you can add #
## # conflictRules('dplyr', exclude = 'lag') to your .Rprofile to stop           #
## # dplyr from breaking base R's lag() function.                                #
## #                                                                             #
## # Code in packages is not affected. It's protected by R's namespace mechanism #
## # Set `options(xts.warn_dplyr_breaks_lag = FALSE)` to suppress this warning.  #
## #                                                                             #
## ###############################################################################
## 
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## 
## Attaching package: 'PerformanceAnalytics'
## The following objects are masked from 'package:moments':
## 
##     kurtosis, skewness
## The following object is masked from 'package:graphics':
## 
##     legend
chart.Correlation(veri_mv[, c("ESCS", "MATHEFF", "PV1MATH")])

Çoklu bağlantılılık varsayımı değerlendirilmiştir. buna göre ESCS ile MATHEFF arasında zayıf (r = .19), ESCS ile PV1MATH arasında orta düzeyde (r = .39) ve MATHEFF ile PV1MATH arasında orta düzeyde (r = .43) pozitif ilişkiler bulunduğunu göstermektedir.

library(car)
## Warning: package 'car' was built under R version 4.5.3
## Zorunlu paket yükleniyor: carData
## 
## Attaching package: 'carData'
## The following objects are masked from 'package:sur':
## 
##     Anscombe, States
## 
## Attaching package: 'car'
## The following object is masked from 'package:purrr':
## 
##     some
## The following object is masked from 'package:psych':
## 
##     logit
## The following object is masked from 'package:dplyr':
## 
##     recode
model <- lm(PV1MATH ~ ESCS + MATHEFF, data = veri_mv)

vif(model)
##    ESCS MATHEFF 
## 1.03776 1.03776

ESCS ve MATHEFF değişkenlerine ait VIF değerlerinin 1.04 civarında olduğunu göstermektedir. Bu değerlerin 5’in oldukça altında olması, modelde çoklu bağlantılılık sorununun bulunmadığını ortaya koymaktadır.