Ukuran Penyebaran (Variabilitas)

Seberapa jauh data menyebar dari pusatnya?

Mengetahui rata-rata saja tidak cukup. Dua kelas bisa punya rata-rata nilai ujian yang sama (misal: 70), tapi kelas A nilainya seragam (68-72), sedangkan kelas B sangat beragam (0-100). Variabilitas mengukur keberagaman ini.

Range (Jangkauan)

Selisih antara nilai tertinggi dan terendah. Sangat sederhana, tapi sangat sensitif terhadap outlier.

$Range = Max - Min$

IQR (Interquartile Range)

Jangkauan antara kuartil ke-3 (75%) dan kuartil ke-1 (25%). Ini adalah "jangkauan data tengah".

$IQR = Q3 - Q1$

Digunakan untuk mendeteksi outlier (Boxplot).

Variance & Standard Deviation

Ini adalah metrik paling penting dalam statistik dan ML.

Variance ($\sigma^2$ atau $s^2$)

Rata-rata kuadrat jarak setiap titik data terhadap Mean.

$\sigma^2 = \frac{\sum_{i=1}^{N} (x_i - \mu)^2}{N}$

Standard Deviation ($\sigma$ atau $s$)

Akar kuadrat dari Variance. Mengembalikan satuan ke bentuk aslinya (bukan kuadrat).

$\sigma = \sqrt{\sigma^2}$

Kenapa di ML penting? Banyak algoritma (seperti SVM, KNN, Neural Networks) mengharuskan data memiliki skala yang sama. StandardScaler menggunakan rumus ini: $z = \frac{x - mean}{std\_dev}$.

Implementasi Python

import numpy as np

data = np.array([10, 20, 30, 40, 50])

# 1. Range
print(f"Range: {np.ptp(data)}") # Peak to Peak
# Output: 40

# 2. Variance
# ddof=0 untuk Populasi, ddof=1 untuk Sampel (unbiased estimator)
print(f"Variance (Populasi): {np.var(data)}") 
# Output: 200.0

# 3. Standard Deviation
std_dev = np.std(data)
print(f"Std Dev: {std_dev:.2f}")
# Output: 14.14

# 4. Standardisasi (Z-Score Normalization)
z_scores = (data - np.mean(data)) / np.std(data)
print(f"Z-Scores: {z_scores}")
# Output: [-1.41, -0.71, 0., 0.71, 1.41]
# Data sekarang memiliki Mean=0 dan Std=1