← Blog'a Dön
Regresyon10 dk okuma2026-05-15

Regresyon Modelinin Tahmin Başarısı Nasıl Ölçülür? Çapraz Doğrulama

R² Aldatıcı Olabilir

Regresyon modelini değerlendirirken çoğu araştırmacı R²'ye bakıp durur. R² = .72 görünce "iyi model" kararı verilir. Ancak bu yaklaşım kritik bir soruyu yanıtsız bırakır: model eğitildiği veriler dışında ne kadar başarılı tahmin yapar?

Bu sorun aşırı uyum (overfitting) olarak bilinir. Model eğitim verisindeki gürültüyü de öğrenir ve yeni gözlemlerle karşılaştığında başarısız olur. Akademik araştırmalarda, özellikle öngörü odaklı çalışmalarda, model performansı çapraz doğrulama (cross-validation) ile değerlendirilmelidir.

Tahmin ve Kestirim Arasındaki Fark

Önce kavramları netleştirelim. Doğrusal model y_i = β₀ + β₁x_i + ε_i ile elde edilen LSE tahminleri β̂₀ ve β₁ kullanıldığında:

  • Tahmin (Prediction): x₀ değeri veri aralığı içinde kalıyorsa (x_min ≤ x₀ ≤ x_max), ŷ₀ = β̂₀ + β̂₁x₀ bir tahmin değeridir.
  • Kestirim (Forecasting): x₀ değeri veri aralığı dışındaysa (x₀ < x_min veya x₀ > x_max), aynı formül bir kestirim (öngörü) üretir.

Kestirimin güvenilirliği tahmine göre çok daha düşüktür ve bu ayrım yöntem bölümünde mutlaka belirtilmelidir.

Çapraz Doğrulama: Eğitim / Doğrulama Ayrımı

Veri seti iki alt kümeye bölünür:

  • Alt küme 1 (Eğitim): n₁ gözlem — model bu veriyle kurulur. Kural: n₁ verinin %60–80'i.
  • Alt küme 2 (Doğrulama): n₂ gözlem — tahmin başarısı bu veriyle ölçülür.
r
set.seed(42)   # tekrarlanabilirlik için
n       <- nrow(veri)
n1      <- round(0.75 * n)   # %75 eğitim
indeks  <- sample(1:n, n1)

egitim      <- veri[indeks, ]
dogrulama   <- veri[-indeks, ]

# Model yalnızca eğitim verisiyle kur
model_egitim <- lm(y ~ x1 + x2 + x3, data = egitim)

Percent Forecast Error (PFE)

Eğitim modelini doğrulama setine uygulayıp Percent Forecast Error (PFE) hesaplayın:

ext{PFE} = 100 imes sqrt{ rac{displaystylesum_{i=1}^{n_2}(y_i - hat{y}_i)^2}{displaystylesum_{i=1}^{n_2} y_i^2}}

extPFEo0 ext{PFE} o 0: mükemmel tahmin. PFE küçüldükçe model daha doğru.

r
# Doğrulama setinde tahmin
y_gercek <- dogrulama$y
y_tahmin <- predict(model_egitim, newdata = dogrulama)

# PFE hesaplama
PFE <- 100 * sqrt(
  sum((y_gercek - y_tahmin)^2) / sum(y_gercek^2)
)
cat("PFE =", round(PFE, 3), "%")
# PFE yaklaşık 0 ise doğru tahmin

Model Uyum Testi: Doğru Tahmin midir?

PFE tek başına yeterli değildir. Tahmin doğruluğunu istatistiksel olarak sınamak için doğrulama setinde aşağıdaki modeli kurun:

y_{i[2]} = b₀ + b₁ŷ_{i[2]} + e_i

Mükemmel tahmin b0=0b_0 = 0 ve b1=1b_1 = 1 anlamına gelir. İki hipotez sınanır:

r
# Uyum modeli
uyum_modeli <- lm(y_gercek ~ y_tahmin)
summary(uyum_modeli)

# H00: b0 = 0 testi
# (intercept'in t testi p > .05 ise kabul)

# H01: b1 = 1 testi
library(car)
linearHypothesis(uyum_modeli, "y_tahmin = 1")
# p > .05 → H01 kabul → b1 = 1 → Doğru tahmin

Her iki hipotez de kabul edilirse model doğru tahmin yapmaktadır.

k-Katlı Çapraz Doğrulama

Tek bir eğitim/doğrulama bölünmesi örneklem seçimine bağımlıdır. Daha kararlı tahmin için k-katlı çapraz doğrulama kullanılır: veri k eşit parçaya bölünür; her seferinde k-1 parça eğitimde, kalan 1 parça doğrulamada kullanılır:

r
library(caret)

# 10-katlı çapraz doğrulama
kontrol <- trainControl(method = "cv", number = 10)

model_cv <- train(
  y ~ x1 + x2 + x3,
  data      = veri,
  method    = "lm",
  trControl = kontrol
)

# Ortalama RMSE ve R² 10 katlama üzerinden
print(model_cv$results)

Model Karşılaştırması

Birden fazla model varsa çapraz doğrulama RMSE veya MAE ile karşılaştırın — eğitim R²'si değil:

r
# Model 1: Tüm değişkenler
m1 <- train(y ~ x1 + x2 + x3 + x4, data = veri,
            method = "lm", trControl = kontrol)

# Model 2: Yalnızca teorik açıdan gerekçeli değişkenler
m2 <- train(y ~ x1 + x2, data = veri,
            method = "lm", trControl = kontrol)

# Karşılaştırma
resamps <- resamples(list(Tam = m1, Kismi = m2))
summary(resamps)
dotplot(resamps, metric = "RMSE")

Daha düşük çapraz doğrulama RMSE'si genelleştirme açısından daha iyi modeli gösterir. Bununla birlikte teorik gerekçe her zaman önceliklidir: yalnızca RMSE düşük diye anlamsız değişkenler modele eklenmemelidir.

Yöntem Bölümünde Raporlama

"Model tahmini yeteneği değerlendirmek amacıyla veri seti eğitim (%75, n = 105) ve doğrulama (%25, n = 35) alt kümelerine ayrılmıştır. Eğitim setiyle kurulan model doğrulama setine uygulanmış; Percent Forecast Error (PFE = 4.2%) ve uyum modeli istatistiği (H00: t = 0.43, p = .67; H01: t = 0.81, p = .42) ile modelin doğru tahmin ürettiği doğrulanmıştır. Kararlılık denetimi olarak 10-katlı çapraz doğrulama da uygulanmış (RMSE = 6.14, R² = .68) ve tutarlı sonuçlar elde edilmiştir."

Kaynaklar

  • James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An Introduction to Statistical Learning (2nd ed.). Springer.
  • Kuhn, M., & Johnson, K. (2013). Applied Predictive Modeling. Springer.
  • Arlot, S., & Celisse, A. (2010). A survey of cross-validation procedures. Statistics Surveys, 4, 40–79.

Bu analizi tezinizde kullanmakta zorlanıyor musunuz?

Veri setinizi paylaşın, teorik gerekçesiyle birlikte APA 7 formatında analiz edip raporlayalım.

Proje Talebi Oluştur →

Başlayalım

Projenizi doğru temelde kuralım.

  • Teorik gerekçesiyle birlikte analiz
  • APA 7 uyumlu rapor ve R/Python kodu
  • 48 saat içinde ilk yanıt

%100 uzaktan · Türkiye genelinde