Topik ini membahas model distribusi untuk percobaan yang hasilnya hanya ada dua, yaitu sukses dan gagal, beserta perluasannya untuk menghitung jumlah sukses dalam percobaan. Contoh yang digunakan adalah menebak jawaban soal pilihan ganda dan pengujian mutu komponen. Modelnya dibangun dari simulasi lebih dahulu, kemudian rumus PMF-nya diperkenalkan, dan verifikasi rata-rata serta variansi teoretisnya menutup uraian.
Percobaan Bernoulli: sukses atau gagal#
Satu percobaan acak dengan tepat dua kemungkinan hasil dimodelkan oleh distribusi Bernoulli. Hasil yang dianggap menarik disebut sukses dan diberi nilai 1, sedangkan lawannya disebut gagal dan diberi nilai 0. Satu parameter menentukan peluang sukses, sehingga dan . Contoh netralnya adalah menebak satu soal pilihan ganda dengan empat pilihan, yaitu peluang benar .
Skrip berikut menyimulasikan seratus ribu tebakan soal pilihan ganda, satu soal per tebakan. Hasil benar dicatat sebagai 1 dan salah sebagai 0, lalu frekuensi benarnya dihitung. Fungsi rng.binomial dengan jumlah percobaan 1 membangkitkan hasil Bernoulli.
"""Simulasi satu percobaan Bernoulli diulang banyak kali."""
import numpy as np
rng = np.random.default_rng(42)
# satu percobaan: menjawab benar (1) atau salah (0), peluang benar p = 0.25
percobaan = rng.binomial(1, 0.25, size=100_000)
print(f"Frekuensi benar (simulasi) : {np.mean(percobaan):.4f}")
print(f"Peluang benar (teoretis) : {0.25:.4f}")Frekuensi benar (simulasi) : 0.2497
Peluang benar (teoretis) : 0.2500Frekuensi benar hasil simulasi adalah 0.2497, berdekatan dengan yang menjadi modelnya. Selisih kecil semacam ini wajar karena jumlah percobaannya terbatas. Pertanyaan yang lebih sering muncul dalam praktik adalah berapa peluang menjawab tepat soal benar dari soal, dan jawabannya memerlukan model binomial.
Menghitung jumlah sukses dari n percobaan#
Jumlah sukses dalam percobaan Bernoulli yang saling bebas dengan peluang sukses sama mengikuti distribusi binomial. Menebak 10 soal pilihan ganda lalu menghitung banyaknya jawaban benar adalah satu contohnya, dengan dan . Contoh lainnya adalah pengujian mutu komponen, yaitu 10 komponen diperiksa dan jumlah yang lulus dihitung. Alurnya dirangkum pada diagram berikut.
Skrip berikut menyimulasikan seratus ribu peserta yang masing-masing menebak 10 soal, lalu menghitung jumlah jawaban benar setiap peserta. Histogram hasilnya digambar berdampingan dengan PMF binomial teoretis dari scipy.stats.binom. Histogram kembali menggunakan kepadatan agar skalanya sebanding dengan PMF.
"""Distribusi jumlah jawaban benar pada 10 soal pilihan ganda."""
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
rng = np.random.default_rng(42)
jawaban = rng.binomial(10, 0.25, size=100_000)
k = np.arange(11)
fig, ax = plt.subplots(figsize=(7, 4), constrained_layout=True)
ax.hist(jawaban, bins=np.arange(-0.5, 11.5, 1), density=True, alpha=0.6,
label="Histogram simulasi")
ax.plot(k, stats.binom.pmf(k, 10, 0.25), "ro-", label="PMF binomial teoretis")
ax.set_xlabel("Jumlah jawaban benar (dari 10 soal)")
ax.set_ylabel("Peluang")
ax.set_title("Binomial n=10, p=0.25: simulasi vs teori")
ax.legend()
fig.savefig("histogram-pmf-binomial.png", dpi=110)
Histogram simulasi menutupi titik-titik PMF teoretis, sehingga model binomial layak digunakan untuk data penghitungan semacam ini. Jumlah jawaban benar paling sering muncul di sekitar , yakni antara 2 dan 3 soal. Bentuk histogramnya juga bergantung pada , karena pada histogramnya simetris sedangkan pada yang kecil histogramnya menceng ke kanan. PMF binomialnya dituliskan dengan rumus
Pada rumus di atas, menghitung banyaknya cara memilih soal yang dijawab benar dari soal. Faktor memberi bobot peluang keberhasilan, sedangkan memberi bobot sisanya. Contohnya, peluang menjawab tepat 2 benar dari 10 soal adalah , sesuai kolom pada tabel verifikasi berikut.
Rata-rata dan variansi binomial#
Distribusi binomial memiliki rata-rata (mean) dan variansi (variance) . Untuk 10 soal dengan , rata-ratanya 2.5 jawaban benar dan variansinya . Kedua nilai ini dapat diverifikasi langsung dari simulasi.
Skrip berikut menghitung frekuensi relatif setiap jumlah benar dari simulasi yang sama, lalu membandingkan rata-rata dan variansi simulasinya dengan nilai teoretis. Nilai teoretis diambil dari metode mean dan var pada scipy.stats.binom. Tabel frekuensinya sekaligus menguji kecocokan PMF pada setiap nilai .
"""Verifikasi rata-rata dan variansi binomial lewat simulasi."""
import numpy as np
from scipy import stats
rng = np.random.default_rng(42)
jawaban = rng.binomial(10, 0.25, size=100_000)
print(f"{'k':>3} {'Frekuensi relatif':>18} {'PMF teoretis':>13}")
for k in range(11):
print(f"{k:>3} {np.mean(jawaban == k):>18.4f} {stats.binom.pmf(k, 10, 0.25):>13.4f}")
print(f"Rata-rata simulasi : {np.mean(jawaban):.4f}")
print(f"Rata-rata teoretis : {stats.binom.mean(10, 0.25):.4f}")
print(f"Variansi simulasi : {np.var(jawaban):.4f}")
print(f"Variansi teoretis : {stats.binom.var(10, 0.25):.4f}") k Frekuensi relatif PMF teoretis
0 0.0568 0.0563
1 0.1864 0.1877
2 0.2806 0.2816
3 0.2520 0.2503
4 0.1456 0.1460
5 0.0589 0.0584
6 0.0159 0.0162
7 0.0033 0.0031
8 0.0004 0.0004
9 0.0000 0.0000
10 0.0000 0.0000
Rata-rata simulasi : 2.5024
Rata-rata teoretis : 2.5000
Variansi simulasi : 1.8772
Variansi teoretis : 1.8750Rata-rata simulasi 2.5024 dan variansinya 1.8772, keduanya berdekatan dengan nilai teoretis 2.5 dan 1.875. Kolom frekuensi relatif juga berhimpitan dengan kolom PMF teoretis, termasuk pada yang bernilai sekitar 0.28. Kecocokan dua sisi ini menunjukkan bahwa rumus binomial memang merangkum perilaku proses acaknya. Rumusnya juga memberi perkiraan cepat tanpa simulasi, misalnya menebak 40 soal menghasilkan rata-rata jawaban benar.
Kesalahan umum#
- Menggunakan model binomial pada percobaan yang tidak bebas. Peluang sukses harus sama di setiap percobaan, sedangkan komponen dari pemasok yang berbeda-beda membuat peluang lulunya berubah-ubah. Perbaikannya, pastikan asumsi kebebasan dan kesamaan masuk akal sebelum menggunakan modelnya.
- Menukar dengan saat membaca PMF. Nilai adalah jumlah sukses yang ditanyakan, sedangkan adalah jumlah percobaannya. Peluang benar 2 dari 10 soal ditulis , bukan kebalikannya.
- Mengira binomial menghitung banyaknya urutan. Binomial menghitung jumlah sukses tanpa memedulikan urutan, sehingga dua jawaban benar pada soal nomor 2 dan 3 dihitung sama dengan dua jawaban benar pada soal nomor 9 dan 10. Urutan benar-salahnya tidak diperhitungkan oleh model ini.
Ringkasan#
- Distribusi Bernoulli memodelkan satu percobaan dua hasil dengan parameter , dan binomial menghitung jumlah sukses dalam percobaan yang saling bebas.
- PMF binomial menghitung peluang tepat sukses.
- Rata-rata binomial adalah dan variansinya , keduanya terverifikasi oleh simulasi.
Referensi#
- NumPy Generator — NumPy
— Referensi resmi fungsi
rng.binomialyang dipakai simulasi pada topik ini. - scipy.stats.binom — SciPy — Dokumentasi resmi distribusi binomial SciPy beserta pmf, mean, dan var.
- OpenIntro Statistics — OpenIntro — Buku pengantar statistika gratis dengan bab distribusi binomial.