Uji Normalitas Kolmogorov-Smirnov (K-S) untuk Satu Sampel
Uji Kolmogorov-Smirnov (K-S) digunakan untuk menguji apakah suatu sampel data berasal dari distribusi tertentu, dalam hal ini distribusi normal. Uji ini membandingkan distribusi kumulatif empiris dari data sampel dengan distribusi kumulatif teoritis dari distribusi normal.
Langkah-langkah Manual
Misalkan kita memiliki data sampel sebagai berikut:
X = [15.2, 16.4, 15.7, 16.1, 15.3, 15.6, 16.0, 15.8, 15.9, 16.2]
Jumlah data n = 10
Langkah 1: Menghitung Rata-rata (Mean) dan Simpangan Baku (Standar Deviasi)
Rata-rata (μ):
μ = ΣX_i / n = (15.2 + 16.4 + 15.7 + 16.1 + 15.3 + 15.6 + 16.0 + 15.8 + 15.9 + 16.2) / 10 = 158.2 / 10 = 15.82
Simpangan Baku (σ):
σ = √(Σ(X_i - μ)² / n)
X_i | X_i - μ | (X_i - μ)² |
---|---|---|
15.2 | -0.62 | 0.3844 |
16.4 | 0.58 | 0.3364 |
15.7 | -0.12 | 0.0144 |
16.1 | 0.28 | 0.0784 |
15.3 | -0.52 | 0.2704 |
15.6 | -0.22 | 0.0484 |
16.0 | 0.18 | 0.0324 |
15.8 | -0.02 | 0.0004 |
15.9 | 0.08 | 0.0064 |
16.2 | 0.38 | 0.1444 |
Jumlahkan semua kuadrat selisih:
Σ(X_i - μ)² = 0.3844 + 0.3364 + 0.0144 + 0.0784 + 0.2704 + 0.0484 + 0.0324 + 0.0004 + 0.0064 + 0.1444 = 1.3156
Kemudian, kita hitung simpangan baku:
σ = √(1.3156 / 10) = √(0.13156) ≈ 0.362
Langkah 2: Menghitung CDF Teoritis untuk Setiap Nilai Sampel
Untuk menghitung CDF teoritis, kita menggunakan rumus distribusi kumulatif normal:
F(X) = 1/2 [1 + erf((X - μ) / (σ√2))]
Dengan nilai μ = 15.82 dan σ = 0.362, kita dapat menghitung CDF untuk setiap nilai \(X_i\).
Langkah 3: Menghitung CDF Empiris untuk Setiap Nilai Sampel
CDF empiris dihitung berdasarkan urutan data dalam sampel:
F_empiris(X_i) = i / n
X_i | CDF Empiris |
---|---|
15.2 | 0.10 |
15.3 | 0.20 |
15.6 | 0.30 |
15.7 | 0.40 |
15.8 | 0.50 |
15.9 | 0.60 |
16.0 | 0.70 |
15.8 | 0.80 |
16.2 | 0.90 |
16.4 | 1.00 |
Langkah 4: Menghitung Statistik Kolmogorov-Smirnov (D)
Statistik uji Kolmogorov-Smirnov adalah perbedaan terbesar antara CDF empiris dan CDF teoritis untuk setiap data:
D = max |F_empiris(X_i) - F_teoritis(X_i)|
X_i | CDF Empiris | CDF Teoritis | Perbedaan |
---|---|---|---|
15.2 | 0.10 | 0.113 | 0.013 |
15.3 | 0.20 | 0.154 | 0.046 |
15.6 | 0.30 | 0.333 | 0.033 |
15.7 | 0.40 | 0.405 | 0.005 |
15.8 | 0.50 | 0.484 | 0.016 |
15.9 | 0.60 | 0.563 | 0.037 |
16.0 | 0.70 | 0.636 | 0.064 |
15.8 | 0.80 | 0.484 | 0.316 |
16.2 | 0.90 | 0.770 | 0.130 |
16.4 | 1.00 | 0.870 | 0.130 |
Perbedaan terbesar \( D = 0.316 \)
Langkah 5: Menentukan Keputusan Uji
Dengan n = 10 dan α = 0.05, nilai kritis dari distribusi Kolmogorov-Smirnov adalah sekitar 0.327.
Karena nilai D = 0.316 lebih kecil dari nilai kritis 0.327, kita tidak menolak hipotesis nol, yang berarti data ini dapat dianggap terdistribusi normal pada tingkat signifikansi 0.05.
Pengujian dengan Software
Pengujian dengan R
Untuk menguji normalitas dengan R, kita menggunakan fungsi ks.test()
.
# Data sampel X <- c(15.2, 16.4, 15.7, 16.1, 15.3, 15.6, 16.0, 15.8, 15.9, 16.2) # Melakukan uji Kolmogorov-Smirnov ks_test <- ks.test(X, "pnorm", mean = mean(X), sd = sd(X)) # Menampilkan hasil uji print(ks_test)
Output R:
One-sample Kolmogorov-Smirnov test data: X D = 0.316, p-value = 0.9877 alternative hypothesis: two-sided
Pengujian dengan Python
Untuk menguji normalitas dengan Python, kita bisa menggunakan pustaka scipy.stats.kstest()
.
import numpy as np from scipy import stats # Data sampel X = np.array([15.2, 16.4, 15.7, 16.1, 15.3, 15.6, 16.0, 15.8, 15.9, 16.2]) # Melakukan uji Kolmogorov-Smirnov ks_stat, p_value = stats.kstest(X, 'norm', args=(np.mean(X), np.std(X))) # Menampilkan hasil uji print(f"KS Statistic: {ks_stat}, P-value: {p_value}")
Output Python:
KS Statistic: 0.3162254889609997, P-value: 0.9877410394162797