Outlier
1. Apa Itu Outlier?
Outlier adalah nilai dalam dataset yang secara signifikan berbeda dari nilai lainnya. Outlier bisa jauh lebih besar atau jauh lebih kecil dibandingkan dengan data lainnya, sehingga dapat mempengaruhi analisis statistik dan performa model machine learning.
Contoh Outlier dalam Data
Misalkan kita
memiliki dataset tinggi badan dalam cm:
[160, 162, 165, 168, 170, 172, 175, 180, 300]
Di sini, 300 cm adalah outlier, karena secara tidak wajar jauh lebih tinggi dari data lainnya.
2. Penyebab Terjadinya Outlier
Outlier bisa muncul karena beberapa alasan, di antaranya:
- Kesalahan Pengukuran atau Kesalahan Input Data
- Contoh: Kesalahan pengetikan data, seperti memasukkan 300 cm sebagai tinggi badan manusia normal.
- Variasi Alamiah dalam Data
- Contoh: Pendapatan tahunan di suatu kota, di mana ada segelintir miliarder yang penghasilannya jauh lebih tinggi dibanding rata-rata.
- Perubahan Kondisi atau Peristiwa Langka
- Contoh: Harga saham pada hari kejadian Black Monday (1987), di mana terjadi kejatuhan pasar saham yang tidak biasa.
- Anomali yang Menunjukkan Wawasan Baru
- Contoh: Deteksi transaksi kartu kredit yang mencurigakan dalam analisis fraud detection.
3. Dampak Outlier dalam Analisis Data
Outlier dapat memiliki dampak signifikan terhadap statistik dan machine learning:
Dampak |
Penjelasan |
Mempengaruhi Rata-rata (Mean) |
Outlier bisa membuat rata-rata data menjadi tidak representatif. |
Meningkatkan Variansi dan Standard Deviasi |
Dataset menjadi lebih tersebar, menyebabkan kesulitan dalam analisis statistik. |
Mempengaruhi Hasil Model Machine Learning |
Beberapa model seperti regresi linear dan k-means clustering sangat terpengaruh oleh outlier. |
Contoh Perubahan Mean akibat
Outlier
Dataset tanpa
outlier: [10, 12, 14, 16, 18], Mean = 14
Dataset dengan outlier: [10, 12, 14, 16, 100], Mean = 30.4
Seperti yang terlihat, kehadiran satu outlier (100) membuat mean naik drastis dari 14 ke 30.4, yang bisa memberikan gambaran yang salah tentang data.
4. Cara Mendeteksi Outlier
Ada beberapa metode yang bisa digunakan untuk mendeteksi outlier:
a. Menggunakan Boxplot (Visualisasi)
- Boxplot adalah cara visual untuk mengidentifikasi outlier berdasarkan IQR (Interquartile Range).
- Outlier terletak di luar "whisker" dari boxplot.
Contoh Implementasi Boxplot dalam Python:
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
data = [160, 162, 165, 168, 170, 172, 175, 180, 300] # Data dengan outlier
sns.boxplot(data)
plt.show()
Jika ada titik yang berada jauh di luar kotak, itu adalah indikasi outlier.
b. Menggunakan Interquartile Range (IQR)
- IQR adalah selisih antara kuartil ke-3 (Q3) dan kuartil ke-1 (Q1).
- Aturan: Data dianggap outlier jika: X<Q1−1.5 IQR atau X>Q3+1.5 IQR
Contoh Implementasi IQR dalam Python:
import numpy as np
data = np.array([160, 162, 165, 168, 170, 172, 175, 180, 300])
Q1 = np.percentile(data, 25)
Q3 = np.percentile(data, 75)
IQR = Q3 - Q1
lower_bound = Q1 - 1.5 * IQR
upper_bound = Q3 + 1.5 * IQR
outliers = data[(data < lower_bound) | (data > upper_bound)]
print("Outliers:", outliers)
c. Menggunakan Z-Score (Standardisasi)
- Z-Score mengukur seberapa jauh nilai dari rata-rata dalam satuan standar deviasi.
- Aturan umum: Data dianggap outlier jika Z-Score > 3 atau < -3.
Rumus Z-Score:
Z=(X−μ)/σ
Di mana:
- X= Nilai data
- μ= Rata-rata (mean)
- σ= Standar deviasi
Contoh Implementasi Z-Score dalam Python:
from scipy import stats
data = np.array([160, 162, 165, 168, 170, 172, 175, 180, 300])
z_scores = np.abs(stats.zscore(data))
outliers = data[z_scores > 3]
print("Outliers:", outliers)
5. Cara Mengatasi Outlier
Setelah outlier ditemukan, ada beberapa cara untuk menanganinya:
Metode |
Penjelasan |
Kapan Digunakan? |
Menghapus Outlier |
Menghapus data yang terlalu ekstrem. |
Jika outlier disebabkan oleh kesalahan input data. |
Mengganti dengan Median |
Mengganti nilai outlier dengan median dataset. |
Jika outlier terjadi secara alami dalam data. |
Menggunakan Transformasi Logaritmik |
Mengurangi efek outlier dengan transformasi log. |
Jika distribusi data sangat miring (skewed). |
Menggunakan Model yang Tahan Outlier |
Gunakan model seperti Random Forest atau Decision Tree yang lebih tahan terhadap outlier. |
Jika ingin mempertahankan semua data tanpa menghapus. |
Contoh Menghapus Outlier di Python:
filtered_data = data[(data >= lower_bound) & (data <= upper_bound)]
print("Data setelah menghapus outlier:", filtered_data)
Contoh Menggunakan Transformasi Logaritmik:
import numpy as np
data = np.array([160, 162, 165, 168, 170, 172, 175, 180, 300])
log_transformed = np.log(data)
print(log_transformed)
6. Kesalahan Umum dalam Menangani Outlier
1. Menghapus Outlier Tanpa Analisis Lebih Lanjut
- Jika outlier merupakan
informasi yang penting (misalnya dalam fraud detection), menghapusnya bisa
menyebabkan kehilangan wawasan berharga.
- Solusi: Lakukan analisis sebelum memutuskan menghapus outlier.
2. Menggunakan Mean untuk Mengganti Outlier
- Jika distribusi data tidak
normal, mengganti outlier dengan mean bisa tetap menghasilkan
bias.
-Solusi: Gunakan median sebagai pengganti.
7. Kesimpulan:
Outlier adalah nilai data yang jauh berbeda dari data lain dalam dataset.
Outlier dapat terjadi karena kesalahan input, variasi alami, atau peristiwa langka.
Beberapa metode untuk mendeteksi outlier termasuk Boxplot, IQR, dan Z-Score.
Outlier dapat diatasi dengan menghapus, mengganti, atau menggunakan model yang lebih tahan terhadap outlier.
Memahami dan menangani outlier dengan benar, sangat penting untuk analisis data yang akurat dan model machine learning yang lebih andal!