Sys.setlocale("LC_ALL", "Turkish")
[1] "LC_COLLATE=Turkish_Türkiye.1254;LC_CTYPE=Turkish_Türkiye.1254;LC_MONETARY=Turkish_Türkiye.1254;LC_NUMERIC=C;LC_TIME=Turkish_Türkiye.1254"

1 Regresyona Dair

Bu dokuman regresyon analizi ile ilgili öğrendiklerimi ifade etmeye çalıştığım bir öğrenme günlüğüdür. Bu yüzden hatalı öğrenme ve yorumlarıma da yer vermiş olabilirim. Öğrendiklerimi özetlerken r ile oluşturduğum bir veri seti üzerinden anlatmak istiyorum. Veri setinin özellikleri aşğıda tanıtılmıştır.

1.1 Regresyonun Regresyonun Amacı ve Kullanım Alanları

Regresyon analizi, bir bağımlı değişken ile bir veya daha fazla bağımsız değişken arasındaki ilişkiyi modellemek için kullanılan istatistiksel bir yöntemdir. Temel amaçları şunlardır:

  • Tahmin

  • İlişki Analizi

  • Nedensellik İncelemesi

Regresyon; eğitim, ekonomi, sağlık, gayrimenkul vb. pek çok alanda tahmin, açıklama, değer belirleme, ilişki kurma gibi amçlarla kullanılır.

1.2 Veri Setinin Tanıtılması

read.csv("Emrah_Goren_Odev_V/emrah_veri.csv")
emrah_veri <- read.csv("Emrah_Goren_Odev_V/emrah_veri.csv")

Veri seti toplamda 480 öğrenciye ait bilgileri içermekte olup 10 farklı değişkenden oluşmaktadır.

Veri setinde yer alan değişkenler şunlardır:

ogrenci_id: Her öğrenciye ait benzersiz kimlik numarası

cinsiyet: Öğrencinin cinsiyeti (Kız, Erkek)

okul_turu: Öğrencinin devam ettiği okul türü (Devlet, Meslek Lisesi)

yerlesim_yeri: Öğrencinin yaşadığı yerleşim birimi (İlçe, Büyükşehir, Köy, İl Merkezi)

okuma_puani: Öğrencinin okuma becerisinden aldığı puan

matematik_puani: Öğrencinin matematik dersinden aldığı puan

fen_puani: Öğrencinin fen dersinden aldığı puan

aile_gelir: Öğrencinin ailesinin gelir düzeyi

ortalma_notu: Okuma, Matematik ve Fen Puanlarının Ortalaması

agirlikli_not: Öğrencinin ağırlıklı not ortalaması (okuma_puani0.20)+(matematik_puani0.40)+(fen_puani*0.40))

1.3 Basit Doğrusal Regresyon

Basit doğrusal regresyon, bir bağımsız değişkenin bir bağımlı değişken üzerindeki etkisini incelememizi sağlar. Yani “X değişkeni Y’yi ne kadar etkiliyor?” sorusuna cevap ararız. Örneğin aşağıda okul türü ile ağırlıklı not arasındaki ilişkiyi gösteren bir doğrusal regresyon modeli kurulmuştur.

model_okul_turu <- lm(agirlikli_not ~ okul_turu, data = emrah_veri)
summary(model_okul_turu)

Call:
lm(formula = agirlikli_not ~ okul_turu, data = emrah_veri)

Residuals:
    Min      1Q  Median      3Q     Max 
-31.808  -7.374   0.130   7.632  27.134 

Coefficients:
                       Estimate Std. Error t value Pr(>|t|)    
(Intercept)             71.3817     0.6785 105.200   <2e-16 ***
okul_turuMeslek Lisesi  -0.1338     1.3140  -0.102    0.919    
okul_turuOzel            0.7089     1.2908   0.549    0.583    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 11.25 on 477 degrees of freedom
Multiple R-squared:  0.0007741, Adjusted R-squared:  -0.003416 
F-statistic: 0.1848 on 2 and 477 DF,  p-value: 0.8314

Sürekli değişkenler arasındaki ilişkiyi anlamak için de doğrusal regresyon kurulabilir. Aşağıda okuma puanı ile ortalama puan arasındaki ilişkiyi iceleyen bir doğrusal regresyon modeli örneği kurulmuştur.

model_okuma_p <- lm(ortalma_notu~okuma_puani, data=emrah_veri)
summary(model_okuma_p)

Call:
lm(formula = ortalma_notu ~ okuma_puani, data = emrah_veri)

Residuals:
     Min       1Q   Median       3Q      Max 
-24.1310  -5.6385   0.5287   5.9502  21.0523 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 39.35125    1.94234   20.26   <2e-16 ***
okuma_puani  0.43468    0.02521   17.24   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.427 on 478 degrees of freedom
Multiple R-squared:  0.3834,    Adjusted R-squared:  0.3822 
F-statistic: 297.3 on 1 and 478 DF,  p-value: < 2.2e-16

Regresyon analizi sonucunda bazı önemli değerlere bakarak modeli yorumlarız:

1. Katsayılar (Estimate): Bağımsız değişkenin bağımlı değişkeni ne kadar etkilediğini gösterir.

2. p-değeri (Pr(>|t|)): İlişkinin istatistiksel olarak anlamlı olup olmadığını gösterir. Genellikle 0.05’ten küçükse anlamlıdır.

3. R-kare (R-squared): Modelin bağımlı değişkendeki değişimi ne kadar açıkladığını gösterir. 0 ile 1 arasında değer alır, 1’e yaklaştıkça model daha iyi açıklar.

Okul Türü → Ağırlıklı Not

Bu modelde R-kare değeri 0.0007 çıkmış, yani neredeyse sıfır. Ayrıca p-değeri 0.83 olup 0.05’ten büyük. Bu sonuçlara göre okul türünün ağırlıklı not üzerinde anlamlı bir etkisi yok diyebiliriz.

Okuma Puanı → Ortalama Notu

Bu modelde R-kare değeri 0.38 çıkmış. Yani okuma puanı, ortalama notundaki değişimin yaklaşık %38’ini açıklıyor. Katsayı 0.43 ve p-değeri 0.05’ten çok küçük (anlamlı). Bu sonuca göre okuma puanı 1 birim arttığında ortalama not yaklaşık 0.43 birim artıyor. Okuma puanının ortalama not üzerinde anlamlı ve pozitif bir etkisi var diyebiliriz.

1.4 En Küçük Kareler Yöntemi

Bu yöntemin amacı, veri noktaları ile regresyon doğrusu arasındaki hataları (artıkları) en aza indirmektir.

Bu yöntemde her veri noktasının doğruya olan dikey uzaklığı hesaplanır. Bu uzaklıklara “hata” ya da “artık” denir. Hataların bir kısmı pozitif, bir kısmı negatif olacağı için doğrudan toplanmaz. Bunun yerine hataların karesi alınır ve toplanır. Hangi doğru bu kare toplamını en küçük yapıyorsa, o doğru regresyon doğrusu olarak seçilir.

R’da kullandığımız lm() fonksiyonu arka planda bu yöntemi uygular ve bize en uygun regresyon katsayılarını verir. Aşağıdaki kırmızı çizgi en küçük kareler yöntemi ile oluşturulan noktaları göstermektedir.

ggplot(emrah_veri, aes(x = okuma_puani, y = ortalma_notu)) +
  geom_point() +
  geom_smooth(method = "lm", se = FALSE, color = "red") +
  labs(title = "Okuma Puanı ve Ortalama Not İlişkisi",
       x = "Okuma Puanı",
       y = "Ortalama Notu")+
  theme_bw()

1.5 Kestirimin Standart Hatası

Kestirimin standart hatası, regresyon modelinin tahminlerinin gerçek değerlerden ne kadar saptığını gösteren bir ölçüdür. Başka bir deyişle, modelimizin yaptığı tahminlerin ortalama hata miktarını ifade eder.

Bu değer ne kadar küçükse, modelimizin tahminleri gerçek değerlere o kadar yakındır. Yani düşük standart hata, modelin daha güvenilir tahminler yaptığı anlamına gelir.

R çıktısında bu değer “Residual standard error” olarak gösterilir.

summary(model_okuma_p)

Call:
lm(formula = ortalma_notu ~ okuma_puani, data = emrah_veri)

Residuals:
     Min       1Q   Median       3Q      Max 
-24.1310  -5.6385   0.5287   5.9502  21.0523 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 39.35125    1.94234   20.26   <2e-16 ***
okuma_puani  0.43468    0.02521   17.24   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.427 on 478 degrees of freedom
Multiple R-squared:  0.3834,    Adjusted R-squared:  0.3822 
F-statistic: 297.3 on 1 and 478 DF,  p-value: < 2.2e-16

Bu çıktıda “Residual standard error: 8.427” yazan kısım kestirimin standart hatasıdır. Bu değer, modelimizin tahminlerinin gerçek ortalama notundan ortalama 8.43 puan kadar saptığını gösterir.

1.6 Bağımsız Değişkenler Arası İlişki

Regresyon analizinde birden fazla bağımsız değişken kullanıyorsak, bu değişkenlerin birbirleriyle olan ilişkisini kontrol etmemiz gerekir. Eğer bağımsız değişkenler arasında çok yüksek bir ilişki varsa, buna çoklu doğrusallık denir.

Çoklu doğrusallık sorun yaratır çünkü hangi değişkenin bağımlı değişkeni gerçekten etkilediğini ayırt etmek zorlaşır. Bu durumda katsayılar güvenilir olmaz ve model yanıltıcı sonuçlar verebilir. Ürettiğim veri setinde bu durumu çok iyi açıklayacağını düşündüğüm bir veri grubu var. Öğrencilerin okuma, matematik ve fen puanlarının bağımsız değişken olarak ele aldığımızda bu değişkenler arasında doğrusallık olup olmadığını inceledim.

library(gt)

sayisal_degiskenler <- emrah_veri[, c("okuma_puani", "matematik_puani", "fen_puani")]
korelasyon <- cor(sayisal_degiskenler)
rownames(korelasyon) <- c("Okuma", "Matematik", "Fen")
colnames(korelasyon) <- c("Okuma", "Matematik", "Fen")

as.data.frame(korelasyon) %>%
  gt(rownames_to_stub = TRUE) %>%
  fmt_number(decimals = 2) %>%
  cols_align(align = "center") %>%
  tab_header(title = "Korelasyon Matrisi")
Korelasyon Matrisi
Okuma Matematik Fen
Okuma 1.00 0.10 0.17
Matematik 0.10 1.00 0.13
Fen 0.17 0.13 1.00

Değişkenler arasındaki korelasyonlar oldukça düşük (0.10 - 0.17 arası). Bu değerler 0.80’in çok altında olduğu için çoklu doğrusallık sorunu yok. Yani bu üç değişkeni aynı modelde rahatlıkla kullanabiliriz.

1.7 Çoklu Regresyon

Çoklu regresyonda birden fazla bağımsız değişkenin bağımlı değişken üzerindeki etkisini aynı anda inceleyebiliriz. Amaç, bağımlı değişkeni daha iyi tahmin edebilmek ve her bir bağımsız değişkenin etkisini diğerlerinden ayrı olarak görebilmektir. Örneğin öğrencinin ağırlıklı notunu sadece okuma puanıyla değil, matematik ve fen puanıyla birlikte tahmin etmeye çalışabiliriz.

coklu_model <- lm(okuma_puani ~ aile_gelir + yerlesim_yeri + matematik_puani, 
                  data = emrah_veri)
library(sjPlot)

tab_model(coklu_model)
  okuma_puani
Predictors Estimates CI p
(Intercept) 62.75 57.10 – 68.41 <0.001
aile gelir 0.00 0.00 – 0.00 <0.001
yerlesim yeri [Il
Merkezi]
-3.67 -6.82 – -0.52 0.023
yerlesim yeri [Ilce] -0.31 -3.83 – 3.20 0.861
yerlesim yeri [Koy] -2.48 -6.53 – 1.56 0.228
matematik puani -0.03 -0.10 – 0.04 0.444
Observations 480
R2 / R2 adjusted 0.190 / 0.181

Referans kategori “Büyükşehir” olarak alındı. Diğer yerleşim yerleri bununla karşılaştırılmıştır.

Aile geliri: Anlamlı ve pozitif etkili. Gelir arttıkça okuma puanı artıyor.

İl Merkezi: Büyükşehire göre okuma puanı 3.67 puan daha düşük ve bu fark anlamlı.

İlçe ve Köy: Büyükşehire göre fark var gibi görünse de istatistiksel olarak anlamlı değil.

Matematik puanı: Okuma puanını anlamlı şekilde etkilemiyor.

Model, okuma puanındaki değişimin %19’unu açıklıyor. Çok güçlü değil ama aile geliri ve yerleşim yerinin etkisi görülüyor.

1.8 Çoklu Korelasyon Katsayısı

Çoklu korelasyon katsayısı (R), birden fazla bağımsız değişkenin bağımlı değişkenle olan toplam ilişkisini gösteren bir ölçüdür. Değeri 0 ile 1 arasında değişir. Basit korelasyonda iki değişken arasındaki ilişkiye bakıyoruz. Çoklu korelasyonda ise tüm bağımsız değişkenlerin birlikte bağımlı değişkeni ne kadar tahmin ettiğini anlayabiliriz.

ozet <- summary(coklu_model)

R <- sqrt(ozet$r.squared)
R
[1] 0.4357765

Çoklu korelasyon katsayısı (R) 0.44 olarak hesaplanmıştır. Bu değer, bağımsız değişkenlerin (aile geliri, yerleşim yeri ve matematik puanı) bağımlı değişkenle (okuma puanı) orta düzeyde bir ilişkiye sahip olduğunu göstermektedir.

1.9 Belirlilik Katsayısı (R² ve Adjusted R²)

Belirlilik katsayısı (R²), regresyon modelinin bağımlı değişkendeki değişimi ne kadar açıkladığını gösterir. Değeri 0 ile 1 arasında değişir. Örneğin R² = 0.30 ise model, bağımlı değişkendeki değişimin %30’unu açıklıyor demektir.

Ancak modele yeni değişkenler eklendikçe R² değeri her zaman artar, bu değişken işe yarasa da yaramasa da. Bu sorunu çözmek için düzeltilmiş R² (Adjusted R²) kullanılır. Adjusted R², daha gerçekçi bir değer verir.

ozet <- summary(coklu_model)

ozet$r.squared
[1] 0.1899011
ozet$adj.r.squared
[1] 0.1813558

1.10 Model Uyumu

Model uyumu, kurduğumuz regresyon modelinin verilere ne kadar iyi uyduğunu değerlendirmemizi sağlar. Bunun için birkaç farklı ölçüt kullanılır.

F-testi: Modelin bir bütün olarak anlamlı olup olmadığını test eder. Eğer p-değeri 0.05’ten küçükse model anlamlıdır, yani en az bir bağımsız değişken bağımlı değişkeni etkiliyor demektir.

R-kare: Modelin açıklama gücünü gösterir. Ne kadar yüksekse model o kadar iyi uyum sağlıyor demektir.

Artıkların (Residuals) Analizi: Tahmin edilen değerler ile gerçek değerler arasındaki farkları inceler. Artıkların rastgele dağılması beklenir.

R-kare ve F-testi ile ilgili açıklamalar modeli kurduğum bölümde incelenmişti. Bu kısımda artıkların dağılımına bakabiliriz.

par(mfrow = c(2, 2))
plot(coklu_model)

1. Residuals - Fitted: Artıklar yatay bir bant şeklinde rastgele dağılmış. Bu iyi bir işaret, doğrusallık varsayımı sağlanıyor. Kırmızı çizginin düz olması modelin uygun olduğunu gösterir.

2. Q-Q Residuals: Noktalar çoğunlukla çizgi üzerinde ilerliyor. Bu artıkların normal dağıldığını gösterir.

3. Scale-Location: Artıkların varyansının sabit olup olmadığını gösterir. Noktalar nispeten yatay bir bant oluşturmuş. Varyans homojenliği varsayımı büyük ölçüde sağlanıyor.

4. Residuals - Leverage: Etkili gözlemleri (outlier) tespit eder. Çizgileri aşan belirgin bir nokta yok. Yani modeli olumsuz etkileyen aşırı değerler bulunmuyor.

1.11 Değişkenlerin Sabit Tutulması

Çoklu regresyonda birden fazla bağımsız değişken aynı anda modelde yer alır. Bu durumda her bir değişkenin etkisini yorumlarken “diğer değişkenler sabit tutulduğunda” ifadesi kullanılır. Amaç bir değişkenin bağımlı değişken üzerindeki saf etkisini görmektir.

Model kurulurken tüm bağımsız değişkenler aynı anda analize dahil edilir. R, her değişkenin katsayısını hesaplarken diğer değişkenlerin etkisini istatistiksel olarak kontrol eder. Böylece her katsayı, sadece o değişkene ait etkiyi yansıtır. Değişkenler arasındaki karıştırıcı etkileri ayıklamak için yapılır. Örneğin aile geliri yüksek olanlar büyükşehirde yaşıyor olabilir. Eğer değişkenleri sabit tutmazsak, okuma puanındaki artışın gelirden mi yoksa yerleşim yerinden mi kaynaklandığını anlayamayız. Bu yöntem sayesinde her faktörün bağımsız katkısını net bir şekilde görebiliriz. Bu kısımda fen puanlarını gelir ve okuma puanları ile yordadığımız bir mode

fen_model <- lm(fen_puani ~ aile_gelir + okuma_puani, data = emrah_veri)
summary(fen_model)

Call:
lm(formula = fen_puani ~ aile_gelir + okuma_puani, data = emrah_veri)

Residuals:
    Min      1Q  Median      3Q     Max 
-39.190 -10.153   0.035  11.191  36.077 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) 5.612e+01  3.542e+00  15.847  < 2e-16 ***
aile_gelir  2.726e-03  3.924e-04   6.947 1.23e-11 ***
okuma_puani 3.771e-02  5.041e-02   0.748    0.455    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 15.28 on 477 degrees of freedom
Multiple R-squared:  0.1193,    Adjusted R-squared:  0.1157 
F-statistic: 32.32 on 2 and 477 DF,  p-value: 6.862e-14
library(broom)
library(gt)

tidy(fen_model) %>%
  gt() %>%
  fmt_number(decimals = 3) %>%
  cols_align(align = "center") %>%
  cols_label(
    term = "",
    estimate = "Katsayı",
    std.error = "Std. Hata",
    statistic = "t Değeri",
    p.value = "p Değeri"
  ) %>%
  tab_header(
    title = "Çoklu Regresyon Sonuçları",
    subtitle = "Bağımlı Değişken: Fen Puanı"
  )
Çoklu Regresyon Sonuçları
Bağımlı Değişken: Fen Puanı
Katsayı Std. Hata t Değeri p Değeri
(Intercept) 56.123 3.542 15.847 0.000
aile_gelir 0.003 0.000 6.947 0.000
okuma_puani 0.038 0.050 0.748 0.455

1.11.1 Gelirin Sabit Tutulması

artikFEN <- lm(fen_puani ~ aile_gelir, data = emrah_veri)$residuals

artikOKUMA <- lm(okuma_puani ~ aile_gelir, data = emrah_veri)$residuals

lm(artikFEN ~ artikOKUMA)$coefficients
  (Intercept)    artikOKUMA 
-1.054030e-15  3.770745e-02 

1.11.2 Okuma Puanının Sabit Tutulması

artikFEN2 <- lm(fen_puani ~ okuma_puani, data = emrah_veri)$residuals

artikGELIR <- lm(aile_gelir ~ okuma_puani, data = emrah_veri)$residuals

lm(artikFEN2 ~ artikGELIR)$coefficients
  (Intercept)    artikGELIR 
-1.881772e-15  2.725533e-03 

Burada yukarıdaki ana regresyondaki sonuçlarla neredeyse aynı sonuçları verdi. Bu durumda bunu nasıl yorumlayacağımı bilemiyorum. Bir şeyleri mi yanlış yaptım yoksa gereksiz bir şey mi yaptım hocama sormalıyım.

1.12 Regresyon Sabiti

Regresyon sabiti, tüm bağımsız değişkenler sıfır olduğunda bağımlı değişkenin beklenen değerini gösterir. Regresyon denkleminde sabit terim olarak yer alır ve genellikle “b₀” veya “Intercept” olarak gösterilir. Sabit terimi, regresyon doğrusunun Y eksenini kestiği noktayı ifade eder.

Ancak bazı durumlarda sabit terimi yorumlamak anlamlı olmayabilir. Örneğin bağımsız değişkenlerin sıfır değeri alması mantıklı değilse (aile gelirinin sıfır olması gibi), sabit terimi sadece matematiksel bir başlangıç noktası olarak düşünmek daha doğrudur.

coef(fen_model)[1]
(Intercept) 
   56.12329 

Fen modelinde sabit terim 56.12 olarak hesaplanmıştır. Bu değer, aile geliri ve okuma puanı sıfır olduğunda beklenen fen puanını gösterir. Ancak pratikte bir öğrencinin okuma puanının veya aile gelirinin sıfır olması mümkün değildir. Bu yüzden sabit terimi doğrudan yorumlamak yerine modelin matematiksel başlangıç noktası olarak değerlendirmek daha uygundur.

1.13 Standart Puanlar ve Beta Katsayıları

Regresyon analizinde farklı ölçeklere sahip değişkenler olabilir. Örneğin aile geliri binlerle ifade edilirken, okuma puanı 0-100 arasında değişir. Bu durumda ham katsayıları karşılaştırmak yanıltıcı olabilir. Beta katsayıları bu sorunu çözer. Tüm değişkenler aynı ölçeğe dönüştürülür (ortalama=0, standart sapma=1). Böylece hangi değişkenin bağımlı değişkeni daha güçlü etkilediğini doğrudan karşılaştırabiliriz. Beta katsayısı ne kadar büyükse, o değişkenin etkisi o kadar güçlüdür.

library(lm.beta)

lm.beta(fen_model)

Call:
lm(formula = fen_puani ~ aile_gelir + okuma_puani, data = emrah_veri)

Standardized Coefficients::
(Intercept)  aile_gelir okuma_puani 
         NA   0.3290482   0.0354341 

Aile gelirinin beta katsayısı (0.33) okuma puanının beta katsayısından (0.04) çok daha büyük. Bu demek oluyor ki fen puanını etkileyen en güçlü değişken aile geliridir. Okuma puanının etkisi ise oldukça zayıf.

1.14 Artıklar ve Standart Artıklar

Artıklar, gerçek değerler ile modelin tahmin ettiği değerler arasındaki farktır. Yani modelin ne kadar hata yaptığını gösterir.

Artık = Gerçek Değer - Tahmin Edilen Değer

Standart artıklar ise artıkların standartlaştırılmış halidir. Ortalama 0 ve standart sapma 1 olacak şekilde dönüştürülür. Bu sayede artıkların büyüklüğünü daha kolay yorumlayabiliriz.

artiklar <- residuals(fen_model)
head(artiklar)
         1          2          3          4          5          6 
16.0068668 -0.2669205  1.1095170 18.3718051 -3.9036892 -4.6062168 
standart_artiklar <- rstandard(fen_model)
head(standart_artiklar)
          1           2           3           4           5           6 
 1.04955990 -0.01758659  0.07284168  1.20331142 -0.25567865 -0.30235688 
emrah_veri$artiklar <- residuals(fen_model)
emrah_veri$standart_artiklar <- rstandard(fen_model)
ggplot(emrah_veri, aes(x = standart_artiklar)) +
  geom_histogram(bins = 30, fill = "steelblue", color = "white") +
  geom_vline(xintercept = c(-2, 2), linetype = "dashed", color = "red") +
  labs(title = "Standart Artıkların Dağılımı",
       x = "Standart Artıklar",
       y = "Frekans") +
  theme_minimal()

Grafiğe baktığımızda standart artıkların büyük çoğunluğunun -2 ile +2 arasında kaldığını görüyoruz. Dağılım çan eğrisi şeklinde ve simetrik görünüyor. Kırmızı çizgilerin dışında kalan birkaç gözlem var. Bunlar aykırı değerler olabilir, yani model bu öğrencileri tam olarak tahmin edememiş. Ama sayıları çok az olduğu için genel olarak modeli olumsuz etkilemiyorlar.

1.15 Model Grafikleri

Regresyon modelinin varsayımlarını kontrol etmek için dört temel grafik kullanılır. R’da bu grafikleri tek bir komutla elde edebiliriz.

par(mfrow = c(2, 2))
plot(fen_model)

Bu grafiklerin nasıl yorumlanacağına “Model Uyumu” başlığı altında değinilmiştir.

1.16 Çoklu Regresyonun Formülasyonu ve Path Diyagramları

Çoklu regresyon modeli matematiksel olarak şu şekilde ifade edilir:

Y = b₀ + b₁X₁ + b₂X₂ + e

Burada Y bağımlı değişkeni, b₀ sabit terimi, b₁ ve b₂ regresyon katsayılarını, X₁ ve X₂ bağımsız değişkenleri ve e hata terimini ifade eder.

Benim fen modelim için formül şöyle yazılabilir:

Fen Puanı = 56.12 + 0.003(Aile Geliri) + 0.04(Okuma Puanı)

Path diyagramları ise değişkenler arasındaki ilişkileri görsel olarak gösteren şemalardır. Oklar nedensellik yönünü, ok üzerindeki sayılar ise katsayıları gösterir.

library(DiagrammeR)

grViz("
  digraph model {
    graph [rankdir = LR]
    
    node [shape = box, fontname = Arial]
    'Aile Geliri' -> 'Fen Puanı' [label = 'β = 0.33']
    'Okuma Puanı' -> 'Fen Puanı' [label = 'β = 0.04']
  }
")

1.17 Aşamalı (Stepwise) Regresyon

Aşamalı regresyon, birçok bağımsız değişken arasından en iyi modeli otomatik olarak seçen bir yöntemdir. Elimizde çok sayıda değişken varsa ve hangilerinin modele dahil edilmesi gerektiğini bilmiyorsak bu yöntem işe yarar.

Üç farklı yaklaşım vardır:

Forward (İleri): Boş bir modelle başlar, en anlamlı değişkeni ekler, sonra bir sonraki en anlamlı değişkeni ekler ve bu şekilde devam eder.

Backward (Geri): Tüm değişkenlerle başlar, en anlamsız değişkeni çıkarır, sonra bir sonraki en anlamsız değişkeni çıkarır ve bu şekilde devam eder.

Stepwise (Her iki yönde): Her adımda hem ekleme hem çıkarma yapar. En esnek yöntemdir.

Model seçiminde genellikle AIC (Akaike Information Criterion) değeri kullanılır. AIC ne kadar düşükse model o kadar iyidir. Aşağıda bu yaklaşımardan “Stepwise Model” için bir örnek yapılmıştır.

tam_model <- lm(fen_puani ~ aile_gelir + okuma_puani + matematik_puani + cinsiyet + okul_turu, 
                data = emrah_veri)
bos_model <- lm(fen_puani ~ 1, data = emrah_veri)

stepwise_model <- step(tam_model, direction = "both", trace = 0)


library(gt)

aic_tablo <- data.frame(
  Model = c("Tam Model", "Boş Model", "Stepwise Model"),
  AIC = c(AIC(tam_model), AIC(bos_model), AIC(stepwise_model)),
  Degisken_Sayisi = c(length(coef(tam_model)), 1, length(coef(stepwise_model)))
)

aic_tablo %>%
  gt() %>%
  fmt_number(columns = AIC, decimals = 2) %>%
  cols_align(align = "center") %>%
  cols_label(
    Model = "Model",
    AIC = "AIC Değeri",
    Degisken_Sayisi = "Değişken Sayısı"
  ) %>%
  tab_header(title = "Aşamalı Regresyon - Model Karşılaştırması")
Aşamalı Regresyon - Model Karşılaştırması
Model AIC Değeri Değişken Sayısı
Tam Model 3,985.50 7
Boş Model 4,041.92 1
Stepwise Model 3,981.91 5

Tabloya baktığımızda en düşük AIC değerine sahip model Stepwise Model (3,981.91). AIC değeri ne kadar düşükse model o kadar iyi olduğu için bu model en uygun seçim. Tam modelde 7 değişken varken, Stepwise modelde sadece 5 değişken kalmış. Yani aşamalı regresyon 2 değişkeni gereksiz bulup modelden çıkarmış. Bu sayede daha sade ama aynı derecede açıklayıcı bir model elde edilmiş.

1.18 Etkili Gözlemler ve Uç Değerler

Regresyon analizinde bazı gözlemler modeli diğerlerinden daha fazla etkiler. Bu gözlemleri tespit etmek önemlidir çünkü tek bir gözlem bile sonuçları önemli ölçüde değiştirebilir. Bu gözlemleri 3 kategoriye ayırabiliriz.

Uç Değerler (Outliers): Diğer gözlemlerden çok farklı olan değerlerdir. Standart artığı -3 ile +3 aralığının dışında kalan gözlemler uç değer olarak kabul edilir.

emrah_veri$standart_artik <- rstandard(fen_model)
uc_degerler <- which(abs(emrah_veri$standart_artik) > 3)
uc_degerler
integer(0)

-3 ile +3 aralığının dışında kalan gözlem yok. Verilerde aşırı sapma olmadığı söylenebilir.

Kaldıraç (Leverage): Bir gözlemin bağımsız değişkenler açısından ne kadar uç noktada olduğunu gösterir. Yüksek kaldıraç değerine sahip gözlemler regresyon doğrusunu çekebilir.

emrah_veri$leverage <- hatvalues(fen_model)
yuksek_leverage <- which(emrah_veri$leverage > 2 * mean(emrah_veri$leverage))
length(yuksek_leverage)
[1] 31
# Hangi gözlemler?
yuksek_leverage <- which(emrah_veri$leverage > 2 * mean(emrah_veri$leverage))

yuksek_leverage
 [1]   2  18  21  45  48  51  52  97 135 149 153 166 174 209 219 230 233 257 268
[20] 329 332 336 359 362 364 371 392 416 449 456 477

Veri setindeki 31 öğrenciye ait puanın kaldıraç etkisi gösterdiği ve bu öğrencilerin hangi gözlemler olduğu listeden anlaşılmakatadır. İlgili gözlemlerin detaylarına bakılarak bu gözlemlerle ilgili ne yapılacağı belirlenebilir.

Etkili Gözlem (Cook’s Distance): Hem uç değer hem de kaldıraç etkisini birleştirir. Bir gözlem modelden çıkarıldığında sonuçların ne kadar değişeceğini gösterir. Genellikle 4/n veya 1’den büyük değerler etkili gözlem olarak kabul edilir.

emrah_veri$cooks <- cooks.distance(fen_model)
etkili_gozlemler <- which(emrah_veri$cooks > 4/nrow(emrah_veri))
length(etkili_gozlemler)
[1] 20
etkili_gozlemler <- which(emrah_veri$cooks > 4/nrow(emrah_veri))


etkili_gozlemler
 [1]  44  45  97 108 149 229 257 276 311 313 319 328 349 359 370 385 392 395 452
[20] 475

20 öğrenciye ait verinin etkili gözlem olduğu ve bu öğrencilerin hangileri olduğu listeden anlaşılabilir. Bu öğrencilere ilişkin detaylar incelenerek nasıl bir yol izleneceği belirlenebilir.

2 Örnek Makaleye (Liu & Wang (2022)) Dair

İlgili makale metodolojik olarak incelenmiştir. Ancak metodolojinin yorumlanabilmesi için makale konusunun ve araştırma sorularının da anlşaılması gerekmektedir.

2.1 Araştırma Konusu

Araştırmada sorgulamaya dayalı öğrenmenin öğrencilerin bilim öz-yeterliğini nasıl etkilediği incelemmektedir.

2.2 Araştırma Soruları

  1. Bilime ilgi, sorgulamaya dayalı öğrenme ile bilim öz-yeterliği arasındaki ilişkide nasıl bir role sahiptir?
  2. Yukarıdaki ilişki, öğretmen desteği tarafından nasıl düzenlenmektedir?

2.3 Veri Seti ve Öneklem

Veriler, PISA 2015 veri setinden elde edilmiştir. PISA 2015’e katılan ülkeler arasından, araştırmada kullanılan tüm değişkenlere (sorgulamaya dayalı öğrenme, bilime ilgi, bilim öz-yeterliği, öğretmen desteği ve sınıf disiplini) ilişkin soruları uygulayan 57 ülke/ekonomi analize dahil edilmiştir. Bu ülkelerden ilgili tüm soruları yanıtlayan 346,109 öğrenci (15 yaş) örneklemi oluşturmuştur.

2.4 Araştırma Yöntemi

Çalışmada ilişkisel tarama modeli kullanılmıştır. PISA 2015 verileri üzerinden ikincil veri analizi yapılmış, değişkenler arasındaki aracılık ve düzenleyicilik ilişkileri incelenmiştir.

2.5 Araştırmada Ele Alınan Değişkenler ve Rolleri

Değişken Adı PISA Kodu Modeldeki Rolü
Sorgulamaya Dayalı Öğrenme IBTEACH Bağımsız değişken
Bilim Öz-yeterliği SCIEEFF Bağımlı değişken
Bilime İlgi INTBRSCI Aracı değişken (mediator)
Öğretmen Desteği TEACHSUP Düzenleyici değişken (moderator)
Sınıf Disiplini DISCLISCI Kontrol değişkeni
Cinsiyet 1=Erkek, 2=Kadın Kontrol değişkeni

2.6 Kurulan Model

                      Bilime İlgi
                     (INTBRSCI)
                      [Aracı]
                     /         \
                 Yol A          Yol B
                  /                 \
                 /                   \
  Sorgulamaya Dayalı  ─────────────>  Bilim
      Öğrenme           Yol C        Öz-yeterliği
     (IBTEACH)                        (SCIEEFF)
                 \                   /
                  \                 /
                   Öğretmen Desteği
                     (TEACHSUP)
                    [Düzenleyici]

2.7 Araştırmanın Sonuçları

Sorgulamaya dayalı öğrenme, bilim öz-yeterliğiyle pozitif ilişkilidir. Bu ilişki doğrudan ve bilime ilgi aracılığıyla gerçekleşmktedir. Öğretmen desteği yüksek olduğunda, sorgulamaya dayalı öğrenmenin bilim öz-yeterliğine doğrudan etkisi güçlenmekte, ancak bilime ilgi üzerinden işleyen dolaylı etki zayıflamaktadır.

2.8 Eleştiri

Daha önce PIRLS 2021 verisi ile yüksek lisans tezimi yazdığım dönemden hatırlıyorum. Uluslararası sınavların örnekleminde tabakalı örnekleme yaklaşımı kullanılıyor. Eğer tabkalrın sonuçları arasında puanlar anlamlı şekilde farklılaşıyorsa mutlaka çok düzeyli analiz yapılması gerektiğini okumuştum. Bu makalede çok düzeyli analiz yapılmayışı önemli bir kusur olabilir.

3 Planladığım Çalışma

TIMSS 2023 verilerini kullanarak bir çalışma yapmayı planlıyorum. Zaman kısıtlı olduğu için detaylı bir litratür taraması yapamdım ama il izlenimlerim kurgusunu yaptığım araştırmayı yapbileceğim yönünde. Çok düzeyli analiz yapmmak için ya 2 veya 3 ülke için ayrı ayrı analiz edip şu ülkede böyle bu ülkede şöyle diye açıklmayı deneyceğim ya da sadece ülkemizi analiz edeceğim. Zaten seçeceğim tüm değişkenler birey düzeyi değişkenler olacak. Okul ve öğretmen düzeyindeki değişkenleri bu araştırmaya dahil etmeyeceğim. Veri setinde klasik olarak ele alınabilecek çok sayıda değişkene ilşikin (Örneğin SES, Cinsiyet) olsa da ben biraz daha özgün bir çalışma yapmak istiyorum. Çaışmamda ele almak istediğim değişkenleri aşağıda açıkladım.

3.1 Araştırma Konusu

8. Sınıf Öğrencilerinin TIMSS 2023Matematik Başarısında Bazı Ev Ortamı ve Kişsel Değişkenlerin Rolü

3.2 Araştırmaya Dahil Etmeyi Planladığım Değişkenler

Rol Değişken Adı TIMSS 2023 Kodu
Bağımlı (Y) Matematik Başarısı BSMMAT01-05
Bağımsız (X) Ev Öğrenme Kaynakları BSBGHER
Aracı (M) Okula Aidiyet Hissi BSBGSB
Düzenleyici (W) Matematik Konusunda Kendine Güven BSBGSCM

Not: Derinlemesine inceleme yapmadığım için buraya bir şeyler yazamıyorum. Yazmayı denedim ama baktım daha tam hakim değilim neyi niçin yapabileceğim konusunda. Şimdilik sadece önüme çıkan ilk kaynaklardan yorumuma göre bu kurguyu yaptım. Dolayısıyla kurgum değişebilir.