• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Çoklu doğrusal regresyon nedir?

Garfield

Yönetici
YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
488
Mesajlar
501
AI Seviyesi
Yeni
Çoklu doğrusal regresyon, tek bir sayısal sonucu iki veya daha fazla açıklayıcı değişkenle birlikte modelleme yöntemidir. Örneğin günlük paket sayısını yalnız çalışma süresinden değil, çalışma süresi ve personel sayısından yararlanarak tahmin edebilirsiniz. Temel fark, her katsayının modeldeki diğer açıklayıcılar sabitken yorumlanmasıdır; ayrı ayrı iki basit regresyon kurup sonuçlarını toplamak aynı işlem değildir.

Birden çok açıklayıcıyla ne değişir?​


İki açıklayıcı içeren tahmin denklemini ŷ = b₀ + b₁x₁ + b₂x₂ biçiminde yazabiliriz. Burada tek bir sonuç değişkeni vardır; “çoklu” sözcüğü sonuç sayısını değil açıklayıcı sayısını anlatır. Katsayılar, eğitim gözlemlerindeki sonuçlarla model tahminleri arasındaki kareli farkların toplamını küçülten en küçük kareler yöntemiyle tahmin edilebilir.

Açıklayıcılara “bağımsız değişken” denmesi, bunların birbirinden istatistiksel olarak bağımsız olduğu anlamına gelmez. Örneğin personeli fazla olan günlerde çalışma süresi de uzunsa iki değişken birlikte hareket edebilir. Modeli kurarken bu ilişkiyi de incelemek gerekir.

“Doğrusal” ifadesi katsayıların denkleme nasıl girdiğiyle ilgilidir. Bir karesel terim veya etkileşim terimi eklemek de katsayılarda doğrusal bir model verebilir; ancak bu durumda tek katsayıyı her koşulda sabit bir artış gibi yorumlamak doğru olmayabilir. Aşağıdaki örnekte etkileşim veya karesel terim kullanmıyoruz.

Somut örnek: süre ve personelle paket sayısı​


Tamamen varsayımsal bir modelimiz tahmini_paket = 10 + 4 × saat + 6 × personel olsun. Günlük çalışma süresi 5 saat, personel sayısı 3 olduğunda tahmin 10 + 4 × 5 + 6 × 3 = 48 pakettir.

Personel sayısını 3’te tutup süreyi 5’ten 6 saate çıkarırsak model tahmini 48’den 52’ye çıkar. Süreyi 5 saatte tutup personeli 3’ten 4’e çıkarırsak tahmin 54 olur. Her iki değişkeni aynı anda artırırsak fark yalnız bir katsayıyla açıklanamaz: bu modelde iki katkı birlikte hesaplanır.
Modeldeki parçaBu örnekteki anlamıYorum sınırı
4 × saatPersonel sabitken her ek saatle tahmin 4 paket artarBirim paket/saat; gerçek üretim artışını garanti etmez
6 × personelSüre sabitken bir ek personelle tahmin 6 paket artarBirim paket/personel; diğer koşulların aynı kalabildiği veri kapsamı önemlidir
Sabit terim 10Süre ve personel sıfırken modelin verdiği tahminSıfır değerleri veri kapsamı dışındaysa gerçek başlangıç üretimi diye yorumlanmaz
Katsayıların sayısal büyüklüğünü doğrudan “değişkenin önemi” olarak sıralamayın. Süreyi saat yerine dakika cinsinden yazınca saat katsayısı yerine 4 / 60 paket/dakika kullanılır; aynı tahmin korunur. Bu birim değişimi çalışma süresini daha az önemli yapmaz.

NumPy ile çalışan küçük bir örnek​


Aşağıdaki kod Python ve NumPy gerektirir; veri indirmez ve başka paket kullanmaz. Eğitim satırları, yukarıdaki katsayıları görünür kılmak için özellikle 10 + 4 × saat + 6 × personel kuralına göre hazırlanmıştır. Doğrulama ve test sonuçları bu kuraldan küçük farklar içeren ayrı varsayımsal gözlemlerdir. Bu kadar az veri, gerçek bir üretim modeli kurmak için yeterlilik kanıtı değildir.

Python:
import numpy as np

# Tamamı eğitim amaçlı, varsayımsal gözlemler.
# Sütun sırası: çalışma saati, personel sayısı.
x_egitim = np.array([
    [2, 1], [3, 1], [2, 2],
    [4, 2], [3, 3], [5, 2]
], dtype=float)
y_egitim = np.array([24, 28, 30, 38, 40, 42], dtype=float)

x_dogrulama = np.array([[4, 1], [5, 3]], dtype=float)
y_dogrulama = np.array([33, 46], dtype=float)
x_test = np.array([[3, 2], [4, 3]], dtype=float)
y_test = np.array([36, 43], dtype=float)

def tasarim(x):
    # Birler sütunu sabit terimin öğrenilmesini sağlar.
    return np.column_stack([np.ones(x.shape[0]), x])

A = tasarim(x_egitim)
beta, _, rank, _ = np.linalg.lstsq(A, y_egitim, rcond=None)
if rank < A.shape[1]:
    raise ValueError("Sütunlar doğrusal bağımlı; katsayılar tekil belirlenemiyor.")

