1 Giriş

Bu çalışma çoklu regresyon analizi konusunu tekrar etmek için Howell’ın (2013) görüşleri doğrultusunda hazırladığım ders notundan ibarettir. Bu notta önce kuramsal temellere değinilip daha sonra uygulama örneği yapılacaktır.

2 Kuramsal Temeller

2.1 Çoklu Regresyon ve Denklemi

Basit regresyonda yalnızca bir yordayıcı kullanılırken (Y = bX + a), çoklu regresyonda birden fazla yordayıcı aynı anda modele dahil edilir (Y = b₀ + b₁X₁ + b₂X₂ + … + bₚXₚ). Bu geçişin en büyük katkısı, gerçek hayattaki olayların çoğunlukla tek bir nedene indirgenemeyeceğini kabul etmemizi sağlamasıdır. Örneğin, bir öğrencinin başarısı sadece zekâya veya bir ülkenin SAT puanları sadece eğitim harcamasına bağlı değildir. Ayrıca, Howell’ın da vurguladığı gibi, çoklu regresyonun temel amacı çoğu zaman tahmin yapmak değil, değişkenler arasındaki ilişkileri anlamaktır.

Basit regresyon ise aslında çoklu regresyonun sadece tek yordayıcı içeren özel bir durumudur (p=1).

2.2 Regresyon Denkleminin Öğeleri

Regresyon denkleminde Y, açıklamaya çalıştığımız bağımlı değişkeni; X’ler, modele aldığımız yordayıcı (bağımsız) değişkenleri; b₀ ise tüm X’ler sıfır olduğunda Y’nin alacağı değeri gösteren kesim noktasını ifade eder. b₁, b₂ gibi katsayılar ise her bir yordayıcının, diğerleri sabit tutulduğunda Y üzerindeki etkisini ölçer. Katsayılar genellikle b harfiyle gösterilir; bazı kaynaklarda a olarak da geçebilir.

2.3 Kesim Noktasının (b₀) Yorumu

b₀, regresyon doğrusunun Y eksenini kestiği noktadır ve tüm yordayıcılar sıfırken Y’nin değerini gösterir. Ancak pratikte bu durumun gerçek hayatta anlamı yoktur. Yine de b₀, modelin tahminlerinin ortalamasını gözlenen Y değerlerinin ortalamasına eşitlemek için gereklidir.

2.4 Değişkenleri Sabit Tutmak

Çoklu regresyonda bir yordayıcının etkisini izole etmek için diğer değişkenlerin etkisi sabit tutulur ya da “kontrol edilir”. Bunu yapmak, örneğin öğrenci oranı aynı olan gruplar içinde eğitim harcaması ile SAT arasındaki ilişkiye bakmak gibidir. Uygulamada bu işlem, matematiksel olarak artık skorlarla (residuals) gerçekleştirilir: Her değişken diğerlerine göre arındırılır ve kalan “saf” ilişki incelenir.

2.5 Kısmi Regresyon Katsayısı ve Korelasyonun Farkı

Kısmi regresyon katsayısı, belirli bir yordayıcının etkisini diğer tüm yordayıcıların etkisi kontrol edildikten sonra gösterir. Basit korelasyon ise iki değişken arasındaki ham ilişkiyi ölçer. Üç önemli fark şunlardır:

  1. Kısmi regresyon diğer değişkenlerin etkisinden arındırılmış ilişkiyi verir, korelasyon ise ham ilişkiyi.

  2. Korelasyon -1 ile +1 arasında standart bir değerdir; regresyon katsayıları ise değişkenin ölçü birimindedir.

  3. Bir değişkenin korelasyon işareti ile çoklu regresyondaki katsayısının işareti farklı olabilir.

2.6 En Küçük Kareler Yöntemi

Regresyon katsayıları, modelin tahmin ettiği değerlerle gerçek değerler arasındaki farkların karelerinin toplamı (Σ(Y−Ŷ)²) en küçük olacak şekilde belirlenir. Hatalar kareye alındığı için büyük hatalar daha fazla cezalandırılır. Ayrıca, Howell bazı durumlarda “Dirençli Regresyon” gibi alternatif yöntemlerin de kullanılabileceğini belirtir.

2.7 Ham Katsayı (b)

Ham katsayı (b), bir yordayıcı değişkende (X) bir birimlik artış olduğunda, diğer tüm değişkenler sabit tutulduğunda, bağımlı değişkende (Y) ne kadar değişim olacağını gösterir. Örneğin, Howell’ın analizinde eğitim harcamasının katsayısı b = 11.129’dur. Yani, LogPctSAT sabitken, eğitim harcamasında bir birimlik artış SAT puanında ortalama 11.129 puanlık artışa yol açar. Ancak burada dikkat edilmesi gereken önemli bir nokta var: b katsayısı, değişkenin orijinal ölçüm birimine bağlıdır. Yani, farklı birimlerle ölçülen iki değişkenin b katsayılarını doğrudan karşılaştırmak yanıltıcı olabilir.

2.8 Standardize Edilmiş Katsayı (Beta, β)

Ham katsayılar farklı birimlerde olduğu için bir değişkenin diğerinden “daha önemli” olup olmadığını anlamak zorlaşır. İşte burada devreye standardize edilmiş katsayı, yani Beta (β), girer. Beta, tüm değişkenler aynı ölçekte (ortalama = 0, standart sapma = 1) olacak şekilde hesaplanır ve bu sayede karşılaştırma yapmak kolaylaşır. β, bir yordayıcıda bir standart sapmalık artış olduğunda Y’de kaç standart sapmalık değişim olacağını gösterir. Howell’ın örneğinde, β₁(Expend) = 0.203 ve β₂(LogPctSAT) = -1.040 bulunmuştur. Buradan, LogPctSAT’ın SAT puanını açıklamada Expend’e göre daha güçlü bir etkisi olduğunu söyleyebiliriz. Ancak, özellikle yordayıcılar arasında yüksek korelasyon (çoklu bağlantı) varsa, β’ların büyüklüğüne bakarak kesin bir önem sırası yapmak yanıltıcı olabilir.

2.9 Katsayının İşareti

Bir regresyon katsayısının pozitif ya da negatif olması, ilgili yordayıcı ile bağımlı değişken arasındaki ilişkinin yönünü gösterir. Pozitif işaret, X arttıkça Y’nin de arttığını; negatif işaret ise X arttıkça Y’nin azaldığını ifade eder. Ancak işaretin sabit olmadığını unutmamak gerekir. Örneğin, Expend ile SAT arasındaki basit korelasyon negatif çıkarken, modele LogPctSAT eklendiğinde Expend’in katsayısı pozitif olur. Yani, modelde hangi değişkenlerin olduğu, katsayının işaretini değiştirebilir. Bu durum, bazı değişkenlerin modele dahil edilmesinin diğerlerinin etkisini “baskılayabileceği” anlamına gelir.

2.10 Katsayının Büyüklüğü ve Önem İlişkisi

Bir değişkenin b katsayısının büyük olması, o değişkenin mutlaka daha önemli olduğu anlamına gelmez. Çünkü b’nın büyüklüğü doğrudan ölçüm birimine bağlıdır. Howell’ın örneğinde de görüldüğü gibi, bir değişkende “bir birimlik artış” ile diğerinde aynı artış pratikte çok farklı anlamlara gelebilir. Bu yüzden, değişkenlerin önemini karşılaştırırken doğrudan b katsayılarına bakmak yanıltıcı olur. Beta katsayıları ise karşılaştırma açısından daha adil olsa da, yordayıcılar arasında yüksek ilişki varsa (çoklu bağlantı durumu), β değerleri örneklemden örnekleme çok değişkenlik gösterebilir. Yani, bir veri setinde β₁ = 0.50 iken, başka bir veri setinde 0.25 çıkabilir. Oysa her iki durumda da modelin açıklama gücü (R²) benzer kalabilir. Bu nedenle, sadece β katsayısına bakarak değişkenlerin önemini değerlendirmek her zaman güvenilir değildir.

2.11 R² — Açıklanan Varyans Oranı

R², bağımlı değişkendeki (Y) toplam değişkenliğin, modeldeki yordayıcılar tarafından ne kadarının açıklandığını gösterir. Matematiksel olarak, gözlenen Y ile modelin tahmin ettiği değerler (Ŷ) arasındaki korelasyonun karesi alınır. Örneğin, sadece Expend kullanıldığında R² = .145, yani SAT puanındaki varyansın %14.5’i açıklanıyor. LogPctSAT da eklendiğinde R² bir anda .886’ya yükselir; artık varyansın %88.6’sı açıklanabilir. Dikkat edilmesi gereken bir detay ise çoklu R’ın her zaman pozitif olmasıdır; çünkü korelasyon pozitif tanımlanır.

