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:
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.
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:
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.276Mari kita telaah baris-baris pentingnya:
- 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. - 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”. - 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:
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:
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.455Bedah hasilnya:
- Baris 8-10 (pembaruan berantai):
alphadanbetabertambah sesuai data tiap pekan — posterior lama menjadi prior baru tanpa perlu menyimpan data mentah, cukup dua angka per parameter. - 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%).
- 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.betamenyediakanppfuntuk interval kredibel dansfuntuk 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: