Materi
Pencilan (outlier) adalah pengamatan yang menyimpang jauh dari pengamatan lainnya. NIST/SEMATECH e-Handbook mengingatkan bahwa pencilan bisa berarti data salah catat, tetapi bisa juga kejadian sungguhan yang justru menarik, jadi pencilan ditandai untuk diperiksa, bukan langsung dihapus.
Cara pertama memakai z-score dari pelajaran 4: nilai dengan |z| melampaui ambang yang ditetapkan di awal analisis ditandai. NIST mencatat dua kelemahannya. Rata-rata dan simpangan baku ikut tertarik oleh pencilan itu sendiri. Pada sampel kecil, z-score terbesar paling tinggi (n − 1) ÷ √n, sehingga dengan 10 data z tidak mungkin melampaui 2,85 sejauh apa pun pencilannya. NIST menganjurkan modified z-score berbasis median dengan ambang 3,5 sebagai gantinya.
Cara kedua memakai pagar dari kuartil, yang tidak terpengaruh besarnya nilai ekstrem: IQR = Q3 − Q1, pagar dalam bawah = Q1 − 1,5 × IQR, dan pagar dalam atas = Q3 + 1,5 × IQR. NIST menyebut titik di luar pagar dalam sebagai pencilan ringan dan di luar pagar luar (3 × IQR) sebagai pencilan ekstrem. Kuartil di sini memakai metode inklusif, sama dengan QUARTILE di lembar kerja dan numpy.percentile bawaan.
Untuk data banyak atribut, scikit-learn menyediakan IsolationForest: pohon acak memisahkan data dengan potongan acak, dan data yang terisolasi dengan sedikit potongan (jalur pendek) dianggap anomali. predict mengembalikan −1 untuk pencilan dan 1 untuk data wajar; contamination menetapkan porsi data yang ditandai.
import numpy as np
x = np.array([40, 42, 43, 45, 47, 48, 90])
q1, q3 = np.percentile(x, [25, 75]) # 42.5 47.5
iqr = q3 - q1
print(x[(x < q1 - 1.5 * iqr) | (x > q3 + 1.5 * iqr)]) # [90]