Toko Kopi Kita memasang tombol “Pesan Sekarang” di situsnya, dan minggu ini 12 dari 40 pengunjung menekannya. Analisis frekuensistik yang kita kenal memberi satu angka: konversi 30%, plus interval kepercayaan. Analisis Bayesian menawarkan sesuatu yang berbeda bentuknya: bukan satu tebakan, melainkan distribusi keyakinan atas seluruh kemungkinan nilai konversi — 30% paling mungkin, 27% dan 33% masih wajar, 90% nyaris mustahil — dan distribusi itu bisa diperbarui setiap pekan tanpa mengulang perhitungan dari nol. Kerangka kerjanya adalah teorema Bayes yang sudah kita pakai pada chapter Teorema Bayes ; sekarang kita angkat ke tataran analisis utuh: prior, likelihood, posterior, dan pembaruan bertahap pada contoh proporsi pelanggan.

Prior, Likelihood, Posterior #

Tiga kata kunci membentuk seluruh siklus analisis Bayesian:

  • Prior — keyakinan kita sebelum melihat data baru, dinyatakan sebagai distribusi peluang atas parameter. Bisa datar (“semua nilai sama mungkin”) atau berisi pengalaman lampau (“konversi kampanye terdahulu sekitar 30%”).
  • Likelihood — seberapa besar peluang data yang teramati, jika parameter bernilai tertentu: bila konversi sesungguhnya 30%, seberapa besar melihat 12 konversi dari 40 pengunjung?
  • Posterior — keyakinan kita setelah data masuk; hasil kalau prior ditimbang dengan likelihood lewat teorema Bayes.

Untuk masalah proporsi, ada pasangan yang saling melengkapi secara alami: data biner (menekan atau tidak) punya likelihood Bernoulli/binomial, dan keluarga Beta sebagai prior menghasilkan posterior yang juga Beta — sifat yang disebut konjugat. Pembaruannya bahkan tidak perlu integral, cukup penjumlahan:

text
Posterior = Beta(alpha + k, beta + n - k)

alpha, beta : parameter prior (keyakinan awal)
k           : jumlah keberhasilan (konversi) pada data baru
n           : jumlah percobaan (pengunjung) pada data baru

Rata-rata posterior = (alpha + k) / (alpha + beta + n)

Prior Beta(1, 1) adalah distribusi datar pada rentang 0-1: versi paling netral dari “saya belum punya pendapat”. Karena itu pula rata-rata posterior dengan prior datar hanya sedikit bergeser dari frekuensi mentah — bedanya hidup ketika data masih sedikit atau prior membawa pengalaman.

Praktik: Konversi Tombol “Pesan Sekarang” #

Kita hitung posterior secara manual dengan rumus di atas, lalu minta scipy.stats.beta mengambil alih bagian yang tak bisa dihitung pencil-kertas: interval kredibel dan peluang berbagai peristiwa.

python
from scipy import stats

n = 40      # pengunjung yang melihat tombol
k = 12      # yang menekan tombol "Pesan Sekarang"

# Prior Beta(1, 1): keyakinan datar, semua proporsi dianggap sama mungkin
alpha_prior, beta_prior = 1, 1

# Rumus pembaruan Beta-Binomial: posterior = Beta(alpha + k, beta + n - k)
alpha_post = alpha_prior + k
beta_post = beta_prior + n - k
mean_post = alpha_post / (alpha_post + beta_post)

print(f"Prior           : Beta({alpha_prior}, {beta_prior})")
print(f"Posterior       : Beta({alpha_post}, {beta_post})")
print(f"Rata-rata posterior (manual {alpha_post}/{alpha_post + beta_post}): {mean_post:.4f}")
print(f"Tebakan frekuensistik {k}/{n}                : {k / n:.4f}")

interval = stats.beta.ppf([0.025, 0.975], alpha_post, beta_post)
print(f"Interval kredibel 95% (scipy): {interval[0]:.3f} s.d. {interval[1]:.3f}")
peluang_di_atas = stats.beta.sf(0.35, alpha_post, beta_post)
print(f"P(proporsi > 0.35 | data)    : {peluang_di_atas:.3f}")

Output yang Dihasilkan:

text
Prior           : Beta(1, 1)
Posterior       : Beta(13, 29)
Rata-rata posterior (manual 13/42): 0.3095
Tebakan frekuensistik 12/40                : 0.3000
Interval kredibel 95% (scipy): 0.181 s.d. 0.455
P(proporsi > 0.35 | data)    : 0.276

Mari kita telaah baris-baris pentingnya:

  1. Baris 13-15 (pembaruan manual): posterior adalah Beta(1 + 12, 1 + 28) = Beta(13, 29) — cukup dua penjumlahan. Rata-ratanya 13/42 = 0,3095, sedikit di atas tebakan frekuensistik 12/40 = 0,3000, karena prior datar menyumbang satu “konversi” dan satu “non-konversi” imajiner.
  2. Baris 20-21 (stats.beta.ppf): percent point function adalah kebalikan CDF — kita meminta batas yang memuat 95% luas posterior, hasilnya 0,181 sampai 0,455. Membacanya lugas: “dengan keyakinan 95%, konversi sebenarnya berada di antara 18,1% dan 45,5%, diberikan data ini”.
  3. Baris 22-23 (stats.beta.sf): survival function menghitung luas posterior di atas suatu nilai — peluang 0,276 bahwa konversi sebenarnya melebihi 35%. Pertanyaan keputusan semacam ini (“apakah sudah cukup yakin konversi di atas target 35%?”) dijawab langsung sebagai peluang, tanpa uji hipotesis.