print("Katsayılar [sabit, saat, personel]:", np.round(beta, 2).tolist())
print("Tasarım matrisinin rankı:", int(rank))

for ad, x, y in [
    ("Doğrulama", x_dogrulama, y_dogrulama),
    ("Test", x_test, y_test)
]:
    tahmin = tasarim(x) @ beta
    mae = np.mean(np.abs(y - tahmin))
    print(f"{ad} MAE: {mae:.2f} paket")

yeni = np.array([[5, 3]], dtype=float)
tahmin = float((tasarim(yeni) @ beta)[0])
print(f"5 saat, 3 personel tahmini: {tahmin:.2f} paket")

Yuvarlanmış çıktı şöyledir:

Kod:
Katsayılar [sabit, saat, personel]: [10.0, 4.0, 6.0]
Tasarım matrisinin rankı: 3
Doğrulama MAE: 1.50 paket
Test MAE: 1.50 paket
5 saat, 3 personel tahmini: 48.00 paket

tasarim() fonksiyonundaki birler sütunu sabit terimi temsil eder; sütun sırası değişirse katsayıların karşılığı da değişir. Katsayıları yalnız eğitim verisinden hesapladık. Doğrulama tahminleri 32 ve 48, gözlemleri 33 ve 46 olduğundan mutlak farkların ortalaması (1 + 2) / 2 = 1.5 pakettir. Test tahminleri 34 ve 44 için de aynı ortalama çıkar. Bu eşitlik bu küçük örneğin özelliğidir; gerçek veride iki hata değerinin aynı olması beklenmez.

Kullanılan fonksiyonun dönüş değerleri ve rcond seçeneği resmî NumPy lstsq belgesinde açıklanır. Kod katsayı tahmini yapar; güven aralığı veya anlamlılık testi üretmez.

Çoklu bağlantı katsayı yorumunu neden zorlaştırır?​


Açıklayıcı değişkenlerin birbirini güçlü biçimde doğrusal olarak açıklayabilmesine çoklu bağlantı, yani multicollinearity denir. Örneğin aynı süreyi hem saat hem dakika sütunuyla modele vermek yeni bilgi eklemez: bir sütun diğerinin tam 60 katıdır. Böyle bir tasarımda iki ayrı süre katsayısı tek biçimde belirlenemez. Kodun rank kontrolü bu tür tam doğrusal bağımlılığı yakalamak içindir.

Yakın fakat tam olmayan bağımlılıkta rank kontrolü geçebilir; buna rağmen küçük veri değişimleri katsayıları ve işaretlerini ciddi biçimde oynatabilir. Tahminler veri kapsamı içinde makul kalırken tek tek katsayıları açıklamak zorlaşabilir. Dolayısıyla “model tahmin yapıyor” ile “bu değişkenin ayrı katkısı güvenilir biçimde ölçüldü” aynı sonuç değildir. Bu ayrım scikit-learn’ün resmî doğrusal model kılavuzunda ele alınır.

Önce yinelenen veya aynı bilgiyi farklı birimde taşıyan sütunları kontrol edin. Sonra değişken ilişkilerini, alan bilgisini ve gerekiyorsa VIF gibi tanı ölçülerini birlikte inceleyin. Her yüksek ilişkili sütunu rastgele silmek doğru değildir; hangi bilgiyi koruduğunuzu ve katsayı yorumunun amacını açıklayabilmelisiniz. Rankın tam olması da tek başına katsayı kararlılığı veya model doğruluğu garantisi vermez.

Doğrulama ile test verisini ayrı tutun​


Eğitim verisi katsayıları öğrenmek içindir. Kullanılacak açıklayıcıları, dönüşümleri veya başka model seçeneklerini karşılaştırıyorsanız doğrulama verisindeki hataları kullanabilirsiniz. Son test verisini bu seçimlere katmadan, seçiminiz bittikten sonra değerlendirin. Test sonucuna bakıp sürekli değişken ekler ve çıkarırsanız test kümesi de seçim sürecinin parçasına dönüşür.

Örnekte tek bir model önceden belirlenmiştir; doğrulama ve test hataları ayrı ayrı gösterilir, bunlara bakılarak yeni katsayı uydurulmaz. Gerçek bir işte aynı parçanın veya müşterinin tekrarlarını farklı kümelere dağıtarak bilgi sızdırmamaya dikkat edin. Zaman sıralı bir tahminde geleceğin bilgisini geçmişe taşımayan bir ayrım gerekir. Ölçekleme gibi veriden öğrenilen dönüşümler de yalnız eğitim verisinde öğrenilip diğer kümelere uygulanmalıdır.

Son olarak, birden fazla açıklayıcı kullanmak nedenselliği kendiliğinden sağlamaz. Personel katsayısı pozitif çıktı diye personel artırmanın mutlaka aynı artışı yaratacağını söyleyemezsiniz; iş yoğunluğu, ürün türü veya ölçülmemiş koşullar iki değişkenle de ilişkili olabilir. Modeli kullanmadan önce ayrı verideki hatayı, artıkların davranışını, çalışma aralığını ve kararın hata maliyetini değerlendirin.
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic
Geri
Üst