Last chance! 50% off DataCamp Premium
Sale ends in
Bir regresyon modeli kurdunuz, R² fena görünmüyor ve katsayılar sezgisel olarak mantıklı. Ancak iyi görünen bir özet tablo, kötü belirlenmiş bir modeli gizleyebilir. Sayıların gözden kaçırdığını çoğu zaman tek bir saçılım grafiği yakalar: artık (residual) grafiği.
Bu makale, artık grafiklerin ne olduğunu, nasıl okunacağını, bilinmeye değer desenleri ve hem Python hem R'de nasıl oluşturulacağını ele alıyor. Çoğu yeni başlayan teşhis adımını tamamen atlar. Yazının sonunda siz atlamayacaksınız.
Artık, modelinizin öngördüğü ile gerçekte olan arasındaki farktır: artık = gözlenen − tahmin edilen. Bir artık grafiği bu farkları görünür kılar. x ekseni ya tahmin edilen (uydurulmuş) değerleri ya da bir açıklayıcı değişkeni, y ekseni ise artıkları gösterir. Sıfırda yatay bir referans çizgisi yer alır; bu, kusursuz tahmini temsil eder.

Sıfırın etrafında rastgele saçılım: sağlıklı bir artık grafiği. Görsel: Yazar.
Temel fikir şu: Model ilişkinin özünü iyi yakaladıysa, artıklar gürültü gibi görünmelidir. Sıfırın etrafında rastgele dağılmış, belirgin bir desen yok. Bir şekil belirdiği anda, model katsayılarla söyleyemediklerini size anlatıyor demektir.
Desen arayın. İdeal olarak belirgin bir desen olmamalı. Kuralın özü bu. İlginç olan kısım, artıkların konumu, yayılımı ve şeklinin neyi ortaya çıkardığıdır.
Uydurulmuş değerlerin bazı bölgelerinde artıkların sıfırın üstünde, bazılarında altında yer alması modelin yanlı olduğunu gösterir. Belirli bölgelerde sürekli olarak fazla ya da eksik tahmin yapıyor demektir. Bu genellikle eksik bir değişkene veya doğrusal bir çizgi modelinin yakalayamayacağı doğrusal olmayan bir ilişkiye işaret eder.
Soldan sağa tarayın. Artıkların yayılımı tüm uydurulmuş değerler boyunca kabaca aynıysa bu iyi bir işarettir. Uydurulmuş değerler arttıkça noktalar dışa doğru yelpaze gibi açılıyorsa varyans değişiyor demektir. Buna heteroskedastisite denir. Katsayı tahminlerini bozmaz, ancak standart hataları güvenilmez hale getirir; bu da herhangi bir hipotez testi yapıyorsanız önemlidir.
İstediğiniz şey düz ve desensiz bir görünüm. U veya yay biçimi, modelin doğrusal olmayan bir terimi kaçırdığını söyler. Kümeler veya bantlar, modelin tek bir grup olarak ele aldığı alt grupları ima eder. Her şeyden uzak tek bir nokta da araştırmaya değerdir.

Model sorunlarını işaret eden dört artık grafik deseni. Görsel: Yazar.
İyi sonuç. Noktaların sıfır çizgisinin üstünde ve altında kabaca eşit dağılması, belirgin bir trend olmaması genellikle modelin ilişkiyi makul şekilde yakaladığını gösterir. Bir miktar rastgelelik beklenir.
Eğri ya da yay biçimindeki bir desen genellikle modellenmemiş doğrusal olmayan bir ilişki anlamına gelir. Model, bükülen verilerin içinden düz bir çizgi geçiriyordur. Çözüm tipik olarak bir polinom terimi (x² gibi) eklemek veya yordayıcıya bir dönüşüm uygulamaktır. Bu, özellikle konut fiyatları veya biyolojik büyüme gibi şeyleri modellendiğinde uygulamada daha yaygın desenlerden biridir.
Uydurulmuş değerler arttıkça artıkların daha geniş yayılması: bu heteroskedastisitedir, yani varyans sabit değildir. Sonuç büyüklüğüyle birlikte tahmin hatalarının doğal olarak ölçeklendiği finansal verilerde yaygındır. Yanıt değişkenine log dönüşümü genellikle makul bir ilk adımdır; ağırlıklı en küçük kareler bir diğer seçenektir.
Artık grafikte belirgin gruplar görünmesi, verilerin modelin hesaba katmadığı alt popülasyonlar içerdiğini genellikle gösterir. Muhtemelen modele dahil edilmesi gereken bir kategorik değişken (bölge, tedavi grubu, ürün türü) vardır. İki ya da üç sıkı nokta bandı görürseniz, işe oradan başlayın.
Diğerlerinden çok uzakta duran tek bir nokta incelemeyi hak eder. Gerçek bir aykırı değer, veri girişi hatası veya alışılmadık özelliklere sahip bir gözlem olabilir. Otomatik olarak silmeyin. Önce anlayın. Tutup tutmama bağlama, kolaylığa değil, bağlama bağlıdır.
Bu desenlerin her biri için, artık grafiği bir semptomu belirtir; teşhis koymaz. Bir şeylerin ters gittiğini söyler; nedenini hâlâ sizin bulmanız gerekir.
Bu desenleri akılda tutarak, bir artık grafiğinin hangi regresyon varsayımlarını değerlendirip hangilerini değerlendiremeyeceğini netleştirmekte fayda var.
Artık grafiklerin güvenilir biçimde değerlendiremeyeceği bir şey normal dağılımdır. Düz bir artıklar–uydurulmuş değerler grafiği hataların normal dağıldığını doğrulamaz. Bunun için bir Q-Q grafiği gerekir. Bu yaygın bir kafa karışıklığı kaynağıdır ve akılda tutmaya değerdir.
Standart iş akışı, modeli uyarlamak ve artıkları hesaplamak için scikit-learn, görselleştirmek için matplotlib kullanır. İşte konut verileri üzerinde basit doğrusal regresyonla tam bir örnek:
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# Sample data: square footage predicting home price
sqft = np.array([800, 1000, 1200, 1500, 1800, 2000, 2200, 2500, 3000, 3500])
price = np.array([150, 180, 210, 260, 300, 330, 370, 420, 500, 560])
# Reshape for sklearn and fit the model
X = sqft.reshape(-1, 1)
model = LinearRegression()
model.fit(X, price)
# Generate predictions and calculate residuals
predicted = model.predict(X)
residuals = price - predicted
# Plot residuals against fitted values
plt.figure(figsize=(8, 5))
plt.scatter(predicted, residuals, color='steelblue', edgecolors='white', s=80)
plt.axhline(y=0, color='red', linestyle='--', linewidth=1.2)
plt.xlabel('Fitted Values')
plt.ylabel('Residuals')
plt.title('Residual Plot')
plt.tight_layout()
plt.show()

Kilit satır residuals = price - predicted. axhline() çağrısı sıfır referans çizgisini ekler; bu çizgi olmadan grafik çok daha zor okunur. Çıktı kabaca desensiz görünüyorsa durumunuz fena değildir. Uydurulmuş değerler yükseldikçe artıkların büyüdüğüne dikkat edin. Sadece 10 noktayla kesin konuşmak zor, ancak bu, daha önce tartıştığımız yelpaze şekline dair bir ipucu veriyor.
Python'da regresyona daha derin bir bakış için Python ile statsmodels'e Giriş kursumuz, model kurma, varsayım kontrolü ve yorumlamayı ayrıntılı olarak ele alır.
R bunu kutudan çıktığı haliyle biraz daha kolaylaştırır. lm() ile bir model kurduktan sonra, yerleşik plot() fonksiyonu otomatik olarak artıklar–uydurulmuş değerler grafiği de dahil tam bir teşhis paneli üretir.
# Same housing data in R
sqft <- c(800, 1000, 1200, 1500, 1800, 2000, 2200, 2500, 3000, 3500)
price <- c(150, 180, 210, 260, 300, 330, 370, 420, 500, 560)
# Fit the model and view diagnostics
housing_model <- lm(price ~ sqft)
plot(housing_model, which = 1) # which = 1 gives residuals vs. fitted
which = 1 argümanı sadece artıklar–uydurulmuş değerler grafiğini getirir. Bunu belirtmezseniz, dört standart teşhis grafiğinin tamamını alırsınız: artıklar–uydurulmuş, Q-Q, ölçek–konum ve artıklar–temsil gücü. Hızlıca tam bir resim istediğinizde kullanışlıdır. R ayrıca en uçtaki üç noktayı indeksleriyle etiketler; bu da aykırı değerleri elle arama zahmetini ortadan kaldırır.
R'de regresyona baştan sona bir bakış için R ile Regresyona Giriş kursumuz model kurma ve teşhisleri temelden itibaren kapsar.
Artıklar–uydurulmuş değerler grafiği başlangıç noktasıdır; tam resim değildir. İlgili birkaç grafik farklı soruları yanıtlar.
Artıklar–uydurulmuş değerler grafiği doğrusallığı ve sabit varyansı kontrol eder. Q-Q grafiği ise normal dağılımı, yani artıkların normal dağılıma uyup uymadığını kontrol eder. Bunlar ayrı sorulardır. Temiz görünen bir artık grafiği normalliği garanti etmez ve bir Q-Q grafiği de size varyans hakkında bir şey söylemez. Genellikle her ikisini de istersiniz.

İki farklı grafik, modeliniz hakkında iki farklı soru. Görsel: Yazar.
Ölçek–konum grafiği (yayılım–konum olarak da adlandırılır) uydurulmuş değerlere karşı, mutlak standartlaştırılmış artıkların karekökünü çizer. Heteroskedastisiteyi tespit etmek için tasarlanmıştır ve artıkların işaretini kaldırıp tamamen yayılıma odaklandığı için çoğu zaman huni desenini ham artık grafiğine göre daha kolay fark ettirir.
Temsil gücü (leverage), bir gözlemin yordayıcı değerlerinin ne kadar sıra dışı olduğunu ölçer; modelin onu ne kadar kötü tahmin ettiğini değil. Yüksek temsil gücü ile büyük artık bir araya geldiğinde potansiyel olarak etkili bir gözlem söz konusudur. Artıklar–temsil gücü grafiği bu kombinasyonları belirler ve genellikle en sorunlu noktaları adıyla vurgular. Etkili gözlemlerin modelinizi bozmasından endişe ediyorsanız bu grafiği kontrol edin.
Artık grafiği bir teşhistir, hüküm değil. Bir desen görmek modelin işe yaramaz olduğu anlamına gelmez. Yaygın desenlerin olası sonraki adımlarla eşleşmesi şöyle:
Artık grafik semptomları gösterir. Size tam nedeni söylemez ve tek bir desen bazen birden fazla açıklamaya sahip olabilir. Bunu, daha iyi sorular sormanız için bir başlangıç noktası olarak kullanın.
Bir model kur, özeti kontrol et, R² hakkında iyi hisset: çoğu kişi burada durur. Artık grafiği bundan sonra bakacağınız şeydir ve sık sık farklı bir hikâye anlatır. İstediğiniz şey sıfırın etrafında rastgele saçılımdır. Eğriler, huniler, kümeler ve aşırı, izole noktalar, modelin hesaba katmadığı bir şeyi işaret eder.
Tek bir grafik size tam resmi vermez. Artıklar–uydurulmuş değerler grafiğini normallik için bir Q-Q grafiği, varyans için bir ölçek–konum grafiği ve etkili gözlemler endişeyse bir temsil gücü grafiğiyle eşleştirin. Her biri farklı bir soruyu yanıtlar.
Daha ileri gitmek isterseniz, Python ile Orta Düzey statsmodels Regresyonu kursumuz, teşhislerin bir sorunu işaret ettiğinde nasıl yanıt verileceği de dahil olmak üzere varsayım kontrollerini derinlemesine ele alır. Regresyon varsayımları ve model değerlendirmesine daha geniş bir temel için, Python'da Doğrusal Regresyon Varsayımları eğitimimiz doğal bir sonraki okumadır.
Vinod Chugani kariyerine Tokyo'da JPMorgan'ın en genç Hedge Fund Sales Desk Lideri olarak başladı ve daha sonra Lehman Brothers'ta bireysel satış rekoru kırdı, ardından 30 ülkede faaliyet gösteren bir elektronik dağıtım işi kurdu ve veriye yönelmeden önce geliri SG$100 milyonun üzerine taşıdı. Duke Ekonomimezunu ve NYC Data Science Academy alum, Maven'de Hugo Bowne-Anderson'ın Building AI Applications kursu için 100+ başvuru arasından seçilen üç bursiyerden biriydi. Bugün, istatistikten ajan temelli yapay zekâya uzanan konularda DataCamp, KDnuggets, Machine Learning Mastery ve Statology için yazıyor ve adında 1.000'i aşkın bire bir oturum bulunan NYC Data Science Academy'de veri profesyonellerine mentorluk yapıyor.
Eğri ya da yay biçimindeki bir desen, genellikle yordayıcı ile sonuç arasındaki doğrusal olmayan bir ilişkiyi ve modelin bunu yakalayamadığını gösterir. Doğrusal regresyon düz bir çizgi uydurduğu için, gerçek ilişkideki herhangi bir bükülme artık grafiğinde sistematik bir eğri olarak görünür. Yaygın çözüm, bir polinom terimi (ör. x²) eklemek veya yordayıcı değişkenine log ya da karekök dönüşümü uygulamaktır.
İyi uyum sağlayan ve hataları normal dağılan bir modelde, standartlaştırılmış artıkların yaklaşık %5'i şans eseri ±2'nin dışında ve %0,3'ten azı ±3'ün dışında yer alır — dolayısıyla birkaç uç nokta beklenir ve otomatik olarak sorun değildir. Aradığınız şey bu noktaların bir desen oluşturup oluşturmadığı ya da tek bir noktanın veri sorunu olabileceğini düşündürecek kadar alışılmadık bir artığa sahip olup olmadığıdır.
Hayır — ve bu yaygın bir kafa karışıklığı kaynağıdır. Artıklar–uydurulmuş değerler grafiği doğrusallık, sabit varyans ve artıkları gözlem sırasına göre çizerseniz potansiyel olarak bağımsızlık hakkında yardımcı olur. Normalliği güvenilir biçimde değerlendiremez; bunun için bir Q-Q grafiği gerekir. Etkili gözlemler için artıklar–temsil gücü grafiği daha bilgilendiricidir. Artık grafiğini ilk teşhis, tek teşhis değil, olarak düşünün.
Her ikisi de varyansı değerlendirir, ancak farklı biçimde. Artık grafiği, ham artıkları (pozitif ve negatif) uydurulmuş değerlere karşı gösterir — eğriler ve kümeler de dahil genel desenleri yakalamak için kullanışlıdır. Ölçek–konum grafiği ise uydurulmuş değerlere karşı standartlaştırılmış artıkların karekökünü (hepsi pozitif) gösterir ve heteroskedastisiteyi izole etmekte daha iyidir. Huni şekli belirsizse, ölçek–konum grafiği bunu genellikle daha görünür kılar.
Otomatik olarak değil. Büyük bir artık, modelin o gözlemi kötü tahmin ettiği anlamına gelir — gözlemin hatalı olduğu anlamına gelmez. Bir şeyi kaldırmadan önce, noktanın veri girişi hatası mı, olağandışı ama meşru bir durum mu, yoksa model kapsamının dışında bir şey mi olduğunu kontrol edin. Meşru verileri artık grafiğini iyileştirmek için kaldırmak, model manipülasyonudur. Gözlem meşruysa, daha dürüst yaklaşım modelin sınırlamalarını kabul etmek veya farklı bir model yapısını araştırmaktır.
Huni ya da yelpaze deseni katsayı tahminlerinizi yanlı hale getirmez — model hâlâ size doğru ortalama etkiyi verir. Bozulan şey, standart hatalarınızın güvenilirliğidir; dolayısıyla p-değerleriniz ve güven aralıklarınız etkilenir. Regresyonu yalnızca tahmin için kullanıyorsanız bu daha az önemli olabilir. Hipotez testi yapıyor veya güven aralıkları kuruyorsanız, ya yanıt değişkenini dönüştürmeniz ya da eşit olmayan varyans için standart hata düzeltmeleri kullanmanız gerekir.
Evet, hatta çoklu regresyonda daha da önemlidir; çünkü modelin yanlış gidebileceği daha fazla yol vardır. Standart yaklaşım, genel görünüm için artıkları uydurulmuş değerlere karşı çizmek, ardından modelin kaçırmış olabileceği doğrusal olmayan ilişkileri kontrol etmek için her yordayıcıya ayrı ayrı karşı çizmektir. Yorumlama kuralları aynıdır: desen arayın ve sistematik olan her şeyi araştırın.
Kesitsel regresyonda artıklar–uydurulmuş değerler grafiğinde mekânsal desenler — eğriler, huniler, kümeler — ararsınız. Zaman serisi regresyonunda ise artıkların zaman içinde korele olup olmadığını da kontrol etmeniz gerekir; çünkü otokorelasyon bağımsızlık varsayımını ihlal eder ve standart hataları güvenilmez kılar. Artıkları zaman indeksine karşı çizin ve trendler veya salınımlı desenler arayın; Durbin–Watson istatistiği de birinci dereceden otokorelasyonu test edebilir. Düz bir artıklar–uydurulmuş değerler grafiği bunu tek başına yakalamaz.
DataCamp ile Öğrenin
Kurs
Kurs
Kurs

blog
Abid Ali Awan
14 dk.
blog
Dario Radečić
15 dk.
Eğitim
Kurtis Pykes
8 dk.
Eğitim
Adel Nehme