# Outlier (Pencilan)

### 🚨 Apa Itu Outlier (Pencilan)?

**Outlier** (atau pencilan) adalah **nilai yang sangat berbeda** atau **jauh dari sebagian besar data** dalam sebuah dataset. Nilai-nilai ini dapat secara signifikan lebih tinggi atau lebih rendah dibandingkan dengan nilai lainnya. Outlier bisa jadi merupakan **kesalahan pengukuran** atau bisa juga menggambarkan **peristiwa langka** yang penting untuk dianalisis lebih lanjut.

#### 🧐 Kenapa Outlier Penting?

* **Mengidentifikasi pola yang tidak biasa**: Outlier dapat membantu kita mendeteksi **anomaly** atau kejadian langka yang mungkin mempengaruhi hasil analisis.
* **Memengaruhi statistik**: Outlier dapat memengaruhi hasil dari statistik deskriptif seperti **mean**, **variance**, dan **regresi**, yang mungkin tidak mencerminkan data secara akurat jika outlier tidak ditangani.

***

#### 🚩 Contoh Outlier:

Misalkan kamu memiliki dataset tentang **pendapatan tahunan** dalam sebuah perusahaan:

$$30.000,40.000,50.000,45.000,38.000,1.000.000$$

Di sini, **1.000.000** adalah nilai yang sangat jauh dari angka lainnya, yang menjadikannya sebagai outlier.

Outlier seperti ini dapat mempengaruhi perhitungan **mean** dan memberikan gambaran yang tidak akurat tentang pendapatan mayoritas karyawan.

***

### 🧮 Mengidentifikasi Outlier dengan **IQR (Interquartile Range)**

Salah satu cara yang umum digunakan untuk mendeteksi outlier adalah dengan menggunakan **Interquartile Range (IQR)**, yang merupakan **selisih antara percentile ke-75 (Q3)** dan **percentile ke-25 (Q1)**.

Langkah-langkah untuk Menemukan Outlier dengan IQR:

1. Hitung $$Q\_1$$ (Percentile ke-25) dan $$Q\_3$$ (Percentile ke-75).
2. Hitung IQR dengan rumus:

$$
\text{IQR} = Q\_3 - Q\_1
$$

3. Tentukan batas bawah dan batas atas untuk data yang normal dengan rumus:

* Batas bawah: $$Q\_1 - 1.5 \times \text{IQR}$$
* Batas atas: $$Q\_3 + 1.5 \times \text{IQR}$$

4. Data yang berada di luar batas bawah atau batas atas ini dianggap sebagai **outlier**.

***

#### 🧑‍💻 Contoh Perhitungan Outlier dengan IQR:

Misalkan kita memiliki dataset berikut:

$$10,12,14,18,20,22,24,30,32,36$$

1. **Hitung Q1 dan Q3**:
   * **Q1 (25th percentile)** = 14
   * **Q3 (75th percentile)** = 24
2. **Hitung IQR**:

   $$
   \text{IQR} = Q\_3 - Q\_1 = 24 - 14 = 10
   $$
3. **Hitung batas bawah dan batas atas**:
   * **Batas bawah** = $$Q\_1 - 1.5 \times \text{IQR} = 14 - 1.5 \times 10 = -1$$
   * **Batas atas** = $$Q\_3 + 1.5 \times \text{IQR} = 24 + 1.5 \times 10 = 39$$
4. **Identifikasi Outlier**:
   * Data di luar rentang **(-1, 39)** adalah outlier. Jadi, dalam hal ini, semua data berada dalam rentang normal, tidak ada outlier.

Jika ada nilai yang jauh di luar rentang ini, misalnya **50 atau 100**, itu akan dianggap outlier.

***

#### 🔍 Mengidentifikasi Outlier dengan **Z-Score**

Outlier juga dapat dideteksi dengan menggunakan **Z-Score**, yang mengukur seberapa jauh suatu nilai dari rata-rata dalam satuan standar deviasi.

***

#### 🧮 Rumus Z-Score:

$$
Z = \frac{X - \mu}{\sigma}
$$

di mana:

* $$X$$ adalah nilai data,
* $$\mu$$ adalah **mean** (rata-rata) dari data,
* $$\sigma$$ adalah **standar deviasi** dari data.

***

#### 📌 Kriteria Outlier:

Biasanya, jika nilai **Z-Score** lebih besar dari **3** atau kurang dari **-3**, maka data tersebut dianggap sebagai **outlier**.

* Biasanya, jika **Z-Score** lebih besar dari **3** atau kurang dari **-3**, data tersebut dianggap sebagai **outlier**.

***

#### 🧑‍💻 Menghitung Outlier dengan Z-Score di Python

```python
import numpy as np

# Data contoh
data = [10, 12, 14, 18, 20, 22, 24, 30, 32, 36]

# Menghitung mean dan standar deviasi
mean = np.mean(data)
std_dev = np.std(data)

# Menghitung Z-Score untuk setiap data
z_scores = [(x - mean) / std_dev for x in data]

# Menampilkan Z-Score
print("Z-Scores:", z_scores)

# Identifikasi outlier jika Z-Score > 3 atau < -3
outliers = [data[i] for i in range(len(data)) if abs(z_scores[i]) > 3]
print("Outliers:", outliers)
```

***

#### 🚨 Menangani Outlier

Setelah kita mengidentifikasi outlier, kita memiliki beberapa opsi untuk menanganinya:

1. **Membuang Outlier**: Jika outlier dianggap sebagai **kesalahan pengukuran**, kita bisa menghapusnya dari dataset.
2. **Mengganti dengan Nilai Lain**: Mengganti outlier dengan nilai yang lebih masuk akal, seperti **mean** atau **median** dari data lainnya.
3. **Menggunakan Model yang Tidak Terpengaruh Outlier**: Beberapa model statistik dan machine learning, seperti **Decision Trees**, lebih tahan terhadap outlier dan tidak terpengaruh oleh nilai ekstrim.

***

### ✅ Kesimpulan:

Outlier adalah nilai yang **signifikan berbeda** dari data lainnya dan bisa memengaruhi hasil analisis statistik. Deteksi dan penanganan outlier sangat penting agar analisis data yang dilakukan menjadi lebih akurat. Menggunakan metode seperti **IQR** atau **Z-Score** membantu dalam mengidentifikasi outlier secara sistematis. Setelah terdeteksi, outlier dapat dihapus, diganti, atau tetap dipertahankan, tergantung pada tujuan analisis dan konteks data.