Perhatikan jenis pernyataan yang muncul: semuanya tentang parameter dan bersyarat data. Bandingkan dengan interval kepercayaan 95% frekuensistik (kira-kira 0,158-0,442 dengan pendekatan normal), yang maknanya berbeda: bila eksperimen diulang berkali-kali, 95% interval yang dihasilkan akan memuat nilai sejati. Dua jenis interval itu sering bernilai berdekatan, tetapi pertanyaan yang dijawabnya berbeda.

Pembaruan Bertahap: Posterior Hari Ini, Prior Besok #

Keunggulan praktis analisis Bayesian terlihat saat data datang bergelombang. Pekan pertama menyumbang 5 konversi dari 20 pengunjung; pekan kedua 7 dari 20. Alih-alih menggabung ulang, kita pakai posterior pekan pertama sebagai prior pekan kedua — dua baris pembaruan berantai:

python
from scipy import stats

alpha, beta = 1, 1  # prior Beta(1, 1), keyakinan datar
print(f"Sebelum data        : Beta({alpha}, {beta}), rata-rata {alpha / (alpha + beta):.3f}")

pekan = [("pekan 1", 5, 20), ("pekan 2", 7, 20)]
for nama, konversi, pengunjung in pekan:
    alpha = alpha + konversi
    beta = beta + pengunjung - konversi
    interval = stats.beta.ppf([0.025, 0.975], alpha, beta)
    print(f"Setelah {nama} ({konversi}/{pengunjung}) : Beta({alpha}, {beta}), "
          f"rata-rata {alpha / (alpha + beta):.3f}, "
          f"interval 95% {interval[0]:.3f}-{interval[1]:.3f}")

Output yang Dihasilkan:

text
Sebelum data        : Beta(1, 1), rata-rata 0.500
Setelah pekan 1 (5/20) : Beta(6, 16), rata-rata 0.273, interval 95% 0.113-0.472
Setelah pekan 2 (7/20) : Beta(13, 29), rata-rata 0.310, interval 95% 0.181-0.455

Bedah hasilnya:

  1. Baris 8-10 (pembaruan berantai): alpha dan beta bertambah sesuai data tiap pekan — posterior lama menjadi prior baru tanpa perlu menyimpan data mentah, cukup dua angka per parameter.
  2. Simpang-siur keyakinan: rata-rata bergerak 0,500 → 0,273 → 0,310, dan interval 95% menyempit dari 0,113-0,472 menjadi 0,181-0,455. Data pekan pertama menarik keyakinan turun dari 0,5 (prior datar) ke 0,27; pekan kedua menariknya kembali sedikit ke atas — konsisten dengan konversi pekan kedua yang lebih baik (7/20 = 35%).
  3. Ujung pencapaian: hasil akhir Beta(13, 29) persis sama dengan perhitungan satu tahap di blok sebelumnya (12 konversi dari 40 pengunjung). Pembaruan bertahap dan data gabungan menghasilkan posterior yang identik — sifat koherensi yang membuat pendekatan ini cocok untuk pemantauan berkelanjutan.

Rangkuman #

  • Analisis Bayesian menghasilkan distribusi keyakinan atas parameter, bukan satu tebakan; prior dan likelihood dilebur menjadi posterior lewat teorema Bayes.
  • Pasangan Beta-Binomial bersifat konjugat: posterior Beta cukup dihitung dengan Beta(alpha + k, beta + n - k); scipy.stats.beta menyediakan ppf untuk interval kredibel dan sf untuk peluang peristiwa.
  • Interval kredibel 95% untuk 12/40 konversi adalah 0,181-0,455; peluang konversi sebenarnya melebihi 0,35 adalah 0,276 — pernyataan bersyarat data yang bisa langsung dipakai untuk keputusan.
  • Pembaruan bertahap memakai posterior lama sebagai prior baru; hasil dua pekan tiba di Beta(13, 29) yang identik dengan perhitungan sekali jalan, tetapi cukup menyimpan dua angka.
  • Interval kredibel menjawab “seberapa yakin saya tentang parameter, diberikan data ini”; interval kepercayaan frekuensistik menjawab tentang perilaku prosedur bila eksperimen diulang — nilai mirip, makna berbeda.

Distribusi keyakinan adalah satu wajah ketidakpastian. Bab berikutnya memperluasnya ke sisi prediksi: membedakan ketidakpastian model terhadap data dan ketidakpastian bawaan masalah, lalu melaporkan keduanya lewat interval prediksi — kita masuk ke Uncertainty Quantification .

Referensi: