top of page

Aykırı Değerlerin Bulunması



Hands-on Mentor Kapsamlı Blog İçeriği
Hands-on Mentor Tutorials



Aykırı Değerlerin Tanımı

Aykırı değerler (outliers), bir veri setindeki diğer gözlemlerden belirgin şekilde farklı olan veri noktalarıdır. Bu değerler, veri analizinde çeşitli sorunlara yol açabilir, çünkü veri setinin genel eğilimlerini ve dağılımını çarpıtabilirler. Aykırı değerler, veri hatası, veri toplama yöntemi veya gerçek değişkenlikten kaynaklanabilir.


Aykırı Değerlerin Etkileri

  • Ortalama ve Varyans Üzerindeki Etkiler: Aykırı değerler, ortalama ve varyans gibi merkezi eğilim ve dağılım ölçümlerini ciddi şekilde etkileyebilir. Bu da, veri setinin genel eğilimlerinin yanlış anlaşılmasına yol açabilir.

  • Modellerin Performansı Üzerindeki Etkiler: Aykırı değerler, regresyon ve diğer istatistiksel modellerin performansını düşürebilir, çünkü bu modeller aykırı değerlere karşı hassastır.


Aykırı Değerlerin Tespiti

Aykırı değerleri tespit etmek için çeşitli istatistiksel ve görsel yöntemler kullanılır. En yaygın yöntemler şunlardır:


  1. Çeyrekler Arası Aralık (IQR) Yöntemi

  2. Z-Puanı (Z-Score) Yöntemi

  3. Boxplot (Kutu Grafiği)

  4. Mahalanobis Mesafesi

  5. Grubbs Testi


1. Çeyrekler Arası Aralık (IQR) Yöntemi


Tanım: IQR yöntemi, veri setindeki çeyrekler arası aralığı (Q3 - Q1) kullanarak aykırı değerleri tespit eder. Bir veri noktası, Q1 - 1.5IQR veya Q3 + 1.5IQR aralığının dışında kalıyorsa, aykırı değer olarak kabul edilir.


Örnek: Bir sınıftaki öğrencilerin sınav notlarını ele alalım:


import numpy as np

# Öğrenci notları
notlar = [56, 67, 49, 92, 70, 84, 88, 73, 54, 61, 120]

# Çeyrekler ve IQR hesaplama
Q1 = np.percentile(notlar, 25)
Q3 = np.percentile(notlar, 75)
IQR = Q3 - Q1

# Aykırı değer sınırları
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR

# Aykırı değerleri tespit etme
aykiri_degerler = [x for x in notlar if x < lower_bound or x > upper_bound]
print("Aykırı Değerler:", aykiri_degerler)  # Aykırı Değerler: [120]


Açıklama: Bu sınıftaki öğrencilerin sınav notları arasında 120, aykırı değer olarak tespit edilmiştir. Q1 ve Q3'ün dışında kalan bu değer, veri setinin genel eğilimlerinden belirgin şekilde farklıdır.


2. Z-Puanı (Z-Score) Yöntemi


Tanım: Z-puanı, bir veri noktasının ortalamadan kaç standart sapma uzaklıkta olduğunu gösterir. Bir veri noktası, belirli bir z-puanı eşiğini (genellikle ±3) aşarsa, aykırı değer olarak kabul edilir.


Örnek: Aynı öğrenci notları örneğini kullanarak z-puanını hesaplayalım:


from scipy import stats

# Z-puanı hesaplama
z_puanlari = np.abs(stats.zscore(notlar))

# Aykırı değer eşiği
z_esik = 3

# Aykırı değerleri tespit etme
aykiri_degerler_z = [notlar[i] for i in range(len(notlar)) if z_puanlari[i] > z_esik]
print("Aykırı Değerler (Z-Puanı):", aykiri_degerler_z)  # Aykırı Değerler: [120]


Açıklama: Z-puanı yöntemi kullanılarak 120, aykırı değer olarak tespit edilmiştir. Bu değer, ortalamadan 3 standart sapmadan daha uzak bir konumda yer almaktadır.


3. Boxplot (Kutu Grafiği)


Tanım: Boxplot, verilerin dağılımını görsel olarak gösteren ve aykırı değerleri belirlemek için kullanılan bir grafiktir. Q1 ve Q3'ün dışında kalan veri noktaları aykırı değer olarak işaretlenir.


Örnek:


import matplotlib.pyplot as plt

# Boxplot çizme
plt.boxplot(notlar)
plt.title("Öğrenci Notları Boxplot")
plt.show()


Açıklama: Boxplot grafiği, veri setindeki aykırı değerleri görsel olarak tespit etmemize yardımcı olur. Q1 ve Q3'ün dışında kalan veri noktaları aykırı değer olarak işaretlenir.


4. Mahalanobis Mesafesi


Tanım: Mahalanobis mesafesi, çok değişkenli veri setlerinde aykırı değerleri tespit etmek için kullanılan bir yöntemdir. Veri noktalarının ortalama ve kovaryans matrisine olan mesafelerini hesaplar.


Örnek: Çok değişkenli bir veri seti örneğini kullanarak Mahalanobis mesafesini hesaplayalım:


import numpy as np
from scipy.spatial import distance

# Çok değişkenli veri seti
veri_seti = np.array([[1, 2], [2, 3], [4, 5], [5, 6], [8, 8]])

# Ortalama ve kovaryans matrisi hesaplama
ortalama = np.mean(veri_seti, axis=0)
kovaryans = np.cov(veri_seti.T)

# Mahalanobis mesafesi hesaplama
mah_distances = [distance.mahalanobis(x, ortalama, np.linalg.inv(kovaryans)) for x in veri_seti]

# Aykırı değerleri tespit etme
mah_threshold = 3
aykiri_degerler_mah = [veri_seti[i] for i in range(len(veri_seti)) if mah_distances[i] > mah_threshold]
print("Aykırı Değerler (Mahalanobis):", aykiri_degerler_mah)  # Aykırı Değerler: [[8 8]]


Açıklama: Bu örnekte, Mahalanobis mesafesi kullanılarak [8, 8] verisi aykırı değer olarak tespit edilmiştir. Bu, veri setindeki diğer gözlemlerden belirgin şekilde farklıdır.


5. Grubbs Testi


Tanım: Grubbs testi, bir veri setindeki en aşırı değerleri tespit etmek için kullanılan bir yöntemdir. Bu test, bir veri noktasının ortalamadan sapmasını ve veri setindeki diğer değerlerle karşılaştırıldığında ne kadar farklı olduğunu ölçer.


Örnek: Bir veri setinde Grubbs testi kullanarak aykırı değerleri tespit edelim:


from scipy.stats import t
import numpy as np

# Grubbs testi için veri seti
veri_seti = [10, 12, 12, 13, 12, 11, 14, 13, 101]

# Grubbs testi hesaplama
def grubbs_test(veri_seti):
    ortalama = np.mean(veri_seti)
    std_sapma = np.std(veri_seti)
    G = max(abs(veri_seti - ortalama)) / std_sapma
    n = len(veri_seti)
    t_value = t.ppf(1 - 0.05 / (2 * n), n - 2)
    G_critical = ((n - 1) / np.sqrt(n)) * np.sqrt(t_value**2 / (n - 2 + t_value**2))
    return G, G_critical

G, G_critical = grubbs_test(veri_seti)
if G > G_critical:
    print("Aykırı Değer Tespit Edildi")
else:
    print("Aykırı Değer Tespit Edilmedi")

print(f"G değeri: {G}")
print(f"Kritik G değeri: {G_critical}")


Açıklama: Bu örnekte, Grubbs testi kullanılarak 101 değeri aykırı değer olarak tespit edilmiştir. Bu test, bu değerin veri setinin diğer değerlerine göre belirgin şekilde farklı olduğunu gösterir.


Aykırı Değerlerle Baş Etme

Aykırı değerler tespit edildikten sonra, bunlarla nasıl başa çıkılacağına karar vermek önemlidir. İşte bazı stratejiler:

  • Veri Temizleme: Aykırı değerlerin veri hatası veya yanlış girişlerden kaynaklandığı durumlarda, bu değerler düzeltilmeli veya kaldırılmalıdır.

  • Veri Dönüşümü: Aykırı değerlerin etkisini azaltmak için veriler logaritmik veya z-skoru gibi dönüşümlerle yeniden ölçeklendirilebilir.

  • Robust İstatistikler: Medyan ve IQR gibi aykırı değerlere karşı dayanıklı istatistikler kullanmak, veri analizinin doğruluğunu artırabilir.


 

Python temellerini atıp, veri analizi ve bilimi için yetkinlik kazanmak istiyorsanız, 1 aylık yoğun Python kampına hemen kayıt olabilirsiniz. ~40 saat canlı ders, ~50 adet kapsamlı proje, ~15 adet quiz ve sayısız kodlama egzersizinden oluşan, Finlandiya eğitim modellerinden esinlenilerek Helsinki'de geliştirilen interaktif ve pratik odaklı eğitim programına hemen göz atın !




bottom of page