Distribusi Bernoulli dan Binomial

Model proses sukses/gagal dan penghitungan jumlah sukses dalam n percobaan.

Daftar isi

Topik ini membahas model distribusi untuk percobaan yang hasilnya hanya ada dua, yaitu sukses dan gagal, beserta perluasannya untuk menghitung jumlah sukses dalam nn 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 pp menentukan peluang sukses, sehingga P(X=1)=pP(X = 1) = p dan P(X=0)=1−pP(X = 0) = 1 - p. Contoh netralnya adalah menebak satu soal pilihan ganda dengan empat pilihan, yaitu peluang benar p=0.25p = 0.25.

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.

python simulasi-bernoulli.py
"""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}")
text Keluaran
Frekuensi benar (simulasi) : 0.2497
Peluang benar (teoretis)   : 0.2500

Frekuensi benar hasil simulasi adalah 0.2497, berdekatan dengan p=0.25p = 0.25 yang menjadi modelnya. Selisih kecil semacam ini wajar karena jumlah percobaannya terbatas. Pertanyaan yang lebih sering muncul dalam praktik adalah berapa peluang menjawab tepat kk soal benar dari nn soal, dan jawabannya memerlukan model binomial.

Menghitung jumlah sukses dari n percobaan#

Jumlah sukses dalam nn 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 n=10n = 10 dan p=0.25p = 0.25. Contoh lainnya adalah pengujian mutu komponen, yaitu 10 komponen diperiksa dan jumlah yang lulus dihitung. Alurnya dirangkum pada diagram berikut.

Satu percobaansukses (1) dengan peluang pgagal (0) dengan peluang 1-pdiulang n kalin percobaan independenp sama pada tiap percobaanhasil antarpercobaan bebasdihitungX = jumlah suksesX ~ Binomial(n, p)nilai 0, 1, ..., n
Alur dari percobaan Bernoulli tunggal ke distribusi binomial

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.

python simulasi-binomial.py
"""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 jumlah jawaban benar menutupi titik PMF binomial teoretis
Histogram jumlah jawaban benar menutupi titik PMF binomial teoretis

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 np=2.5np = 2.5, yakni antara 2 dan 3 soal. Bentuk histogramnya juga bergantung pada pp, karena pada p=0.5p = 0.5 histogramnya simetris sedangkan pada pp yang kecil histogramnya menceng ke kanan. PMF binomialnya dituliskan dengan rumus

P(X=k)=(nk)pk(1−p)n−k,k=0,1,…,n. P(X = k) = \binom{n}{k} p^k (1-p)^{n-k}, \quad k = 0, 1, \ldots, n.

Pada rumus di atas, (nk)\binom{n}{k} menghitung banyaknya cara memilih kk soal yang dijawab benar dari nn soal. Faktor pkp^k memberi bobot peluang kk keberhasilan, sedangkan (1−p)n−k(1-p)^{n-k} memberi bobot sisanya. Contohnya, peluang menjawab tepat 2 benar dari 10 soal adalah (102)(0.25)2(0.75)8≈0.2816\binom{10}{2} (0.25)^2 (0.75)^8 \approx 0.2816, sesuai kolom k=2k = 2 pada tabel verifikasi berikut.

Rata-rata dan variansi binomial#

Distribusi binomial memiliki rata-rata (mean) E(X)=npE(X) = np dan variansi (variance) Var⁡(X)=np(1−p)\operatorname{Var}(X) = np(1-p). Untuk 10 soal dengan p=0.25p = 0.25, rata-ratanya 2.5 jawaban benar dan variansinya 10×0.25×0.75=1.87510 \times 0.25 \times 0.75 = 1.875. 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 kk.

python verifikasi-binomial.py
"""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}")
text Keluaran
  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.8750

Rata-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 k=2k = 2 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 40×0.25=1040 \times 0.25 = 10 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 pp masuk akal sebelum menggunakan modelnya.
  • Menukar kk dengan nn saat membaca PMF. Nilai kk adalah jumlah sukses yang ditanyakan, sedangkan nn adalah jumlah percobaannya. Peluang benar 2 dari 10 soal ditulis (102)(0.25)2(0.75)8\binom{10}{2}(0.25)^2(0.75)^8, 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 pp, dan binomial menghitung jumlah sukses dalam nn percobaan yang saling bebas.
  • PMF binomial P(X=k)=(nk)pk(1−p)n−kP(X = k) = \binom{n}{k} p^k (1-p)^{n-k} menghitung peluang tepat kk sukses.
  • Rata-rata binomial adalah npnp dan variansinya np(1−p)np(1-p), keduanya terverifikasi oleh simulasi.

Referensi#