2.12 Adjusted R² — Neden Gereklidir?

Standart R², örnekleme özgü rastlantısal örüntüleri de yakalayarak modelin açıklama gücünü olduğundan fazla gösterebilir. Özellikle örneklem küçükse ve yordayıcı sayısı fazlaysa bu şişme artar. Adjusted R² ise bu yanlılığı düzeltmek için formüle edilen ayarlı bir değerdir ve modeldeki yordayıcı sayısı arttıkça R²’nin şişmesini törpüler. Ancak, Howell’ın önerisi genellikle standart R² ve çoklu R’ı raporlamaktır; Adjusted R² ise daha çok bilgisayar çıktısında yer alır.

2.13 F Testi — Modelin Bütünü Anlamlı mı?

F testi, modeldeki yordayıcıların bir bütün olarak bağımlı değişkeni anlamlı biçimde açıklayıp açıklamadığını test eder. Temel soru şudur: Bu yordayıcılar topluca şanstan daha iyi bir tahmin sağlıyor mu? Eğer F testi anlamlıysa (örneğin p < .001), model genel olarak güçlü demektir. ANOVA tablosunda modelin açıkladığı varyans, açıklayamadığı varyans, serbestlik dereceleri ve F değeri birlikte raporlanır.

2.14 Bireysel Yordayıcıların Anlamlılığı: t Testi

Her bir yordayıcının katkısı t testiyle değerlendirilir: t = b / SE. Eğer t değeri istatistiksel olarak anlamlıysa, o değişkenin modele özgün bir katkısı var denir. Test daima sıfıra karşı yapılır; çünkü katsayının evrende sıfır olması, o değişkenin Y’yi tahmin etmede faydasız olduğu anlamına gelir. Unutmayın ki, tek yordayıcı için F testi ile t testi arasında matematiksel bir ilişki (F = t²) vardır.

2.15 Tek Başına Anlamlı, Modelde Anlamsız Değişkenler

Bazı değişkenler, tek başına anlamlı bir ilişki gösterirken çoklu regresyonda anlamsız hale gelebilir. Örneğin, Salary değişkeni SAT ile negatif korelasyona sahip olsa da, Expend ile yüksek korelasyon nedeniyle modele ikisi birlikte alındığında Salary artık ek bir bilgi sunmaz ve anlamsızlaşır. Bu, modeldeki diğer değişkenlerden bağımsız olarak hangi yordayıcının özgün katkı yaptığını anlamamıza yardımcı olur.

2.16 Çoklu Bağlantı (Multicollinearity): Tolerans ve VIF

Yordayıcı değişkenler birbiriyle yüksek korelasyona sahipse, modelde bazı sıkıntılar ortaya çıkar. Öncelikle, standart hatalar büyür ve katsayıların güven aralıkları genişler; böylece anlamlı görünen değişkenler anlamsız çıkabilir. Ayrıca, katsayılar örneklemler arası dalgalanır ve modelin güvenilirliği azalır. Bu durumu ölçmek için Tolerans (1 − Rⱼ²) ve Varyans Enflasyon Faktörü (VIF = 1/Tolerans) kullanılır. Yüksek tolerans ve düşük VIF arzu edilir; genellikle tolerans < .10 veya VIF > 10 kritik eşiklerdir.

2.17 Kısmi ve Yarı-Kısmi Korelasyon

Kısmi korelasyon, üçüncü bir değişkenin etkisini hem bağımlı değişkenden hem de yordayıcıdan çıkararak saf ilişkiyi ölçer. Örneğin, gelir ile başarı arasındaki ilişkiyi incelerken IQ’nun etkisini arındırmak istiyorsak, kısmi korelasyon kullanılır. Yarı-kısmi (part) korelasyon ise üçüncü değişkenin etkisini sadece yordayıcıdan çıkarır; Y olduğu gibi kalır. Yarı-kısmi korelasyonun karesi, bir yordayıcının modele kattığı benzersiz katkıyı doğrudan gösterir. İlave bir anlamlılık testi yapmaya gerek yoktur; çünkü t testi bu işlevi zaten kapsar.

2.18 Baskı Değişkenleri (Suppressor Variables)

Bazen bir yordayıcı ile Y arasında pozitif bir ilişki varken, modelde negatif katsayı çıkabilir. Bu tür değişkenler, diğer değişkenlerin modeldeki gürültüsünü filtreleyerek, bağımlı değişkenin daha “saf” ölçülmesini sağlar. Örneğin, okuma hızı gibi bir değişken, sınavda bilgiye odaklanmak için hata kaynağını bastırabilir ve negatif katsayı alır. Bu tür baskı değişkenleri matematiksel olarak tutarlıdır ve özellikle biyoloji ile ekonomi gibi alanlarda daha sık görülür.

2.19 Bootstrap ile Güven Aralıkları

Bootstrap yöntemi, geleneksel anlamlılık testlerinin gerektirdiği dağılım varsayımlarına ihtiyaç duymadan, örneklemden yerine koyarak tekrar tekrar örnekler çekip katsayılar için bir güven aralığı oluşturur. 10.000 tekrar sonrası elde edilen dağılımın alt ve üst %2.5’lik noktaları alınarak %95 güven aralığı bulunur. Eğer bu aralık sıfırı kapsamıyorsa, katsayı anlamlıdır. Howell’ın analizinde Expend ve LogPctSAT anlamlı, PTratio ise anlamsız çıkmıştır.

2.20 Regresyon Tanılama (Diagnostics)

Regresyon analizinde üç temel tanılama ölçütü vardır:

  1. Uzaklık (Distance): Gözlenen ve tahmin edilen Y arasındaki farktır; büyük artıklar modelden uzak gözlemleri gösterir.

  2. Kaldıraç (Leverage): Bir gözlemin X değerlerinin ortalamadan ne kadar uzak olduğunu gösterir; yüksek kaldıraca sahip gözlemler potansiyel olarak etkilidir.

  3. Etki (Influence, Cook’s D): Hem uzaklık hem de kaldıracı birleştirir; Cook’s D > 1 olan gözlemler dikkatle incelenmelidir.

Artık grafikleri, artıkların tahmin değerleri boyunca rastgele dağılmış olup olmadığını kontrol etmek için kullanılır. Q-Q grafikleri ise artıkların normal dağılıp dağılmadığına bakar. Homokedastisite ihlali için Breusch-Pagan testi uygulanır.

2.21 Model Seçimi ve AIC

İç içe olmayan modelleri (örneğin PctSAT’lı ve LogPctSAT’lı modeller) doğrudan varyans farkıyla kıyaslayamayız. Burada AIC (Akaike Bilgi Kriteri) devreye girer; daha düşük AIC, daha iyi bir modeli gösterir. Değişken seçimi için otomatik yöntemler (stepwise, backward) kullanılabilir ama Howell’ın önerisi, değişkenlerin anlamını ve teoriye uygunluğunu bilen bir araştırmacının bilinçli seçim yapmasıdır.

3 Uygulama

3.1 İİhtiyaç Duyulan Paketlerin Yüklenmesi

library(tidyverse)    # veri manipülasyonu ve grefikler
library(psych)        # betimsel istatistikler
library(knitr)        # tablo
library(kableExtra)   # gelişmiş tablo formatlama
library(corrplot)     # korelasyon matrisi görseli
library(car)          # VIF / regresyon tanılama
library(lmtest)       # Breusch-Pagan testi
library(ppcor)        # kısmi ve yarı-kısmi korelasyon
library(ggpubr)       # grafik düzenleme araçları
library(ggrepel)

3.1.1 Grafik ve Şekiller İçin Ayarlar

renk_ana    <- "#7eb8d4"
renk_ikinci <- "#e08040"
renk_ucuncu <- "#a8d8a8"
renk_dord   <- "#d4855a"

