Uji Chi-Square: Konsep dan Contoh Praktis (2026)
TL;DR
Uji chi-square adalah metode statistik buat ngecek apakah dua variabel kategorikal punya hubungan atau cuma kebetulan. Caranya membandingkan jumlah yang teramati dengan jumlah yang diharapkan kalau kedua variabel nggak berhubungan. Kalau p-value di bawah 0,05, hubungannya dianggap nyata secara statistik. Di Python, uji ini kelar satu baris pakai chi2_contingency dari scipy.
Uji chi-square adalah metode statistik buat ngecek apakah dua variabel kategorikal punya hubungan, atau polanya cuma kebetulan.
Contohnya: apakah pelanggan lama lebih milih bayar tunai dibanding pelanggan baru? Chi-square yang jawab, dengan angka, bukan tebakan.
Konsepnya simpel begitu kamu paham logikanya. Bandingin apa yang beneran terjadi sama apa yang seharusnya terjadi kalau dua variabel itu nggak nyambung. Di bawah ini rumusnya, cara hitung di Python, plus contoh data toko.
Apa itu uji chi-square?
Uji chi-square adalah tes yang ngukur apakah dua variabel kategorikal saling berhubungan. Dia kerja dengan membandingkan jumlah yang teramati (observed) sama jumlah yang diharapkan (expected) kalau dua variabel itu benar-benar bebas satu sama lain. Makin jauh bedanya, makin kuat sinyal adanya hubungan.
Variabel kategorikal itu data yang berbentuk kelompok, bukan angka. Contoh: metode bayar (tunai atau e-wallet), tipe pelanggan (baru atau lama), kota, jenis produk.
Buat data yang berupa angka kontinu, kamu butuh korelasi, bukan chi-square. Kalau mau kenalan sama eksplorasi data dasar dulu, cek EDA pakai SQL.
Kapan pakai uji chi-square?
Pakai uji chi-square kalau kamu punya dua variabel kategorikal dan pengin tau apakah keduanya berhubungan. Datanya harus berupa hitungan frekuensi, misalnya berapa banyak pelanggan lama yang bayar tunai. Uji ini nggak cocok buat angka kontinu kayak nominal belanja atau umur, kecuali kamu kelompokin dulu jadi kategori.
Beberapa pertanyaan yang cocok dijawab chi-square:
- Apakah metode pembayaran berhubungan sama tipe pelanggan?
- Apakah pilihan kategori produk berbeda antar kota?
- Apakah channel promo ngaruh ke apakah pelanggan jadi beli?
Gimana cara ngitung chi-square?
Rumus intinya membandingkan observed (O) dan expected (E) di tiap sel tabel:
chi-square = Σ (O - E)² / E
Langkahnya empat:
- Susun tabel kontingensi berisi jumlah teramati di tiap kombinasi kategori.
- Hitung nilai expected tiap sel: (total baris x total kolom) / total keseluruhan.
- Masukin ke rumus, jumlahin semua sel.
- Bandingin hasilnya sama tabel distribusi chi-square pakai derajat bebas (dof) = (jumlah baris - 1) x (jumlah kolom - 1).
Hasil akhirnya diterjemahin jadi p-value. Kalau p-value di bawah 0,05, hubungannya dianggap nyata secara statistik. Penjelasan lebih dalam soal angka ini ada di glossary p-value.
Uji chi-square pakai Python
Kamu nggak perlu ngitung manual. Library scipy ngerjain semuanya dalam satu fungsi. Pertama, susun tabel kontingensi dari data toko. Di SQL, tabelnya dibikin gini:
SELECT
tipe_pelanggan,
COUNT(*) FILTER (WHERE metode = 'tunai') AS tunai,
COUNT(*) FILTER (WHERE metode = 'ewallet') AS ewallet
FROM transaksi
GROUP BY tipe_pelanggan;
Hasilnya masuk ke Python sebagai tabel angka:
import numpy as np
from scipy.stats import chi2_contingency
# baris: pelanggan lama, pelanggan baru
# kolom: tunai, e-wallet
tabel = np.array([
[120, 80],
[60, 140]
])
chi2, p, dof, expected = chi2_contingency(tabel)
print("chi-square:", round(chi2, 2))
print("p-value:", round(p, 5))
print("derajat bebas:", dof)
print("expected:\n", expected.round(1))
Fungsi chi2_contingency balikin empat hal: nilai chi-square, p-value, derajat bebas, dan tabel expected. Detail parameternya ada di dokumentasi scipy chi2_contingency.
Contoh kasus: pembayaran vs tipe pelanggan toko_berkah
Toko_berkah pengin tau apakah pelanggan lama lebih milih tunai. Dari 400 transaksi, ini tabelnya:
| Tipe pelanggan | Tunai | E-wallet | Total |
|---|---|---|---|
| Pelanggan lama | 120 | 80 | 200 |
| Pelanggan baru | 60 | 140 | 200 |
| Total | 180 | 220 | 400 |
Hasil uji: chi-square 36,36, p-value 0,00000164. Jauh di bawah 0,05.
Artinya, hubungan antara tipe pelanggan dan metode bayar itu nyata, bukan kebetulan. Pelanggan lama 60 persen bayar tunai, sementara pelanggan baru 70 persen pakai e-wallet.
Buat toko, insight ini kepake. Promo e-wallet buat pelanggan baru masuk akal, karena mereka emang udah condong ke situ. Sementara pelanggan lama butuh dorongan beda kalau mau digeser ke digital.
Ingat batasnya: chi-square bilang ada hubungan, bukan siapa nyebabin siapa. Bisa jadi pelanggan baru lebih muda dan lebih akrab sama e-wallet. Faktor umur nggak keliatan di tabel ini.
Kesalahan umum uji chi-square
1. Pakai buat data kontinu. Chi-square cuma buat kategori. Nominal belanja harus dikelompokin dulu jadi rentang.
2. Sel dengan expected di bawah 5. Kalau ada sel harapan yang kekecilan, hasilnya nggak reliable. Pakai Fisher exact test buat sampel kecil.
3. Nyimpulin sebab-akibat. Ada hubungan bukan berarti satu nyebabin yang lain. Chi-square nggak bisa buktiin itu.
4. Lupa cek ukuran sampel. Sampel kegedean bikin hubungan kecil keliatan nyata secara statistik padahal nggak penting secara praktik.
5. Salah baca arah. Chi-square nggak ngasih tau arah hubungan. Kamu harus lihat tabelnya buat tau kelompok mana yang condong ke mana.
FAQ
Uji chi-square dipakai buat apa?
Uji chi-square dipakai buat ngecek apakah dua variabel kategorikal punya hubungan. Contohnya: apakah metode pembayaran berhubungan sama tipe pelanggan, atau apakah pilihan produk berhubungan sama kota. Datanya harus berupa hitungan atau frekuensi, bukan angka kontinu kayak tinggi atau berat. Kalau kamu mau tes hubungan antara dua angka kontinu, korelasi lebih tepat, bukan chi-square.
Apa arti p-value di uji chi-square?
P-value ngasih tau seberapa besar kemungkinan pola yang kamu lihat muncul cuma karena kebetulan, kalau sebenarnya dua variabel nggak berhubungan. Kalau p-value di bawah 0,05, kamu simpulin hubungannya nyata secara statistik, bukan kebetulan. Kalau di atas 0,05, kamu belum punya bukti cukup buat bilang ada hubungan. Angka 0,05 itu ambang yang umum, bukan hukum wajib.
Bedanya observed sama expected di chi-square apa?
Observed adalah jumlah yang beneran kamu hitung dari data, misalnya 120 pelanggan lama bayar tunai. Expected adalah jumlah yang diharapkan muncul kalau dua variabel nggak berhubungan sama sekali. Uji chi-square membandingkan dua angka ini di tiap sel. Makin jauh observed dari expected, makin besar nilai chi-square, dan makin kuat sinyal kalau ada hubungan.
Berapa ukuran sampel minimal buat uji chi-square?
Aturan praktis yang umum: tiap sel di tabel harapan sebaiknya punya nilai expected minimal 5. Kalau ada sel yang expected-nya di bawah 5, hasil chi-square jadi kurang bisa diandalkan. Buat tabel 2x2 dengan sel kecil, orang biasanya pakai Fisher exact test sebagai gantinya. Jadi pastikan datamu cukup banyak sebelum ngandelin kesimpulannya.
Chi-square bisa bilang variabel mana yang nyebabin yang lain nggak?
Nggak. Chi-square cuma ngasih tau ada hubungan atau nggak, bukan mana yang nyebabin. Sama kayak korelasi, dia nunjukin dua variabel gerak bareng, tapi nggak bilang siapa yang duluan. Bisa jadi ada faktor ketiga yang ngaruhin dua-duanya. Jadi pakai hasilnya buat nemuin pola yang perlu diselidiki, bukan buat langsung nyimpulin sebab-akibat.
Penutup
Uji chi-square jawab satu pertanyaan penting dengan angka: apakah dua kategori beneran berhubungan atau cuma kebetulan. Rumusnya bisa dihitung tangan, tapi scipy bikin kelar dalam satu baris.
Yang harus kamu jaga: datanya kategori, sampelnya cukup, dan jangan buru-buru nyimpulin sebab-akibat.
Coba ambil dua kolom kategori di datamu sendiri, susun tabel kontingensi, dan jalanin uji ini. Lanjut baca AI untuk interpretasi statistik kalau mau bantuan baca hasilnya, atau glossary outlier buat konsep statistik lain.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Artikel terkait
Korelasi Spearman: Kapan Dipakai vs Pearson
Korelasi Spearman kerja di peringkat, bukan nilai asli. Ini bedanya dengan Pearson, kapan pakai yang mana, dan cara hitungnya di Excel dan Python.
Korelasi Pearson: Cara Menghitung dan Membaca
Korelasi Pearson ngukur seberapa kuat dua angka bergerak bareng. Ini cara hitung dan baca nilainya dengan contoh dataset toko Indonesia.
Regresi Linear Berganda: Penjelasan dan Contoh
Regresi linear berganda bikin kamu bisa prediksi satu angka dari banyak faktor sekaligus. Ini penjelasan rumusnya, cara baca hasil, plus contoh Python yang bisa langsung kamu tiru.