T-test menuntaskan pertanyaan tentang mean, tetapi banyak data tidak pernah bermean sama sekali. Responden memilih transportasi, siswa masuk kategori jurusan, produk lulus atau gagal inspeksi — data kategorik berbentuk hitungan (count) per kategori, dan pertanyaan ujinya berbunyi: apakah pola hitungan yang teramati cocok dengan pola yang diharapkan? Chi-square (χ²) menjawabnya dengan satu ide sederhana yang menopang dua uji berbeda: goodness-of-fit untuk satu variabel, dan uji kemandirian untuk tabel silang dua variabel. Chapter ini mengerjakan keduanya dengan data lengkap — 60 lemparan dadu dan 100 responden survei transportasi.
Satu Ide: Jarak Amatan ke Harapan #
Statistik chi-square mengukur total ketidaksesuaian antara hitungan teramati O dan hitungan harapan E:
chi2 = Σ (O - E)² / E untuk seluruh kategori/selSetiap suku (O − E)²/E menyatakan kontribusi satu kategori: selisih dikuadratkan (sehingga arah kelebihan dan kekurangan sama-sama dihitung) lalu dibagi E (sehingga selisih 3 pada kategori yang diharapkan 10 jauh lebih serius daripada selisih 3 pada kategori yang diharapkan 300). Nilai χ² = 0 berarti amatan persis menyentuh harapan; semakin besar χ², semakin jauh data melenceng dari model yang diuji. Batas “besar” ditentukan oleh distribusi chi-square dengan derajat kebebasan df — bentuknya miring ke kanan dengan hanya nilai non-negatif, karena χ² memang hasil penjumlahan kuadrat.
Goodness-of-Fit: Apakah Dadu itu Adil #
Uji kecocokan (goodness-of-fit) membandingkan hitungan amatan satu variabel kategorik terhadap distribusi teoretis. Kasus klasiknya: sebuah dadu dilempar 60 kali, dan setiap mata diharapkan muncul 10 kali bila dadu adil. Hasil pengamatan:
| Mata dadu | 1 | 2 | 3 | 4 | 5 | 6 |
|---|---|---|---|---|---|---|
| O (amatan) | 8 | 12 | 15 | 9 | 11 | 5 |
| E (harapan) | 10 | 10 | 10 | 10 | 10 | 10 |
Hipotesisnya: H0: dadu adil (semua peluang 1/6); H1: dadu tidak adil. Dengan α = 0.05, statistik ujinya dihitung suku demi suku:
chi2 = (8-10)²/10 + (12-10)²/10 + (15-10)²/10
+ (9-10)²/10 + (11-10)²/10 + (5-10)²/10
= 0.4 + 0.4 + 2.5 + 0.1 + 0.1 + 2.5
= 6.0 dengan df = k - 1 = 6 - 1 = 5Derajat kebebasan untuk goodness-of-fit adalah k − 1 (banyak kategori dikurangi satu kendala: total hitungan sudah terpasang pada 60), sehingga p-value = P(χ² > 6.0; df = 5) = 0.3062 (dibulatkan ke empat desimal). Karena 0.3062 ≥ 0.05, gagal menolak H0 — dadu ini tidak terbukti tidak adil. Dua mata yang paling menyimpang (mata 3 muncul 15 kali, mata 6 hanya 5 kali) menyumbang 5.0 dari total 6.0, tetapi pada 60 lemparan fluktuasi sebesar itu masih wajar. Perhatikan asimetri kesimpulan yang kembali muncul: keputusan ini bukan bukti dadu adil, hanya belum ada cukup bukti untuk menuduh sebaliknya.
Uji Kemandirian: Transportasi dan Gender #
Uji kemandirian (test of independence) bekerja pada tabel silang dua variabel kategorik dan bertanya: apakah kedua variabel tidak berkaitan? Survei 100 responden tentang moda transportasi utama ke kampus menghasilkan tabel silang:
| Transportasi umum | Kendaraan pribadi | Total | |
|---|---|---|---|
| Laki-laki | 30 | 20 | 50 |
| Perempuan | 20 | 30 | 50 |
| Total | 50 | 50 | 100 |
Hipotesisnya: H0: pilihan moda transportasi tidak berkaitan dengan gender (kedua variabel saling bebas); H1: ada kaitan. Hitungan harapan tiap sel dihitung dari margin tabel: E = (total baris × total kolom) / total keseluruhan. Sel laki-laki–transportasi umum: E = (50 × 50)/100 = 25, dan keempat sel memiliki struktur margin yang sama sehingga seluruh E = 25. Statistik ujinya:
chi2 = (30-25)²/25 + (20-25)²/25 + (20-25)²/25 + (30-25)²/25
= 1 + 1 + 1 + 1
= 4.0 df = (r - 1)(c - 1) = (2-1)(2-1) = 1p-value = P(χ² > 4.0; df = 1) = 0.0455. Karena 0.0455 < 0.05, tolak H0 — data mendukung adanya kaitan antara gender dan pilihan moda: laki-laki condong ke transportasi umum (30 dari 50), perempuan condong ke kendaraan pribadi (30 dari 50), dan pola seragam itu terlalu konsisten untuk disebut kebetulan pada tingkat α = 0.05. Derajat kebebasan (r−1)(c−1) mencerminkan sel yang bebas berubah setelah margin tetap: tabel 2×2 hanya menyisakan satu angka yang benar-benar bebas.
Syarat Pemakaian Chi-Square #
Perhitungan χ² hanyalah aproksimasi yang bekerja baik ketika hitungan harapan cukup besar. Aturan praktisnya: expected count tiap sel minimal 5. Alasannya mekanis — pembagi E yang kecil membuat suku (O − E)²/E melonjak tidak proporsional, dan distribusi chi-square berhenti menjadi aproksimasi yang akurat untuk sel dengan E = 1 atau 2 (sel dengan E di bawah 1 bahkan tidak boleh).
Chi-Square atau t-Test #
Jenis data menentukan uji — tabel ringkas berikut memetakan pilihan pada pertanyaan yang paling sering muncul:
| Pertanyaan | Jenis data | Uji yang tepat |
|---|---|---|
| Rata-rata berbeda dari nilai klaim? | numerik (mean) | z-test / t-test satu sampel |
| Rata-rata dua kelompok berbeda? | numerik (mean) | t-test dua sampel |
| Sebelum-sesudah pada individu sama? | numerik berpasangan | paired t-test |
| Distribusi kategori sesuai model? | kategorik (hitungan) | chi-square goodness-of-fit |
| Dua variabel kategorik berkaitan? | kategorik (tabel silang) | chi-square uji kemandirian |
| Rata-rata tiga kelompok atau lebih? | numerik (mean) | ANOVA (chapter berikutnya) |
Menghitung dengan Python #
Kedua uji chi-square tersedia di scipy.stats — chisquare untuk goodness-of-fit (harapan seragam menjadi default), chi2_contingency untuk tabel silang:
from scipy.stats import chi2_contingency, chisquare
tabel = [[30, 20], [20, 30]]
chi2, p, df, expected = chi2_contingency(tabel, correction=False)
print(f"chi2 = {chi2:.4f}, p = {p:.4f}, df = {df}")
print("expected tiap sel :", [round(e) for e in expected.ravel()])
dadu = [8, 12, 15, 9, 11, 5]
chi2_d, p_d = chisquare(dadu)
print(f"chi2 = {chi2_d:.4f}, p = {p_d:.4f}, df = {len(dadu) - 1}")Output yang Dihasilkan:
chi2 = 4.0000, p = 0.0455, df = 1
expected tiap sel : [25, 25, 25, 25]
chi2 = 6.0000, p = 0.3062, df = 5Mari kita bedah blok tersebut: chi2_contingency(tabel, correction=False) mengembalikan empat nilai — statistik, p-value, df, dan tabel expected — dan parameter correction=False menonaktifkan koreksi Yates default agar hasilnya identik dengan perhitungan manual di atas. Fungsi round(e) pada elemen array expected menampilkan 25.0 sebagai bilangan bulat agar output ringkas. Baris chisquare(dadu) membandingkan hitungan dadu dengan harapan seragam 60/6 = 10 tiap mata dan menghasilkan χ² = 6.0000, p = 0.3062 — kedua pasangan angka cocok persis dengan perhitungan tangan kita.
Chi-square menutup pertanyaan kategorik, dan peta uji tinggal menyisakan satu wilayah: perbandingan lebih dari dua mean. Melakukannya dengan t-test berulang tampak wajar tetapi menyimpan jebakan statistik yang membuat peluang kesalahan membengkak tanpa terasa. ANOVA — chapter berikutnya — menyelesaikannya dengan satu statistik F; rujukan resmi untuk seluruh uji bab ini adalah NIST Engineering Statistics Handbook dan scipy.stats .