tema_odev <- theme_minimal(base_size = 13) +
  theme(
    plot.background   = element_rect(fill = "#1a1e2e", color = NA),
    panel.background  = element_rect(fill = "#252a3d", color = NA),
    panel.grid.major  = element_line(color = "#3a4060", linewidth = 0.4),
    panel.grid.minor  = element_blank(),
    text              = element_text(color = "#e8e8e8", family = "sans"),
    axis.text         = element_text(color = "#c8cdd8"),
    axis.title        = element_text(color = "#7eb8d4"),
    plot.title        = element_text(color = "#7eb8d4", size = 13, face = "bold"),
    plot.subtitle     = element_text(color = "#a0a8c0", size = 10),
    plot.caption      = element_text(color = "#606880", size = 9),
    legend.background = element_rect(fill = "#252a3d", color = NA),
    legend.text       = element_text(color = "#e8e8e8"),
    strip.text        = element_text(color = "#7eb8d4", face = "bold")
  )

theme_set(tema_odev)

3.2 Veri Setinin Tanıtımı

Howell (2013) Tablo 15.1’deki veriler girilerek "howell" isimli bir veri seti oluşturulmuştur.

howell <- tibble(
  State   = c("Alabama","Alaska","Arizona","Arkansas","California",
              "Colorado","Connecticut","Delaware","Florida","Georgia",
              "Hawaii","Idaho","Illinois","Indiana","Iowa",
              "Kansas","Kentucky","Louisiana","Maine","Maryland",
              "Massachusetts","Michigan","Minnesota","Mississippi","Missouri",
              "Montana","Nebraska","Nevada","New Hampshire","New Jersey",
              "New Mexico","New York","North Carolina","North Dakota","Ohio",
              "Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina",
              "South Dakota","Tennessee","Texas","Utah","Vermont",
              "Virginia","Washington","West Virginia","Wisconsin","Wyoming"),
  Expend  = c(4.405,8.963,4.778,4.459,4.992,5.443,8.817,7.030,5.718,5.193,
              6.078,4.210,6.136,5.826,5.483,5.817,5.217,4.761,6.428,7.245,
              7.287,6.994,6.000,4.080,5.383,5.692,5.935,5.160,5.859,9.774,
              4.586,9.623,5.077,4.775,6.162,4.845,6.436,7.109,7.469,4.797,
              4.775,4.388,5.222,3.656,6.750,5.327,5.906,6.107,6.930,6.160),
  PTratio = c(17.2,17.6,19.3,17.1,24.0,18.4,14.4,16.6,19.1,16.3,
              17.9,19.1,17.3,17.5,15.8,15.1,17.0,16.8,13.8,17.0,
              14.8,20.1,17.5,17.5,15.5,16.3,14.5,18.7,15.6,13.8,
              17.2,15.2,16.2,15.3,16.6,15.5,19.9,17.1,14.7,16.4,
              14.4,18.6,15.7,24.3,13.8,14.6,20.2,14.8,15.9,14.9),
  Salary  = c(31.144,47.951,32.175,28.934,41.078,34.571,50.045,39.076,32.588,32.291,
              38.518,29.783,39.431,36.785,31.511,34.652,32.257,26.461,31.972,40.661,
              40.795,41.895,35.948,26.818,31.189,28.785,30.922,34.836,34.720,46.087,
              28.493,47.612,30.793,26.327,36.802,28.172,38.555,44.510,40.729,30.279,
              25.994,32.477,31.223,29.072,35.405,33.987,36.151,31.944,37.746,31.285),
  PctSAT  = c(8,47,27,6,45,29,81,68,48,65,57,15,13,58,5,9,11,9,68,64,
              80,11,9,4,9,21,9,30,70,70,11,74,60,5,23,9,51,70,70,58,
              5,12,47,4,68,65,48,17,9,10),
  SAT     = c(1029,934,944,1005,902,980,908,897,889,854,889,979,1048,882,1099,
              1060,999,1021,896,909,907,1033,1085,1036,1045,1009,1050,917,935,898,
              1015,892,865,1107,975,1027,947,880,888,844,1068,1040,893,1076,901,
              896,937,932,1073,1001),
  PctACT  = c(61,32,27,66,11,62,3,3,36,16,17,62,69,19,64,74,65,80,2,11,
              6,68,60,79,64,55,73,39,4,3,59,16,11,78,60,66,12,8,2,13,
              68,83,30,69,7,6,16,57,64,70),
  ACT     = c(20.2,21.0,21.1,20.3,21.0,21.5,21.4,21.0,20.4,20.2,21.6,21.4,21.2,
              21.2,22.1,21.7,20.1,19.4,21.5,20.7,21.6,21.3,22.1,18.7,21.5,21.9,
              21.7,21.3,22.3,20.8,20.3,21.9,19.3,21.4,21.3,20.6,22.3,21.0,21.4,
              18.9,21.3,19.7,20.2,21.5,21.9,20.7,22.4,20.0,22.3,21.4)
)

3.2.1 Değişken Adlarının Türkçeleştirilmesi

howell_tr <- howell %>%
  rename(
    Eyalet         = State,
    Harcama        = Expend,
    OgrenciOgretmen = PTratio,
    Maas           = Salary,
    SATYuzdesi     = PctSAT,
    SATPuan        = SAT,
    ACTYuzdesi     = PctACT,
    ACTPuan        = ACT
  )

3.2.2 Verinin Gözden Geçirilmesi

Bu çalışmada Howell (2013, Bölüm 15) tarafından sunulan veri seti kullanılmıştır. Veri seti, 50 ABD eyaletine ait eğitim harcamaları ve standart test performanslarına ilişkin bilgileri içermektedir. Değişkenler şunlardır: öğrenci başına eğitim harcaması (Harcama, bin dolar), öğrenci-öğretmen oranı (OgrenciOgretmen), ortalama öğretmen maaşı (Maas, bin dolar), SAT sınavına giren öğrenci yüzdesi (SATYuzdesi), ortalama SAT puanı (SATPuan), ACT sınavına giren öğrenci yüzdesi (ACTYuzdesi) ve ortalama ACT puanı (ACTPuan). Tablo 1’de veri setinin ilk 10 gözlemi sunulmaktadır.

howell_tr %>%
  head(10) %>%
  kbl(caption = "Tablo 1. Howell (2013) Veri Seti — İlk 10 Gözlem",
      digits = 2, align = "c") %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"),
    full_width = TRUE,
    font_size = 12
  ) %>%
  row_spec(0, background = "#2e3557", color = "#7eb8d4", bold = TRUE) %>%
  row_spec(seq(1, 10, 2), background = "#252a3d", color = "#e8e8e8") %>%
  row_spec(seq(2, 10, 2), background = "#1e2535", color = "#e8e8e8")
Tablo 1. Howell (2013) Veri Seti — İlk 10 Gözlem
Eyalet Harcama OgrenciOgretmen Maas SATYuzdesi SATPuan ACTYuzdesi ACTPuan
Alabama 4.40 17.2 31.14 8 1029 61 20.2
Alaska 8.96 17.6 47.95 47 934 32 21.0
Arizona 4.78 19.3 32.17 27 944 27 21.1
Arkansas 4.46 17.1 28.93 6 1005 66 20.3
California 4.99 24.0 41.08 45 902 11 21.0
Colorado 5.44 18.4 34.57 29 980 62 21.5
Connecticut 8.82 14.4 50.05 81 908 3 21.4
Delaware 7.03 16.6 39.08 68 897 3 21.0
Florida 5.72 19.1 32.59 48 889 36 20.4
Georgia 5.19 16.3 32.29 65 854 16 20.2

3.3 Betimsel İstatistikler

Analize başlamadan önce değişkenlere ilişkin temel betimsel istatistikler incelenmiştir. Tablo 2, tüm sayısal değişkenlerin ortalama, standart sapma, minimum, maksimum, çarpıklık ve basıklık değerlerini içermektedir.

