HOW TO HANDLING OUTLIER
Kali ini penulis akan membahas mengenai outlier (pencilan), cara mengidentifikasi adanya outlier, dan apa yang sebaiknya dilakukan pada data outlier. Namun, sebelum membahas cara mengatasi masalah data outlier, ada baiknya terlebih dahulu mengenal apa itu outlier.
OUTLIER
Outlier atau pencilan merupakan suatu observasi pada kumpulan data yang berbeda polanya atau nilainya dari observasi-observasi lainnya pada kumpulan data tersebut. Menurut Kleinbum et al. (2008), outlier merupakan sesuatu yang langka atau observasi yang tidak biasa yang muncul pada salah satu titik ekstrem dari sebagian besar data. Titik ekstrem dalam observasi adalah nilai yang jauh atau beda sama sekali dengan sebagian besar nilai lain dalam kelompoknya, misalnya nilainya terlalu kecil atau terlalu besar.
Contoh sederhananya, misalnya suatu kelas memiliki nilai hasil ujian yaitu: 50, 54, 62, 50, 52, 59, 61, 63, 65, 10, 53, 63, 65, 50, 59, 62, 50, 51, 57, 60, 63, 65, 65, 53, 99. Dari nilai 25 siswa ini, terdapat dua anak yang memiliki nilai ekstrem, yaitu nilai 10 dan 99, dan kedua nilai inilah yang dapat dikatakan sebagai nilai outlier.
Penyebab Munculnya Outlier
Munculnya outlier pada kumpulan data disebabkan oleh beberapa kemungkinan, yaitu:
• Adanya kesalahan prosedur dalam memasukkan data
• Kesalahan dalam pengukuran atau analisis, dan/atau
• Adanya keadaan yang benar-benar khusus, seperti pandanganresponden terhadap sesuatu yang menyimpang dikarenakan adanya suatu alasan yang tidak diketahui oleh peneliti sendiri.
“Outliers are data points that are far from other data points”
Cara Mengidentifikasi Outlier pada Python
Outlier dapat ditemukan secara univariat maupun multivariat. Outlier univariat artinya outlier yang ada dalam satu variabel, sedangkan outlier multivariat artinya outlier yang ada dalam dua atau lebih variabel.
Univariate Outlier
Univariate outlier adalah outlier dalam satu variabel. Misalnya, kita mempunyai data sample = [15, 101, 18, 7, 13, 16, 11, 21, 5, 15, 10, 9], kemudian kita akan melakukan deteksi apakah dalam data tersebut terdapat outlier atau tidak.
Berdasarkan Gambar diatas, karakteristik yang sangat dipengaruhi outlier adalah nilai rata-rata dari dataset.
Multivariate Outlier
Mendeteksi outlier dalam data multivariate sering kali menjadi salah satu tantangan dari preprocessing data. Ada berbagai teknik untuk mendeteksi outlier. Jarak Euclidean adalah salah satu cara yang paling dikenal untuk mengidentifikasi outlier berdasarkan jarak suatu nilai observasi ke titik pusat. Pada materi ini, kita akan membahas jarak Mahalanobis untuk mendeteksi outlier dalam data multivariabel.
Jarak Mahalanobis adalah metrik jarak efektif yang menemukan jarak antara titik dan distribusi. Ini bekerja cukup efektif pada data multivariat karena menggunakan matriks kovarians variabel untuk menemukan jarak antara titik data dan pusat. Artinya, jarak Mahalanobis mendeteksi outlier berdasarkan pola distribusi titik data, tidak seperti jarak Euclidean.
Dilihat dari gambar di atas, titik data tersebar ke arah tertentu. Jarak Euclidean dapat menetapkan beberapa titik non-outlier sebagai outlier dalam distribusi tersebut, sedangkan jarak Mahalanobis dapat menyesuaikan dengan data multivariabel ini. Hal ini juga sama untuk data non-linear seperti pada Gambar 4 berikut ini:
Langkah-langkah mendeteksi pencilan dengan jarak Mahalanobis (Johnson dan Wichern, 2007):
1. Menentukan nilai vektor rata-rata (ΞΌ)
2. Menentukan nilai matriks varians kovarians (∑)
3. Menentukan nilai jarak Mahalanobis pada setiap pengamatan dengan vektor rata-rata: π π =(πΏ −π)π»∑ −π(πΏ −π),π=π,π,...,π
4. Mengurutkan nilai π π dari kecil ke besar π π ≤ π π ≤ ⋯ ≤ π π
5. Adapun jarak Mahalanobis dievaluasi dengan menggunakan πΏπ pada derajat kebebasan (df) sejumlah variabel yang digunakan dalam penelitian. Identifikasi data pencilan pada pengamatan ke-i didefinisikan sebagai Pencilan apabila π π ≥ πΏπ
Cara Mendeteksi Outlier
Bagaimana cara mendeteksi outlier? Berikut ini beberapa cara yang dapat dilakukan untuk mendeteksi outlier :
1. BOX PLOT
Untuk mendeteksi outlier dengan boxplot, kita dapat membuat boxplotdengan code Python seperti berikut ini:
Output :
Pada gambar di atas, terdapat titik data yang jauh dari boxplot, sehingga terindikasi data tersebut dikatakan outlier.
2. Z-SCORE
Langkah yang dilakukan untuk mendeteksi outlier dengan Z-score adalah menghitung Z-score menggunakan rumus (Xi-mean)/std, kemudian kita menentukan nilai ambang batas 3 dan kita dapat menandai titik data yang nilai absolut Z-score lebih besar dari ambang batas sebagai outlier. Berikut ini code untuk melakukan hal tersebut pada Python:
Output dari code tersebut adalah “Outliers from Z-scores method: [101]”, yang artinya nilai 101 dideteksi sebagai outlier.
3. INTERQUARTILE RANGE (IQR)
Langkah pendeteksian outlier dengan IQR adalah sebagai berikut ini:
• Urutkan kumpulan data dalam urutan naik
• Hitung kuartil ke-1 dan ke-3 (Q1, Q3)
• Hitung IQR = Q3 - Q1• Hitung batas bawah = (Q1 – 1.5*IQR), batas atas = (Q3 + 1.5*IQR)
• Periksa tiap nilai dalam data, lalu tandai data yang berada di bawahbatas bawah maupun di atas batas atas sebagai outlier
Berikut ini code Python yang b isa digunakan:
Output dari code tersebut adalah “Outliers from IQR method: [101]”, yang artinya outlier yang terdeteksi adalah nilai 101 pada data.
Bagaimana Solusi untuk Data Outlier?
Haruskah outlier dihapus dari analisis? Jawabannya, meskipun tampaknya mudah, tidak sesederhana itu
Ada banyak strategi untuk menangani outlier dalam data. Tergantung pada situasi dan kumpulan data kita, apa pun bisa menjadi cara yang benar atau salah. Selain itu, sebagian besar alat pengujian utama memiliki strategi untuk menangani outlier, tetapi biasanya alat-alat ini berbeda dalam cara melakukannya.
Karena itu, tetap penting untuk melakukan analisis khusus terkait outlier meskipun alat pengujian Anda memiliki parameter default. Tidak hanya Anda dapat lebih mempercayai data pengujian Anda, tetapi terkadang analisis outlier menghasilkan wawasannya sendiri yang membantu pengoptimalan.Berikut ini beberapa cara yang dapat digunakan untuk mengatasi outlier :
1. Menghapus Outlier
Outlier yang dideteksi akan dihapus dari dataset dan tidak diikutkan dalamanalisa. Berikut ini code Python untuk menghapus outlier:
2. Menggantikan dengan nilai pada batas tertentu
Dalam teknik ini, outlier dibatasi pada nilai tertentu di atas nilai persentil ke-90 atau di bawah nilai persentil ke-10. Berikut ini code Pythonnya :
Titik data yang lebih kecil dari persentil ke-10 diganti dengan nilai persentil ke-10 dan titik data yang lebih besar dari persentil ke-90 diganti dengan nilai persentil ke-90.
3. Menggantikan dengan nilai median
Karena nilai rata-rata sangat dipengaruhi oleh outlier, disarankan untuk mengganti outlier dengan nilai median alih-alih dengan nilai rata-rata. Berikut ini code Python yang dapat digunakan :
Setelah outlier dapat diatasi, dilakukan pengecekan kembali apakah masih ada outlier atau tidak dengan membuat boxplot.
Output:
Pada gambar di atas sudah tidak ada titik yang berada di luar boxplot, sehingga sudah tidak terdeteksi adanya outlier.
1. Python for Data Analysis – Wes McKinney
2. Kleinbum,D.,Kupper,L.,Nizam,A.,&Keith,M.2008.AppliedRegression Analysis and Other Multivariable Methods. USA:Thomson.
3. Rawlings, J. O., Pantula, S. G., & Dickey, D. A. 1998. AppliedRegression Analysis:A Research Tool-Second Edition. New York:Springer-Verlag.
4. Soemartini.2007.Pencilan(Outlier).Bandung:UNPAD.
5. https://salsabilabasalamah.medium.com/cara-mengidentifikasi-dan-penanganan-data-outlier-d2fe16c6d62c
6. https://www.affde.com/id/outliers.html
7. https://www.analyticsvidhya.com/blog/2021/05/detecting-and-treating-outliers-treating-the-odd-one-out/
8. https://towardsdatascience.com/multivariate-outlier-detection-in-python-e946cfc843b3













Komentar
Posting Komentar