Informasi tambahan mengubah penilaian atas ketidakpastian, dan peluang bersyarat (conditional probability) adalah ukuran perubahannya. Topik ini membahas pembacaan tabel kontingensi (contingency table), perhitungan langsung dari tabel maupun dari rumusnya, serta perbandingan peluang sebelum dan sesudah informasi diterima. Seluruh contoh menggunakan data fiktif hasil ujian 200 siswa yang diverifikasi dengan pensampelan acak.
Tabel kontingensi sebagai populasi mini#
Tabel kontingensi merangkum dua variabel kategorikal sekaligus, yaitu status kehadiran dan hasil ujian pada 200 siswa fiktif. Setiap sel di dalamnya menghitung banyak siswa dengan satu kombinasi nilai, sedangkan baris dan kolom Total merangkum marginnya. Sel berisi 78 berarti terdapat 78 siswa yang hadir penuh dan lulus.
| Status kehadiran | Lulus | Tidak lulus | Total |
|---|---|---|---|
| Hadir penuh | 78 | 22 | 100 |
| Pernah absen | 38 | 62 | 100 |
| Total | 116 | 84 | 200 |
Setiap sel bagian dalam merupakan irisan dua kejadian, misalnya kejadian lulus dan kejadian hadir penuh. Dari margin tabel diperoleh dan . Seluruh peluang pada topik ini dibaca dari tabel yang sama, sehingga setiap angka dapat ditelusuri kembali ke banyaknya siswa.
Peluang bersyarat sebagai penyempitan ruang sampel#
Tanpa informasi apa pun, ruang sampel berisi 200 siswa dan peluang lulus adalah 0.58. Begitu diketahui seorang siswa hadir penuh, populasi yang relevan menyusut menjadi 100 siswa pada baris pertama, dan peluang lulusnya dihitung ulang menjadi . Informasi kehadiran tidak mengubah siswanya, tetapi mengubah wilayah tempat perhitungan dilakukan.
Penyempitan tersebut dirumuskan sebagai peluang bersyarat. Notasi dibaca peluang dengan syarat , yaitu peluang setelah ruang sampel diganti menjadi . Apabila , definisinya adalah
Pada tabel, dan , sehingga . Hasil rumus sama dengan hasil langsung dari baris hadir penuh. Perbandingan terhadap memperlihatkan informasi menaikkan peluang yang dinilai.
Arah sebaliknya memberi kontras yang jelas. Siswa yang pernah absen memiliki , jauh di bawah 0.58, sedangkan syarat hadir penuh menaikkan nilainya ke 0.78. Dua syarat berbeda pada tabel yang sama menghasilkan dua peluang berbeda, dan itulah kegunaan utama peluang bersyarat.
Data pada tabel adalah data fiktif yang disusun untuk latihan. Pola pada tabel tidak boleh dibaca sebagai hubungan sebab akibat karena faktor lain dapat memengaruhi kehadiran dan kelulusan sekaligus. Untuk keperluan latihan, tabel itu cukup menunjukkan bahwa satu informasi mengubah nilai peluang.
Menghitung dan memverifikasi dengan Python#
Skrip berikut menghitung seluruh peluang dari tabel, lalu melakukan pensampelan acak 100000 kali dari populasi 200 siswa untuk memeriksa hasilnya. Frekuensi lulus dibandingkan dengan , sedangkan frekuensi lulus pada subkelompok hadir dibandingkan dengan . Pembangkit acak memakai bibit 42 agar keluarannya dapat direproduksi.
import numpy as np
# Tabel kontingensi 200 siswa (data fiktif)
# lulus tidak lulus total
# hadir penuh 78 22 100
# pernah absen 38 62 100
lulus_hadir, gagal_hadir = 78, 22
lulus_absen, gagal_absen = 38, 62
total = lulus_hadir + gagal_hadir + lulus_absen + gagal_absen
p_lulus = (lulus_hadir + lulus_absen) / total
p_hadir = (lulus_hadir + gagal_hadir) / total
p_irisan = lulus_hadir / total
p_bersyarat = p_irisan / p_hadir # rumus P(A|B) = P(A dan B) / P(B)
print(f"P(lulus) = {p_lulus:.4f}")
print(f"P(hadir penuh) = {p_hadir:.4f}")
print(f"P(lulus dan hadir) = {p_irisan:.4f}")
print(f"P(lulus|hadir) rumus = {p_bersyarat:.4f}")
print(f"P(lulus|hadir) tabel = {lulus_hadir / (lulus_hadir + gagal_hadir):.4f}")
print(f"P(hadir|lulus) tabel = {lulus_hadir / (lulus_hadir + lulus_absen):.4f}")
# Verifikasi dengan pensampelan acak dari populasi 200 siswa
# kode kategori: 0 = hadir-lulus, 1 = hadir-gagal, 2 = absen-lulus, 3 = absen-gagal
rng = np.random.default_rng(42)
populasi = np.repeat([0, 1, 2, 3], [lulus_hadir, gagal_hadir, lulus_absen, gagal_absen])
tarikan = populasi[rng.integers(0, total, size=100_000)]
hadir = tarikan <= 1
lulus = (tarikan == 0) | (tarikan == 2)
print(f"Frekuensi lulus = {lulus.mean():.4f}")
print(f"Frekuensi lulus|hadir = {lulus[hadir].mean():.4f}")P(lulus) = 0.5800
P(hadir penuh) = 0.5000
P(lulus dan hadir) = 0.3900
P(lulus|hadir) rumus = 0.7800
P(lulus|hadir) tabel = 0.7800
P(hadir|lulus) tabel = 0.6724
Frekuensi lulus = 0.5801
Frekuensi lulus|hadir = 0.7803Frekuensi relatif 0.5801 dan 0.7803 menempel pada nilai teoretis 0.58 dan 0.78. Baris P(hadir|lulus) tabel bernilai 0.6724, berbeda dari 0.78 karena pembatasnya kolom lulus, bukan baris hadir. Perbedaan semacam ini menjadi pengingat bahwa arah syarat ikut menentukan hasil.
Baris P(lulus dan hadir) bernilai 0.39 adalah peluang gabungan, bukan peluang bersyarat. Irisan dua kejadian tidak pernah melebihi masing-masing kejadiannya, sehingga hubungan menjadi pemeriksaan cepat bagi setiap tabel. Nilai 0.39 memang tidak melebihi 0.58 maupun 0.5.
Kesalahan umum#
Kesalahan pada peluang bersyarat jarang menghasilkan angka mustahil, tetapi arah syarat dan penyebutnya sering keliru. Dua pola berikut layak dijaga. Keduanya tampak wajar karena nilainya tetap berada pada rentang 0 sampai 1.
- Membalik arah syarat. sedangkan , dan keduanya berbeda karena pembatasnya berbeda. Perbaikannya adalah menuliskan kejadian syarat secara eksplisit sebelum menghitung.
- Memakai penyebut yang salah. Nilai bukan peluang bersyarat karena belum dibagi . Perbaikannya adalah memastikan penyebutnya peluang kejadian syarat, bukan total keseluruhan.
Kedua pola tersebut dapat dicegah dengan satu kebiasaan, yaitu menyebutkan ruang sampel yang sedang dipakai. Apabila perhitungan berada pada baris atau kolom tertentu dari tabel, tuliskan pembatasnya bersama hasilnya. Kebiasaan kecil itu membuat setiap angka dapat ditelusuri kembali ke tabel asalnya.
Ringkasan#
- Peluang bersyarat membatasi perhitungan pada bagian ruang sampel yang memenuhi syarat .
- Pada tabel kontingensi, peluang bersyarat dibaca sepanjang baris atau kolom syaratnya, bukan dari total keseluruhan.
- Pada data contoh, naik menjadi , dan pensampelan acak memperlihatkan frekuensi yang selaras.
- Nilai dan umumnya berbeda karena pembatasnya berbeda.
Referensi#
- OpenIntro Statistics — OpenIntro — Bab probabilitas bersyarat membaca tabel kontingensi dengan cara yang sama seperti contoh di atas.
- numpy.random.Generator — NumPy — Dokumentasi pembangkit angka acak NumPy yang dipakai pada verifikasi pensampelan.