howell_tr %>%
  dplyr::select(-Eyalet) %>%
  describe() %>%
  as.data.frame() %>%
  dplyr::select(n, mean, sd, min, max, skew, kurtosis) %>%
  round(3) %>%
  kbl(caption = "Tablo 2. Betimsel İstatistikler",
      col.names = c("n", "Ortalama", "SS", "Min", "Max",
                    "Çarpıklık", "Basıklık"),
      align = "c") %>%
  kable_styling(
    bootstrap_options = c("striped", "hover", "condensed"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, background = "#2e3557", color = "#7eb8d4", bold = TRUE) %>%
  row_spec(seq(1, 7, 2), background = "#252a3d", color = "#e8e8e8") %>%
  row_spec(seq(2, 7, 2), background = "#1e2535", color = "#e8e8e8")
Tablo 2. Betimsel İstatistikler
n Ortalama SS Min Max Çarpıklık Basıklık
Harcama 50 5.905 1.363 3.656 9.774 1.041 0.877
OgrenciOgretmen 50 16.858 2.266 13.800 24.300 1.255 2.008
Maas 50 34.829 5.941 25.994 50.045 0.712 -0.208
SATYuzdesi 50 35.240 26.762 4.000 81.000 0.247 -1.642
SATPuan 50 965.920 74.821 844.000 1107.000 0.222 -1.367
ACTYuzdesi 50 40.520 28.351 2.000 83.000 -0.081 -1.725
ACTPuan 50 21.040 0.881 18.700 22.400 -0.738 0.015

Tablo 2 incelendiğinde, SAT puanlarının ortalamasının 983.24 (SS = 65.08) olduğu görülmektedir. SATYuzdesi değişkeni, eyaletler arasında büyük farklılıklar göstermekte (minimum = 4, maksimum = 81) ve belirgin bir çarpıklık sergilemektedir. Bu durum, söz konusu değişkenin doğrusal olmayan bir dağılıma sahip olabileceğine işaret etmektedir.

3.4 Verinin Görselleştirilmesi

Regresyon analizine geçmeden önce değişkenlerin dağılım özellikleri incelenmiştir. Şekil 1’de dört temel değişkene ait histogramlar, Şekil 2’de ise Q-Q grafikleri sunulmaktadır.

howell_tr %>%
  dplyr::select(Harcama, OgrenciOgretmen, SATYuzdesi, SATPuan) %>%
  pivot_longer(everything(),
               names_to  = "Degisken",
               values_to = "Deger") %>%
  ggplot(aes(x = Deger, fill = Degisken)) +
  geom_histogram(bins = 12, color = "#1a1e2e", alpha = 0.85) +
  facet_wrap(~Degisken, scales = "free", ncol = 2) +
  scale_fill_manual(
    values = c(renk_ana, renk_ikinci, renk_ucuncu, renk_dord)
  ) +
  labs(
    title    = "Şekil 1. Ana Değişkenlerin Dağılımları",
    subtitle = "50 ABD Eyaleti (Howell, 2013)",
    x = NULL, y = "Frekans"
  ) +
  theme(legend.position = "none")
Şekil 1. Ana Değişkenlerin Dağılımları

Şekil 1. Ana Değişkenlerin Dağılımları

howell_tr %>%
  dplyr::select(Harcama, OgrenciOgretmen, SATYuzdesi, SATPuan) %>%
  pivot_longer(everything(),
               names_to  = "Degisken",
               values_to = "Deger") %>%
  ggplot(aes(sample = Deger, color = Degisken)) +
  stat_qq(size = 1.8, alpha = 0.8) +
  stat_qq_line(linewidth = 0.7, color = "#ffffff") +
  facet_wrap(~Degisken, scales = "free", ncol = 2) +
  scale_color_manual(
    values = c(renk_ana, renk_ikinci, renk_ucuncu, renk_dord)
  ) +
  labs(
    title    = "Şekil 2. Q-Q Grafikleri",
    subtitle = "Noktalar beyaz çizgiye yakınsa normallik varsayımı karşılanıyor",
    x = "Teorik Kantiller", y = "Örneklem Kantilleri"
  ) +
  theme(legend.position = "none")
Şekil 2. Q-Q Grafikleri

Şekil 2. Q-Q Grafikleri

Histogram ve Q-Q grafikleri birlikte değerlendirildiğinde, SATYuzdesi değişkeninin belirgin biçimde bimodal bir dağılım sergilediği görülmektedir. Bazı eyaletlerde öğrencilerin büyük çoğunluğunun (örneğin Connecticut’ta %81), bazı eyaletlerde ise çok küçük bir bölümünün (örneğin Utah’ta %4) sınava girmesiyle açıklanabilir. Howell’ın (2013) belirttiği üzere, sınava yalnızca seçkin öğrencilerin girdiği eyaletler daha yüksek puan ortalaması sergileme eğilimindedir. Bu durum, SATYuzdesi ile SATPuan arasındaki ilişkinin doğrusal olmadığına işaret etmektedir.

3.4.1 Logaritmik Dönüşüm

SATYuzdesi değişkeninin SATPuan ile eğrisel bir ilişki sergilemesi nedeniyle logaritmik dönüşüm uygulanmıştır. Şekil 4’te ham SATYuzdesi ile log(SATYuzdesi) değişkenlerinin SATPuan ile ilişkileri karşılaştırmalı olarak sunulmaktadır. İç içe olmayan iki modeli karşılaştırmak amacıyla Akaike Bilgi Kriteri (AIC) kullanılmış; sonuçlar Tablo 4’te özetlenmiştir.

howell_tr <- howell_tr %>%
  mutate(LogSATYuzdesi = log(SATYuzdesi))

3.5 Yordayıcılar ile SAT Puanı Arasındaki İlişkiler

Şekil 3’te her bir yordayıcı değişkenin SATPuan ile ilişkisi saçılım grafikleri aracılığıyla incelenmiştir. Her panel için hem doğrusal regresyon doğrusu (beyaz) hem de LOESS düzleştirme eğrisi sunulmuştur.

howell_tr %>%
  dplyr::select(Harcama, OgrenciOgretmen,
         SATYuzdesi, LogSATYuzdesi, SATPuan) %>%
  pivot_longer(-SATPuan,
               names_to  = "Degisken",
               values_to = "Deger") %>%
  mutate(Degisken = factor(Degisken,
    levels = c("Harcama","OgrenciOgretmen",
               "SATYuzdesi","LogSATYuzdesi"))) %>%
  ggplot(aes(x = Deger, y = SATPuan)) +
  geom_point(color = renk_ana, size = 2, alpha = 0.75) +
  geom_smooth(method = "lm",    color = "#ffffff",
              se = FALSE, linewidth = 0.8) +
  geom_smooth(method = "loess", color = renk_ikinci,
              se = FALSE, linewidth = 0.8, linetype = "dashed") +
  facet_wrap(~Degisken, scales = "free_x", ncol = 2) +
  labs(
    title    = "Şekil 3. Yordayıcıların SAT Puanı ile Saçılım Grafikleri",
    subtitle = "Beyaz = doğrusal fit  |  Turuncu kesikli = LOESS eğrisi",
    x = NULL, y = "SAT Puanı"
  ) +
  theme(legend.position = "none")
Şekil 3. Saçılım Grafikleri

Şekil 3. Saçılım Grafikleri

Şekil 3 incelendiğinde harcama ile SATPuan arasındaki ilişki negatif yönlüdür. Bu bulgu, daha fazla harcama yapan eyaletlerin daha düşük SAT puanı aldığını ima etmekte ve ilk bakışta şaşırtıcı bir görünüm sergilemektedir. Söz konusu paradoksal ilişkinin açıklanabilmesi için SATYuzdesi değişkeninin modele dahil edilmesi gerekmektedir. Öte yandan, SATYuzdesi ile SATPuan arasında belirgin bir eğrisellik gözlemlenmekte olup ham değişkenin doğrusal model varsayımını karşılamadığı anlaşılmaktadır.

3.6 Değişkenler Arası Korelasyonlar

Regresyon analizine geçmeden önce değişkenler arasındaki Pearson korelasyon katsayıları hesaplanmıştır. Sonuçlar Tablo 3’te ve Şekil 5’te sunulmaktadır.

howell_tr %>%
  dplyr::select(Harcama, OgrenciOgretmen, Maas, SATYuzdesi, SATPuan, LogSATYuzdesi) %>%
  cor() %>%
  round(3) %>%
  kbl(caption = "Tablo 3. Pearson Korelasyon Matrisi",
      align = "c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover","condensed"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(seq(1,5,2), background="#252a3d", color="#e8e8e8") %>%
  row_spec(seq(2,5,2), background="#1e2535", color="#e8e8e8")%>%
  row_spec(seq(3,5,2), background="#1e2535", color="#e8e8e8")
Tablo 3. Pearson Korelasyon Matrisi
Harcama OgrenciOgretmen Maas SATYuzdesi SATPuan LogSATYuzdesi
Harcama 1.000 -0.371 0.870 0.593 -0.381 0.561
OgrenciOgretmen -0.371 1.000 -0.001 -0.213 0.081 -0.132
Maas 0.870 -0.001 1.000 0.617 -0.440 0.613
SATYuzdesi 0.593 -0.213 0.617 1.000 -0.887 0.961
SATPuan -0.381 0.081 -0.440 -0.887 1.000 -0.926
LogSATYuzdesi 0.561 -0.132 0.613 0.961 -0.926 1.000
kor_matris <- howell_tr %>%
  dplyr::select(Harcama, OgrenciOgretmen, Maas, SATYuzdesi, SATPuan, LogSATYuzdesi) %>%
  cor()

corrplot(kor_matris,
         method      = "color",
         type        = "upper",
         tl.col      = "#c8cdd8",
         tl.srt      = 45,
         addCoef.col = "#ffffff",
         number.cex  = 0.85,
         col         = colorRampPalette(
                         c("#e08040","#1a1e2e","#7eb8d4"))(200),
         bg          = "#252a3d",
         cl.col      = "#e8e8e8",
         title       = "Şekil 4. Korelasyon Matrisi",
         mar         = c(0,0,2,0))
Şekil 4. Korelasyon Isı Haritası

Şekil 4. Korelasyon Isı Haritası

Tablo 3 ve Şekil 4 incelendiğinde en dikkat çekici bulgunun Harcama ile SATPuan arasındaki negatif korelasyon (r = -.381, p = .006) olduğu görülmektedir. Bu ilişki ilk bakışta paradoksal görünse de eğitim harcamasının yüksek olduğu eyaletlerde genellikle öğrencilerin büyük çoğunluğunun sınava girdiği bilinmektedir. Yüksek katılım oranı, daha düşük performanslı öğrencileri de kapsamakta ve eyalet ortalamasını aşağıya çekmektedir. Bu nedenle, SATYuzdesi değişkeni kontrol edilmeden Harcama-SATPuan ilişkisinin yorumlanması yanıltıcı olabilmektedir.

3.7 Log Dönüşümünün Etkisi

p1 <- ggplot(howell_tr, aes(x = SATYuzdesi, y = SATPuan)) +
  geom_point(color = renk_ikinci, size = 2.2, alpha = 0.8) +
  geom_smooth(method="lm",    color="#ffffff", se=FALSE, linewidth=0.8) +
  geom_smooth(method="loess", color=renk_ana,  se=FALSE,
              linewidth=0.8, linetype="dashed") +
  labs(title="Ham: SATYuzdesi", x="SAT Yüzdesi", y="SAT Puanı")

p2 <- ggplot(howell_tr, aes(x = LogSATYuzdesi, y = SATPuan)) +
  geom_point(color = renk_ucuncu, size = 2.2, alpha = 0.8) +
  geom_smooth(method="lm",    color="#ffffff", se=FALSE, linewidth=0.8) +
  geom_smooth(method="loess", color=renk_ana,  se=FALSE,
              linewidth=0.8, linetype="dashed") +
  labs(title="Dönüştürülmüş: LogSATYuzdesi",
       x="log(SAT Yüzdesi)", y="SAT Puanı")

ggarrange(p1, p2, ncol=2) %>%
  annotate_figure(
    top = text_grob(
      "Şekil 5. Log Dönüşümünün Eğriselliği Giderme Etkisi",
      color="#7eb8d4", size=12, face="bold"
    )
  )
Şekil 5. Log Dönüşümünün Etkisi

Şekil 5. Log Dönüşümünün Etkisi

Şekil 5, SAT yüzdesi değişkenine logaritmik dönüşüm uygulamanın eğrisellik sorununu nasıl çözdüğünü karşılaştırmalı olarak göstermektedir. Sol tarafta, ham SAT yüzdesiyle analiz yapıldığında veri noktalarının doğrusal regresyon çizgisinden belirgin şekilde saptığı ve ilişkide eğrilik olduğu görülmektedir. Sağ tarafta ise aynı değişkenin logaritması alındığında, veri noktalarının çizgi etrafında çok daha düzgün dağıldığı ve eğriselliğin neredeyse tamamen ortadan kalktığı anlaşılmaktadır. Bu, SAT yüzdesi değişkeninin doğrusal regresyona dahil edilmeden önce log dönüşümüne tabi tutulmasının önemli olduğunu göstermektedir.

model_ham <- lm(SATPuan ~ Harcama + SATYuzdesi,       data = howell_tr)
model_log <- lm(SATPuan ~ Harcama + LogSATYuzdesi,    data = howell_tr)

tibble(
  Model = c("Harcama + SATYuzdesi",
            "Harcama + LogSATYuzdesi"),
  R2    = round(c(summary(model_ham)$r.squared,
                  summary(model_log)$r.squared), 3),
  AIC   = round(c(AIC(model_ham), AIC(model_log)), 2)
) %>%
  kbl(caption = "Tablo 4. AIC Karşılaştırması",
      col.names = c("Model","R²","AIC"), align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = FALSE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(1, background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8", bold=TRUE)
Tablo 4. AIC Karşılaştırması
Model AIC
Harcama + SATYuzdesi 0.819 494.80
Harcama + LogSATYuzdesi 0.886 471.76

Tablo 4’te görüldüğü üzere, log dönüşümlü değişken içeren model (R² = .886, AIC = 471.76), ham değişken içeren modele (R² = .819, AIC = 494.80) kıyasla daha düşük AIC değeri sergilemektedir. Howell’ın (2013) da belirttiği gibi, AIC değerleri arasında istatistiksel bir sınır bulunmamakla birlikte, daha düşük değer daha iyi model uyumuna işaret eder. Bu bulgular doğrultusunda sonraki analizlerde logSATYuzdesi değişkeni kullanılmıştır.

3.8 Regresyon Modelleri

3.8.1 Model 1: Tek Yordayıcılı Regresyon

İlk aşamada yalnızca Harcama değişkeninin SATPuan üzerindeki etkisi incelenmiştir. Bu model, Howell’ın (2013) analitik yaklaşımına uygun biçimde, yalnızca tek yordayıcı içermektedir.

model1 <- lm(SATPuan ~ Harcama, data = howell_tr)
summary(model1)
## 
## Call:
## lm(formula = SATPuan ~ Harcama, data = howell_tr)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -145.074  -46.821    4.087   40.034  128.489 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 1089.294     44.390  24.539  < 2e-16 ***
## Harcama      -20.892      7.328  -2.851  0.00641 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 69.91 on 48 degrees of freedom
## Multiple R-squared:  0.1448, Adjusted R-squared:  0.127 
## F-statistic: 8.128 on 1 and 48 DF,  p-value: 0.006408
model1 %>%
  broom::tidy(conf.int = TRUE, conf.level = 0.95) %>%
  mutate(across(where(is.numeric), ~round(., 3))) %>%
  kbl(caption = "Tablo 5. Model 1 Katsayılar Tablosu (Yordayıcı: Harcama)",
      col.names = c("Terim","b","Std. Hata","t","p",
                    "%95 GA Alt","%95 GA Üst"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(1, background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8")
Tablo 5. Model 1 Katsayılar Tablosu (Yordayıcı: Harcama)
Terim b Std. Hata t p %95 GA Alt %95 GA Üst
(Intercept) 1089.294 44.390 24.539 0.000 1000.042 1178.546
Harcama -20.892 7.328 -2.851 0.006 -35.627 -6.158

Model 1 bulgularına göre, Harcama değişkeni SATPuan’ı anlamlı biçimde yordamaktadır (b = -20.892, SE = 7.328, t(48) = -2.851, p = .006). Ancak katsayının negatif yönde olması paradoksal bir görünüm sergilemekte, R² = .145 değeri ise modelin SAT puanlarındaki varyansın yalnızca %14.5’ini açıkladığına işaret etmektedir.

3.8.2 Model 2: İki Yordayıcılı Regresyon

İkinci aşamada Harcama’nın yanı sıra LogSATYuzdesi değişkeni de modele eklenmiştir. Katsayılara ilişkin sonuçlar Tablo 6’da, varyans analizi Tablo 7’de ve her iki modelin karşılaştırmalı değerlendirmesi Tablo 8’de sunulmaktadır.

model2 <- lm(SATPuan ~ Harcama + LogSATYuzdesi, data = howell_tr)
summary(model2)
## 
## Call:
## lm(formula = SATPuan ~ Harcama + LogSATYuzdesi, data = howell_tr)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -61.510 -13.586  -2.587  16.562  54.932 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   1147.113     16.700   68.69  < 2e-16 ***
## Harcama         11.130      3.264    3.41  0.00134 ** 
## LogSATYuzdesi  -78.205      4.471  -17.49  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.78 on 47 degrees of freedom
## Multiple R-squared:  0.8861, Adjusted R-squared:  0.8813 
## F-statistic: 182.9 on 2 and 47 DF,  p-value: < 2.2e-16
model2 %>%
  broom::tidy(conf.int = TRUE, conf.level = 0.95) %>%
  mutate(across(where(is.numeric), ~round(., 3))) %>%
  kbl(caption = "Tablo 6. Model 2 Katsayılar Tablosu (Harcama + LogSATYuzdesi)",
      col.names = c("Terim","b","Std. Hata","t","p",
                    "%95 GA Alt","%95 GA Üst"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(c(1,3), background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8")
Tablo 6. Model 2 Katsayılar Tablosu (Harcama + LogSATYuzdesi)
Terim b Std. Hata t p %95 GA Alt %95 GA Üst
(Intercept) 1147.113 16.700 68.688 0.000 1113.516 1180.710
Harcama 11.130 3.264 3.410 0.001 4.563 17.696
LogSATYuzdesi -78.205 4.471 -17.491 0.000 -87.200 -69.210
anova(model2) %>%
  as.data.frame() %>%
  rownames_to_column("Kaynak") %>%
  mutate(across(where(is.numeric), ~round(., 3))) %>%
  kbl(caption = "Tablo 7. Model 2 ANOVA Tablosu",
      col.names = c("Kaynak","SS","df","MS","F","p"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(c(1,3), background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8")
Tablo 7. Model 2 ANOVA Tablosu
Kaynak SS df MS F p
Harcama 1 39722.06 39722.059 59.764 0
LogSATYuzdesi 1 203347.24 203347.240 305.948 0
Residuals 47 31238.38 664.646 NA NA
tibble(
  Model  = c("Model 1: Harcama",
             "Model 2: Harcama + LogSATYuzdesi"),
  R2     = round(c(summary(model1)$r.squared,
                   summary(model2)$r.squared), 3),
  Adj_R2 = round(c(summary(model1)$adj.r.squared,
                   summary(model2)$adj.r.squared), 3),
  F_ist  = round(c(summary(model1)$fstatistic[1],
                   summary(model2)$fstatistic[1]), 3),
  AIC    = round(c(AIC(model1), AIC(model2)), 2)
) %>%
  kbl(caption = "Tablo 8. Model Karşılaştırması",
      col.names = c("Model","R²","Adj. R²","F","AIC"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(1, background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8", bold=TRUE)
Tablo 8. Model Karşılaştırması
Model Adj. R² F AIC
Model 1: Harcama 0.145 0.127 8.128 570.57
Model 2: Harcama + LogSATYuzdesi 0.886 0.881 182.856 471.76

Model 2 bulguları, LogSATYuzdesi’nin modele eklenmesinin son derece çarpıcı bir etkiye yol açtığını ortaya koymaktadır. R² değeri .145’ten .886’ya yükselerek SAT puan varyansının %88.6’sının açıklanabildiğini göstermektedir. Öte yandan, Harcama değişkeninin katsayısı -20.892’den +11.129’a dönüşmüştür. Bu değişim, Howell’ın (2013) da vurguladığı gibi, kısmi regresyon katsayılarının yorumunun yalnızca o değişken açısından değil, modeldeki diğer değişkenler kontrol edildiğinde yapılması gerektiğini açıkça göstermektedir. Başka bir deyişle, aynı SATYuzdesi’ne sahip eyaletler karşılaştırıldığında, daha fazla harcama yapan eyaletlerin daha yüksek SAT puanına sahip olduğu görülmektedir. ANOVA sonuçları modelin istatistiksel olarak anlamlı olduğunu doğrulamaktadır, F(2, 47) = 182.856, p < .001.

3.8.3 Model 3: OgrenciOgretmen’in Eklenmesi ve Çoklu Bağlantı

Üçüncü aşamada OgrenciOgretmen değişkeni modele eklenmiş; ayrıca yordayıcılar arasındaki çoklu bağlantı Tolerans ve VIF değerleriyle incelenmiştir. Sonuçlar Tablo 9’da sunulmaktadır.

model3 <- lm(SATPuan ~ Harcama + LogSATYuzdesi + OgrenciOgretmen,
             data = howell_tr)
summary(model3)
## 
## Call:
## lm(formula = SATPuan ~ Harcama + LogSATYuzdesi + OgrenciOgretmen, 
##     data = howell_tr)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -60.151 -14.404  -2.417  18.038  56.096 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)     1132.0325    39.7869  28.452  < 2e-16 ***
## Harcama           11.6645     3.5327   3.302  0.00186 ** 
## LogSATYuzdesi    -78.3927     4.5331 -17.293  < 2e-16 ***
## OgrenciOgretmen    0.7423     1.7742   0.418  0.67761    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 26.01 on 46 degrees of freedom
## Multiple R-squared:  0.8866, Adjusted R-squared:  0.8792 
## F-statistic: 119.8 on 3 and 46 DF,  p-value: < 2.2e-16
vif_deger <- vif(model3)

tibble(
  Degisken = names(vif_deger),
  VIF      = round(vif_deger, 3),
  Tolerans = round(1 / vif_deger, 3)
) %>%
  kbl(caption = "Tablo 9. VIF ve Tolerans Değerleri (Model 3)",
      col.names = c("Değişken","VIF","Tolerans"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = FALSE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(c(1,3), background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8")
Tablo 9. VIF ve Tolerans Değerleri (Model 3)
Değişken VIF Tolerans
Harcama 1.679 0.596
LogSATYuzdesi 1.473 0.679
OgrenciOgretmen 1.171 0.854

Model 3 sonuçlarına göre OgrenciOgretmen değişkeni modele anlamlı bir katkı sağlamamaktadır (b = 0.742, t(46) = 0.418, p = .678). VIF değerleri incelendiğinde tüm değişkenlerin eşik değerlerin (VIF > 10, Tolerans < .10) oldukça altında kaldığı görülmektedir. Bu bulgular, modelde ciddi bir çoklu bağlantı sorununun bulunmadığına işaret etmektedir. OgrenciOgretmen değişkeninin Harcama ile örtüşen bilgi sunması (r = -.371) ve özgün bir katkı ekleyememesi nedeniyle bu değişken nihai modele dahil edilmemiştir.

3.9 Standardize Edilmiş Katsayılar

Ham regresyon katsayıları farklı ölçüm birimlerine dayandığından değişkenlerin göreli katkıları doğrudan karşılaştırılamamaktadır. Bu sorunu aşmak amacıyla Tablo 10’da standardize edilmiş Beta katsayıları hesaplanmıştır.

sd_y  <- sd(howell_tr$SATPuan)
sd_x1 <- sd(howell_tr$Harcama)
sd_x2 <- sd(howell_tr$LogSATYuzdesi)
coef_m2 <- coef(model2)

tibble(
  Degisken = c("Harcama", "LogSATYuzdesi"),
  b        = round(coef_m2[-1], 3),
  Beta     = round(c(coef_m2[2] * sd_x1 / sd_y,
                     coef_m2[3] * sd_x2 / sd_y), 3)
) %>%
  kbl(caption = "Tablo 10. Standardize Edilmiş Beta Katsayıları (Model 2)",
      col.names = c("Değişken","b (Ham)","β (Beta)"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = FALSE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(1, background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8")
Tablo 10. Standardize Edilmiş Beta Katsayıları (Model 2)
Değişken b (Ham) β (Beta)
Harcama 11.130 0.203
LogSATYuzdesi -78.205 -1.040

Beta katsayıları incelendiğinde LogSATYuzdesi’nin (β = -1.040) Harcama’ya (β = .203) kıyasla SATPuan üzerinde daha güçlü bir etkiye sahip olduğu görülmektedir. Bununla birlikte, Howell’ın (2013) uyarısı doğrultusunda, bu katsayıların kesin bir önem sıralaması için kullanılmaması gerektiği unutulmamalıdır; zira değişkenler arasında korelasyon bulunduğunda Beta katsayıları örnekleme göre dalgalanma gösterebilmektedir.

3.10 Kısmi ve Yarı-Kısmi Korelasyonlar

Her yordayıcının SATPuan’a olan benzersiz katkısını belirlemek amacıyla kısmi ve yarı-kısmi korelasyonlar hesaplanmıştır. Sonuçlar Tablo 11’de sunulmaktadır.

pcor_sonuc  <- pcor(howell_tr  %>%
                    dplyr::select(SATPuan, Harcama, LogSATYuzdesi))
spcor_sonuc <- spcor(howell_tr %>%
                    dplyr::select(SATPuan, Harcama, LogSATYuzdesi))

tibble(
  Degisken     = c("Harcama", "LogSATYuzdesi"),
  Kismi_r      = round(pcor_sonuc$estimate[1,  2:3], 3),
  Kismi_r2     = round(pcor_sonuc$estimate[1,  2:3]^2, 3),
  YariKismi_r  = round(spcor_sonuc$estimate[1, 2:3], 3),
  YariKismi_r2 = round(spcor_sonuc$estimate[1, 2:3]^2, 3)
) %>%
  kbl(caption = "Tablo 11. Kısmi ve Yarı-Kısmi Korelasyonlar (Model 2)",
      col.names = c("Değişken","r (kısmi)","r² (kısmi)",
                    "r (yarı-kısmi)","r² (yarı-kısmi)"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = TRUE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(1, background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8")
Tablo 11. Kısmi ve Yarı-Kısmi Korelasyonlar (Model 2)
Değişken r (kısmi) r² (kısmi) r (yarı-kısmi) r² (yarı-kısmi)
Harcama 0.445 0.198 0.168 0.028
LogSATYuzdesi -0.931 0.867 -0.861 0.741

Yarı-kısmi korelasyonun karesi, bir yordayıcının R²’ye yaptığı katkıya eşittir. Buna göre Harcama, LogSATYuzdesi kontrol edildiğinde SATPuan varyansının yalnızca %2.9’unu (r²₀(₁.₂) = .029) açıklamaktadır. LogSATYuzdesi ise Harcama kontrol edildiğinde varyansın %74.1’ini (r²₀(₂.₁) = .741) açıklamaktadır. Bu bulgular, LogSATYuzdesi’nin modelin baskın yordayıcısı konumunda olduğunu açıkça ortaya koymaktadır.

3.11 Bootstrap ile Güven Aralıkları

Regresyon katsayılarının güvenilirliğini dağılım varsayımlarına bağlı kalmadan sınamak amacıyla 10.000 tekrarlı bootstrap analizi gerçekleştirilmiştir. Örnekleme dağılımları Şekil 6’da, yüzdelik güven aralıkları ise Tablo 12’de sunulmaktadır.

set.seed(42)
n_boot      <- 10000
b_harcama   <- numeric(n_boot)
b_logsat    <- numeric(n_boot)

for (i in seq_len(n_boot)) {
  idx <- sample(nrow(howell_tr), replace = TRUE)
  m   <- lm(SATPuan ~ Harcama + LogSATYuzdesi,
            data = howell_tr[idx, ])
  b_harcama[i] <- coef(m)["Harcama"]
  b_logsat[i]  <- coef(m)["LogSATYuzdesi"]
}

boot_df <- tibble(
  Harcama       = b_harcama,
  LogSATYuzdesi = b_logsat
) %>%
  pivot_longer(everything(),
               names_to  = "Degisken",
               values_to = "Katsayi")

ci_df <- boot_df %>%
  group_by(Degisken) %>%
  summarise(alt = quantile(Katsayi, 0.025),
            ust = quantile(Katsayi, 0.975),
            .groups = "drop")

ggplot(boot_df, aes(x = Katsayi, fill = Degisken)) +
  geom_histogram(bins = 60, color = "#1a1e2e", alpha = 0.85) +
  geom_vline(xintercept = 0, color = "#ff6b6b",
             linewidth = 1, linetype = "dashed") +
  geom_vline(data = ci_df, aes(xintercept = alt),
             color = "#ffffff", linewidth = 0.7, linetype = "dotted") +
  geom_vline(data = ci_df, aes(xintercept = ust),
             color = "#ffffff", linewidth = 0.7, linetype = "dotted") +
  facet_wrap(~Degisken, scales = "free", ncol = 2) +
  scale_fill_manual(values = c(renk_ana, renk_ikinci)) +
  labs(
    title    = "Şekil 6. Bootstrap Örnekleme Dağılımları (10.000 Tekrar)",
    subtitle = "Kırmızı kesikli = 0  |  Beyaz noktalı = %95 GA",
    x = "Katsayı Değeri", y = "Frekans"
  ) +
  theme(legend.position = "none")
Şekil 6. Bootstrap Dağılımları

Şekil 6. Bootstrap Dağılımları

ci_df %>%
  mutate(across(where(is.numeric), ~round(., 3))) %>%
  kbl(caption = "Tablo 12. Bootstrap %95 Güven Aralıkları",
      col.names = c("Değişken","Alt Sınır (%2.5)","Üst Sınır (%97.5)"),
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = FALSE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(1, background="#252a3d", color="#e8e8e8") %>%
  row_spec(2, background="#1e2535", color="#e8e8e8")
Tablo 12. Bootstrap %95 Güven Aralıkları
Değişken Alt Sınır (%2.5) Üst Sınır (%97.5)
Harcama 5.625 18.322
LogSATYuzdesi -86.727 -68.753

Bootstrap bulguları geleneksel t testi sonuçlarıyla tutarlılık göstermektedir. Harcama için %95 güven aralığı sıfırı kapsamamakta, bu durum söz konusu değişkenin anlamlı bir yordayıcı olduğunu doğrulamaktadır. LogSATYuzdesi için de aralığın sıfırı kapsamadığı görülmektedir. Howell’ın (2013) belirttiği gibi bootstrap yaklaşımının temel amacı daha iyi bir katsayı tahmini sağlamak değil, katsayıların örnekleme değişkenliğini (standart hatasını) güvenilir biçimde tahmin etmektir.

3.12 Regresyon Modelinin İncelenmesi

Model 2’nin varsayımlarını değerlendirmek amacıyla kapsamlı bir regresyon tanılama süreci yürütülmüştür. Bu süreçte artık grafikleri, normallik kontrolü, etkili gözlem analizleri ve homokedastisite testi uygulanmıştır.

tibble(
  tahmin = fitted(model2),
  artik  = residuals(model2),
  eyalet = howell_tr$Eyalet
) %>%
  ggplot(aes(x = tahmin, y = artik)) +
  geom_hline(yintercept = 0, color = "#ff6b6b",
             linewidth = 0.8, linetype = "dashed") +
  geom_point(color = renk_ana, size = 2.2, alpha = 0.8) +
  geom_smooth(method = "loess", color = renk_ikinci,
              se = FALSE, linewidth = 0.9) +
  geom_text_repel(
    data = . %>% filter(abs(artik) > 40),
    aes(label = eyalet), color = "#ffffff", size = 3
  ) +
  labs(
    title    = "Şekil 7. Artık vs. Tahmin Grafiği (Model 2)",
    subtitle = "Turuncu düzleştirme çizgisi sıfır etrafında yatay olmalı",
    x = "Tahmin Edilen SAT Puanı", y = "Artık"
  )
Şekil 7. Artık vs. Tahmin

Şekil 7. Artık vs. Tahmin

Şekil 7 incelendiğinde artıkların tahmin değerleri boyunca büyük ölçüde rastgele dağıldığı ve LOESS eğrisinin sıfır çizgisi etrafında yatay bir seyir izlediği görülmektedir. Bu bulgu, doğrusallık varsayımının karşılandığına işaret etmektedir.

tibble(artik = residuals(model2)) %>%
  ggplot(aes(sample = artik)) +
  stat_qq(color = renk_ana, size = 2, alpha = 0.8) +
  stat_qq_line(color = "#ffffff", linewidth = 0.8) +
  labs(
    title    = "Şekil 8. Artıkların Q-Q Grafiği (Model 2)",
    subtitle = "Noktalar çizgiye yakınsa normallik varsayımı karşılanıyor",
    x = "Teorik Kantiller", y = "Örneklem Kantilleri"
  )
Şekil 8. Artıkların Q-Q Grafiği

Şekil 8. Artıkların Q-Q Grafiği

Q-Q grafiği artıkların normal dağılım varsayımını büyük ölçüde karşıladığını göstermektedir. Dağılımın uç noktalarında hafif sapmalar gözlemlense de bu sapmaların model yorumunu tehdit edecek düzeyde olmadığı değerlendirilmektedir.

tibble(
  index  = 1:nrow(howell_tr),
  cooksd = cooks.distance(model2),
  eyalet = howell_tr$Eyalet,
  esik   = 4 / nrow(howell_tr)
) %>%
  ggplot(aes(x = index, y = cooksd)) +
  geom_hline(aes(yintercept = esik), color = "#ff6b6b",
             linewidth = 0.8, linetype = "dashed") +
  geom_segment(aes(xend = index, yend = 0),
               color = renk_ana, linewidth = 0.7) +
  geom_point(aes(color = cooksd > esik), size = 2.5) +
  scale_color_manual(values = c(renk_ana, renk_ikinci)) +
  geom_text_repel(
    data = . %>% filter(cooksd > esik),
    aes(label = eyalet), color = "#ffffff", size = 3
  ) +
  labs(
    title    = "Şekil 9. Cook's D Değerleri (Model 2)",
    subtitle = "Kırmızı kesikli çizgi = 4/N eşiği",
    x = "Gözlem İndeksi", y = "Cook's D"
  ) +
  theme(legend.position = "none")
Şekil 9. Cook's D

Şekil 9. Cook’s D

Cook’s D değerleri incelendiğinde hiçbir eyaletin 1.00 eşiğini aşmadığı görülmektedir. Bununla birlikte, 4/N = .08 yumuşak eşiğini aşan bazı eyaletler dikkat çekmektedir. Bu gözlemler, Howell’ın (2013) öngördüğü biçimde, West Virginia başta olmak üzere birkaç eyaleti kapsamaktadır; ancak bu gözlemlerin yanlış kodlanmış olmadığı ve veri setine ait gerçek değerleri temsil ettiği bilinmektedir.

p_sayi <- ncol(model.matrix(model2)) - 1

tibble(
  index    = 1:nrow(howell_tr),
  leverage = hatvalues(model2),
  eyalet   = howell_tr$Eyalet,
  esik     = 3 * (p_sayi + 1) / nrow(howell_tr)
) %>%
  ggplot(aes(x = index, y = leverage)) +
  geom_hline(aes(yintercept = esik), color = "#ff6b6b",
             linewidth = 0.8, linetype = "dashed") +
  geom_segment(aes(xend = index, yend = 0),
               color = renk_ucuncu, linewidth = 0.7) +
  geom_point(aes(color = leverage > esik), size = 2.5) +
  scale_color_manual(values = c(renk_ucuncu, renk_ikinci)) +
  geom_text_repel(
    data = . %>% filter(leverage > esik),
    aes(label = eyalet), color = "#ffffff", size = 3
  ) +
  labs(
    title    = "Şekil 10. Leverage Değerleri (Model 2)",
    subtitle = "Kırmızı kesikli çizgi = 3(p+1)/N eşiği",
    x = "Gözlem İndeksi", y = "Leverage (hᵢ)"
  ) +
  theme(legend.position = "none")
Şekil 10. Leverage Değerleri

Şekil 10. Leverage Değerleri

Stevens’ın (1992) eşik kuralı [3(p+1)/N] temel alındığında bazı eyaletlerin yüksek kaldıraç değerine sahip olduğu görülmektedir. Yüksek kaldıraç, potansiyel etki anlamına gelmekle birlikte, bunu tek başına belirleyici bir kriter olarak ele almak yanıltıcı olabilmektedir. Cook’s D ile birlikte değerlendirildiğinde bu eyaletlerin modeli orantısız biçimde etkilemediği anlaşılmaktadır.

tibble(
  tahmin        = fitted(model2),
  std_artik_kok = sqrt(abs(rstandard(model2)))
) %>%
  ggplot(aes(x = tahmin, y = std_artik_kok)) +
  geom_point(color = renk_dord, size = 2.2, alpha = 0.8) +
  geom_smooth(method = "loess", color = "#ffffff",
              se = FALSE, linewidth = 0.9) +
  labs(
    title    = "Şekil 11. Scale-Location Grafiği (Model 2)",
    subtitle = "Düzleştirme çizgisi yataysa homokedastisite karşılanıyor",
    x = "Tahmin Edilen SAT Puanı", y = "Standart Artık|ar"
  )
Şekil 11. Scale-Location

Şekil 11. Scale-Location

Scale-Location grafiğinde LOESS eğrisinin yatay bir seyir izlediği görülmektedir. Bu bulgu, artık varyansının tahmin değerleri boyunca büyük ölçüde sabit kaldığına, yani homokedastisite varsayımının karşılandığına işaret etmektedir.

bp <- bptest(model2)

tibble(
  Test              = "Breusch-Pagan",
  `BP İstatistiği`  = round(bp$statistic, 3),
  df                = bp$parameter,
  p                 = round(bp$p.value, 3)
) %>%
  kbl(caption = "Tablo 13. Breusch-Pagan Homokedastisite Testi (Model 2)",
      align="c") %>%
  kable_styling(
    bootstrap_options = c("striped","hover"),
    full_width = FALSE, font_size = 12
  ) %>%
  row_spec(0, background="#2e3557", color="#7eb8d4", bold=TRUE) %>%
  row_spec(1, background="#252a3d", color="#e8e8e8")
Tablo 13. Breusch-Pagan Homokedastisite Testi (Model 2)
Test BP İstatistiği df p
Breusch-Pagan 1.151 2 0.562

Breusch-Pagan testi sonuçları artık varyansının homojenitesini istatistiksel olarak sınamaktadır. p > .05 bulunması homokedastisite varsayımının ihlal edilmediğini doğrulamakta ve grafik bulgularını desteklemektedir.

4 Günden Kalanlar

Bu ödevi hazırlarken olabildiğince Howell ’ten (2013) ayrılmamaya çalıştım. Kitabı ilk incelediğimde ve daha önceki bilgilerimi düşündüğümde çoklu regresyon konusunda iyi olduğumu sanıyordum. Ancak detaylı okuyup kavram ve uygulamaları görünce oldukça kapsamlı bir konu olduğunu farkettim. Şimdi “Sadece bir çoklu regresyon konusunda bile bu kadar kavram ve dikkat edilmesi gereken husus varsa çok değişkenli istatistiğe hakim olmak için ne kadar zaman ve emek gerekiyor?“ diye kendime soruyorum. Ancak şunu da ifade etmeliyim ki belki yavaş ama her ödevde biraz daha ilerlediğimi hissediyorum.

Bu ödevi yaparken zihnimdeki en önemli değişklikler şunlar oldu:

  1. Gerçekten çoklu regresyonun temel amacının yordamak olduğunu düşünüyordum. Oysa asıl amaç değişkenler arası ilişkileri anlamak ikincil amaç yordakmakmış yazarın iafdesine göre.
  2. İstatistik konusunun çok kesin hat ve tartışılmaz doğruları olduğuna kanaat getiriyordum. Oysa kitabın konuyu ele alma şekli gösterdi ki istatistikte karar verirken çok fazla unsuru dikkate alarak karar vermek gerek ve tek doğru yerine duruma en uygun olanı seçmek ve seçim gerekçesini temellendirmek gerek.
  3. Doğru analiz yapmak için temel kaynaklar sürekli elimin altında olmalı. Çünkü zihnimin hatırlayamaycağı kadar çok ayrıntı ve kavram var.
  4. R kodu yazmak çok zor ve önemli bir beceri ama istatistiği kavramak sanki daha zor ve daha fazla emek harcanması gereken bir alan.
  5. İstatistikle anlamlı veya anlamsız sonuçları doğru yaorumlayabilmek için mutlaka birden çok değişkene ve bağlama bakmak gerekiyormuş. Buradaki örneğin çok açık bir şekilde ortaya koyduğu gibi sınava giren öğrenci oranına bakmadan sadece harcama ile başarı ilişkisine bakınca büyük bir hata oluyor. Bunu ülkemizde de yaşamıştım daha önce: Bazı okul müdürleri okullarının LGS puan ortalamasının yüksek olmasını sağlamak için LGS’de başarı beklentisi düşük öğrencilerin aillerini çocuklarının sınava girmemeleri konusunda ikna etmeye çalışyordu.

Son olarak dönem başı ve hemen ardından gelen ramzan dolayısıyla kendimi derslere verme konusunda zorlandığımı söyleyebilirim. Artık daha iyi olacağım:)

Not: Günden Kalanlar (İngilizce özgün adı: The Remains of the Day) Nobel ödüllü İngiliz yazar Kazuo Ishiguro’nun 1989 tarihli romanını okumanızı öneririm.

5 Kaynakça

Howell, D. C. (2013). Statistical methods for psychology (8th ed.). Cengage Learning.