---
title: "Conditional Probability & Bayes' Theorem"
subtitle: "Updating Beliefs with Evidence"
format:
html:
toc: true
toc-depth: 3
code-fold: false
---
::: {.callout-note title="Why This Matters for Your Work"}
Bayes' theorem bukan hanya teorema probabilitas — ini adalah **model dari cara kita berpikir secara rasional** di bawah uncertainty.
Dalam pekerjaan sehari-hari kamu:
- **Bayesian statistics**: seluruh framework-nya berdiri di atas $P(\theta | \text{data}) \propto P(\text{data}|\theta) \cdot P(\theta)$
- **Naive Bayes classifier**: asumsi conditional independence memungkinkan komputasi yang efisien
- **Posterior inference**: di variational autoencoders, MCMC, dan probabilistic programming
- **Causal inference**: conditioning dan do-calculus bekerja di atas conditional probability
- **Model selection**: Bayes factors membandingkan $P(\text{data}|M_1)$ vs $P(\text{data}|M_2)$
Conditional probability juga adalah framework untuk memahami **dependence** — kenapa kovariat berubah informasi tentang outcome, kenapa conditioning on collider itu berbahaya, kenapa spurious correlations muncul.
:::
---
## 1. Conditional Probability
### Definisi
**Conditional probability** dari $A$ given $B$ (probabilitas $A$ terjadi, diketahui bahwa $B$ sudah terjadi):
::: {.callout-important title="Definisi: Conditional Probability"}
$$P(A|B) = \frac{P(A \cap B)}{P(B)}, \qquad \text{untuk } P(B) > 0$$
:::
**Interpretasi**: Kita "restrict" sample space kita ke $B$ (karena kita tahu $B$ terjadi), lalu ukur proporsi di mana $A$ juga terjadi.
Properti: $P(\cdot | B)$ adalah probability measure yang valid — memenuhi semua Kolmogorov axioms di sample space yang dibatasi $B$.
**Contoh sederhana**: Lempar dua dadu. $B$ = "jumlah genap", $A$ = "dadu pertama = 3". Tanpa conditioning, $P(A) = 6/36 = 1/6$. Dengan conditioning:
- $P(B) = 18/36 = 1/2$ (dari 36 kemungkinan, 18 berjumlah genap)
- $P(A \cap B)$: dadu pertama = 3, jumlah genap → dadu kedua harus ganjil (1, 3, 5) → 3/36
- $P(A|B) = (3/36)/(18/36) = 3/18 = 1/6$
Di sini $A$ dan $B$ ternyata independent (P(A|B) = P(A)). Tapi tidak selalu begitu.
### Multiplication Rule
Dari definisi conditional probability:
$$\boxed{P(A \cap B) = P(A|B) \cdot P(B) = P(B|A) \cdot P(A)}$$
### Chain Rule (General Multiplication Rule)
Untuk $n$ events:
$$P(A_1 \cap A_2 \cap \cdots \cap A_n) = P(A_1) \cdot P(A_2|A_1) \cdot P(A_3|A_1, A_2) \cdots P(A_n|A_1, \ldots, A_{n-1})$$
**Contoh**: Dalam deck 52 kartu, tarik 3 kartu tanpa replacement. Probabilitas semua As?
$$P(\text{A}_1 \cap \text{A}_2 \cap \text{A}_3) = \frac{4}{52} \cdot \frac{3}{51} \cdot \frac{2}{50} = \frac{24}{132{,}600} \approx 0.000181$$
---
## 2. Independence
### Definisi
::: {.callout-important title="Definisi: Independence"}
Events $A$ dan $B$ dikatakan **independent** (ditulis $A \perp B$) jika salah satu dari kondisi berikut (semuanya ekuivalen):
$$A \perp B \iff P(A \cap B) = P(A) \cdot P(B)$$
$$\iff P(A|B) = P(A) \quad [\text{jika } P(B) > 0]$$
$$\iff P(B|A) = P(B) \quad [\text{jika } P(A) > 0]$$
Artinya: mengetahui $B$ tidak mengubah probabilitas $A$, dan sebaliknya.
:::
**Perhatian penting**: Independence adalah *property of events*, bukan property dari outcomes itu sendiri. Dua events bisa independent atau dependent tergantung probability model yang kita pakai.
### Pairwise vs. Mutual Independence
Ini adalah jebakan yang sering dilupakan!
Untuk tiga events $A$, $B$, $C$:
- **Pairwise independence**: $A \perp B$, $A \perp C$, $B \perp C$ (3 kondisi)
- **Mutual independence**: $P(A \cap B \cap C) = P(A)P(B)P(C)$, PLUS semua pairwise (4 kondisi total)
**Pairwise independence TIDAK menjamin mutual independence!**
*Contoh klasik*: Lempar 2 koin. $A$ = "koin 1 Heads", $B$ = "koin 2 Heads", $C$ = "keduanya sama". Bisa ditunjukkan: $A \perp B$, $A \perp C$, $B \perp C$, tapi $P(A \cap B \cap C) = 1/4 \neq P(A)P(B)P(C) = 1/8$. Mereka pairwise independent tapi NOT mutually independent.
### Conditional Independence
::: {.callout-important title="Definisi: Conditional Independence"}
$A$ dan $B$ **conditionally independent given** $C$ (ditulis $A \perp B | C$) jika:
$$P(A \cap B | C) = P(A|C) \cdot P(B|C)$$
Ekuivalen: $P(A|B,C) = P(A|C)$ — mengetahui $B$ tidak menambah informasi tentang $A$ jika kita sudah tahu $C$.
:::
**Conditional independence dan marginal independence bisa berlawanan!**
- $A$ dan $B$ mungkin marginally dependent, tapi conditionally independent given $C$ (conditioning "explains away" dependence)
- $A$ dan $B$ mungkin marginally independent, tapi conditionally dependent given $C$ (conditioning on collider membuat dependence!)
::: {.callout-caution title="Connection: Naive Bayes Classifier"}
**Naive Bayes** mengasumsikan semua features $X_1, \ldots, X_p$ **conditionally independent** given class $Y$:
$$P(X_1, \ldots, X_p | Y = c) = \prod_{j=1}^p P(X_j | Y = c)$$
Asumsi ini "naive" karena dalam praktik features sering saling correlated. Tapi ini membuat komputasi tractable dan sering bekerja surprisingly well dalam practice.
Dengan Bayes' theorem:
$$P(Y = c | X_1, \ldots, X_p) \propto P(Y = c) \prod_{j=1}^p P(X_j | Y = c)$$
:::
---
## 3. Law of Total Probability
Jika $B_1, B_2, \ldots, B_n$ adalah **partisi** dari $\Omega$ (pairwise disjoint, union = $\Omega$), maka untuk event $A$ apapun:
::: {.callout-important title="Definisi: Law of Total Probability"}
$$P(A) = \sum_{i=1}^n P(A|B_i) \cdot P(B_i)$$
:::
**Intuisi**: "Decompose" event $A$ berdasarkan partition. $A$ terjadi melalui salah satu "path" $B_i$, dan kita weight setiap path dengan probabilitasnya.
**Contoh**: Tes diagnostik. $D$ = "punya penyakit", $D^c$ = "tidak punya penyakit". Mereka membentuk partisi. Event $+$ = "tes positif":
$$P(+) = P(+|D)P(D) + P(+|D^c)P(D^c)$$
Ini adalah **total probability of a positive test**, menggabungkan true positives dan false positives.
---
## 4. Bayes' Theorem
Ini adalah salah satu hasil paling profound dalam matematika dan ilmu pengetahuan:
::: {.callout-important title="Definisi: Bayes' Theorem"}
Jika $B_1, \ldots, B_n$ partisi $\Omega$ dan $P(A) > 0$:
$$\boxed{P(B_i|A) = \frac{P(A|B_i) \cdot P(B_i)}{\sum_j P(A|B_j) P(B_j)} = \frac{P(A|B_i) \cdot P(B_i)}{P(A)}}$$
Komponen:
- **Prior** $P(B_i)$: belief kita tentang $B_i$ *sebelum* melihat data
- **Likelihood** $P(A|B_i)$: probabilitas data $A$ terjadi, given hypothesis $B_i$
- **Posterior** $P(B_i|A)$: belief kita tentang $B_i$ *setelah* melihat data
- **Marginal likelihood** $P(A)$: normalizing constant, juga disebut "evidence"
:::
**Cara ingat**: Posterior $\propto$ Likelihood $\times$ Prior. (Normalizing constant akan "fix" proporsinya menjadi probabilitas yang valid.)
---
## 5. Worked Example 1: Medical Diagnostic Test
**Skenario**: Kamu sedang mengevaluasi sebuah tes diagnostik untuk penyakit langka.
**Diketahui**:
- $P(D) = 0.01$ — prevalensi penyakit di populasi (prior, base rate)
- $P(+|D) = 0.95$ — **sensitivity**: jika punya penyakit, 95% tes positif
- $P(+|D^c) = 0.05$ — **false positive rate**: jika tidak punya penyakit, 5% tes positif (jadi specificity = 95%)
**Pertanyaan**: Jika seseorang tes **positif**, berapa probabilitas dia benar-benar punya penyakit?
**Solusi dengan Bayes' theorem**:
Step 1: Hitung marginal probability of positive test (Law of Total Probability):
$$P(+) = P(+|D)P(D) + P(+|D^c)P(D^c)$$
$$= 0.95 \times 0.01 + 0.05 \times 0.99 = 0.0095 + 0.0495 = 0.059$$
Step 2: Apply Bayes' theorem:
$$P(D|+) = \frac{P(+|D)P(D)}{P(+)} = \frac{0.95 \times 0.01}{0.059} = \frac{0.0095}{0.059} \approx 0.161$$
**Hanya 16.1% probabilitas punya penyakit, meskipun tes positif!**
Ini counterintuitive bagi banyak orang. Kenapa? Karena **base rate sangat rendah** (1%), dan **false positives** jauh lebih banyak dari true positives secara absolut.
```{r}
#| label: bayes-medical
#| code-summary: "R: Bayes theorem — medical test"
p_disease <- 0.01
p_pos_given_disease <- 0.95 # sensitivity
p_pos_given_no_disease <- 0.05 # false positive rate
p_no_disease <- 1 - p_disease
# Law of total probability
p_pos <- p_pos_given_disease * p_disease +
p_pos_given_no_disease * p_no_disease
# Bayes' theorem
p_disease_given_pos <- (p_pos_given_disease * p_disease) / p_pos
cat("P(Disease | Positive test):", round(p_disease_given_pos, 4), "\n")
cat("Ini berarti dari 1000 orang yang tes positif,")
cat("\nhanya sekitar", round(p_disease_given_pos * 1000), "yang benar-benar sakit!\n")
# Visualisasi: Natural frequency approach
cat("\n--- Natural Frequency Approach (per 10,000 orang) ---\n")
n <- 10000
n_disease <- n * p_disease # 100 orang sakit
n_no_disease <- n * p_no_disease # 9,900 orang sehat
tp <- n_disease * p_pos_given_disease # true positives: 95
fp <- n_no_disease * p_pos_given_no_disease # false positives: 495
cat("Sakit DAN tes positif (True Positive):", tp, "\n")
cat("Tidak sakit DAN tes positif (False Positive):", fp, "\n")
cat("Total yang tes positif:", tp + fp, "\n")
cat("PPV (Positive Predictive Value):", round(tp/(tp+fp), 4))
```
**Tabel kontigensi** (per 10,000 orang):
| | Tes Positif | Tes Negatif | Total |
|--|------------|------------|-------|
| **Punya Penyakit** | 95 (TP) | 5 (FN) | 100 |
| **Tidak Punya** | 495 (FP) | 9,405 (TN) | 9,900 |
| **Total** | 590 | 9,410 | 10,000 |
**Pelajaran**: Saat base rate rendah, bahkan tes dengan sensitivity dan specificity tinggi punya **Positive Predictive Value (PPV) yang rendah**. Ini relevan untuk understanding false discovery rates dalam statistical testing!
---
## 6. Worked Example 2: Bayesian Update dengan Beta Prior
**Skenario**: Kamu ingin mengestimasi probabilitas $\theta$ bahwa sebuah koin memberikan kepala. Kamu punya **prior** $\theta \sim \text{Beta}(2, 2)$ (slight preference for fair coin, tapi tidak terlalu strong).
Setelah observe 8 heads dari 10 flips, bagaimana belief kamu berubah?
**Model**:
- Prior: $\theta \sim \text{Beta}(\alpha_0, \beta_0) = \text{Beta}(2, 2)$
- Likelihood: Data $X|\theta \sim \text{Binomial}(10, \theta)$, observe $X = 8$
**Bayesian update** (Beta-Binomial conjugacy):
$$P(\theta | X=8) \propto P(X=8|\theta) \cdot P(\theta)$$
$$\propto \theta^8 (1-\theta)^2 \cdot \theta^{2-1}(1-\theta)^{2-1}$$
$$= \theta^{8+2-1}(1-\theta)^{2+2-1} = \theta^{9}(1-\theta)^{3}$$
Ini adalah kernel dari $\text{Beta}(10, 4)$! Jadi:
$$\theta | X=8 \sim \text{Beta}(\alpha_0 + 8, \beta_0 + 2) = \text{Beta}(10, 4)$$
**Update rule**: $\alpha_{\text{posterior}} = \alpha_{\text{prior}} + \text{heads}$, $\beta_{\text{posterior}} = \beta_{\text{prior}} + \text{tails}$.
```{r}
#| label: bayesian-update
#| code-summary: "R: Bayesian update dengan Beta-Binomial"
theta <- seq(0, 1, length.out=1000)
# Prior: Beta(2,2)
prior <- dbeta(theta, 2, 2)
# Likelihood: Binomial(10, theta), observe 8 heads
# (unnormalized)
likelihood <- dbinom(8, size=10, prob=theta)
# Posterior: Beta(10,4) -- conjugate update
posterior <- dbeta(theta, 10, 4)
# Plot
plot(theta, posterior, type='l', col='#7C3AED', lwd=2.5,
xlab=expression(theta), ylab="Density",
main="Bayesian Update: Beta-Binomial",
ylim=c(0, max(posterior)*1.1))
lines(theta, prior / max(prior) * max(posterior) * 0.6,
col='gray60', lwd=2, lty=2) # scaled for visibility
legend("topright",
legend=c("Prior: Beta(2,2)", "Posterior: Beta(10,4)"),
col=c("gray60", "#7C3AED"), lwd=2, lty=c(2,1))
# Posterior statistics
alpha_post <- 10; beta_post <- 4
cat("Posterior mean:", alpha_post / (alpha_post + beta_post), "\n")
cat("Posterior mode (MAP):", (alpha_post-1)/(alpha_post+beta_post-2), "\n")
cat("95% Credible Interval:",
round(qbeta(0.025, alpha_post, beta_post), 3), "to",
round(qbeta(0.975, alpha_post, beta_post), 3))
```
**Posterior mean** = $10/(10+4) = 0.714$ — berada antara prior mean $(2/4 = 0.5)$ dan MLE $(8/10 = 0.8)$.
Ini adalah **shrinkage**: Bayesian estimate di-shrink ke arah prior. Semakin kuat prior (relative to data), semakin besar shrinkage.
---
::: {.callout-caution title="Connection: Bayesian Regression"}
Dalam **Bayesian linear regression**:
$$y | X, \beta \sim \mathcal{N}(X\beta, \sigma^2 I) \quad \text{(likelihood)}$$
$$\beta \sim \mathcal{N}(0, \tau^2 I) \quad \text{(prior)}$$
Posterior adalah:
$$\beta | y, X \propto \exp\left(-\frac{1}{2\sigma^2}\|y - X\beta\|^2\right) \exp\left(-\frac{1}{2\tau^2}\|\beta\|^2\right)$$
MAP estimate (mode of posterior) adalah:
$$\hat{\beta}_{\text{MAP}} = \arg\max_\beta \left[-\frac{1}{2\sigma^2}\|y - X\beta\|^2 - \frac{1}{2\tau^2}\|\beta\|^2\right]$$
Ini identik dengan **Ridge regression**! Regularization term $\lambda\|\beta\|^2$ adalah log-prior, dan $\lambda = \sigma^2/\tau^2$.
Jadi Ridge regression dapat diinterpretasikan sebagai MAP estimation dengan Gaussian prior pada coefficients.
:::
---
::: {.callout-warning title="Practice Problems" collapse="true"}
**Soal 1 — Drug Test**: Sebuah perusahaan menguji karyawan untuk drug use. Drug use rate di populasi = 5%. Test sensitivity = 0.90, specificity = 0.95. Seorang karyawan tes positif. Berapa probabilitas dia memang pengguna narkoba?
**Solusi 1**:
- $P(D) = 0.05$, $P(+|D) = 0.90$, $P(+|D^c) = 0.05$
- $P(+) = 0.90(0.05) + 0.05(0.95) = 0.045 + 0.0475 = 0.0925$
- $P(D|+) = 0.045/0.0925 \approx 0.486$
**Hanya 48.6%!** Bahkan dengan tes yang cukup akurat, karena base rate rendah, hampir setengah dari positif adalah false positive.
---
**Soal 2 — Sequential Updating**: Seseorang tes positif di Soal 1. Mereka melakukan tes kedua (independent) dan juga positif. Berapa $P(D|\text{dua tes positif})$?
**Solusi 2**: Gunakan posterior dari Soal 1 sebagai prior baru!
- Prior (setelah tes 1): $P(D) = 0.486$, $P(D^c) = 0.514$
- $P(++|D) = P(+|D)^2 = 0.81$ (jika independent)
Atau langsung:
- $P(D|++)\propto P(++|D)P(D) = 0.90^2 \times 0.05 = 0.0405$
- $P(D^c|++)\propto P(++|D^c)P(D^c) = 0.05^2 \times 0.95 = 0.002375$
- Posterior: $0.0405/(0.0405+0.002375) \approx 0.944$
Dua tes positif meningkatkan probabilitas dari 48.6% ke 94.4%!
---
**Soal 3 — Spam Filter**: Email masuk. Data training: 30% email adalah spam. Di antara spam, "FREE" muncul di 60% kasus. Di antara non-spam, "FREE" muncul di 4% kasus. Email baru berisi "FREE". Berapa P(spam | "FREE")?
**Solusi 3**:
- $P(S) = 0.30$, $P(\text{FREE}|S) = 0.60$, $P(\text{FREE}|S^c) = 0.04$
- $P(\text{FREE}) = 0.60(0.30) + 0.04(0.70) = 0.18 + 0.028 = 0.208$
- $P(S|\text{FREE}) = 0.18/0.208 \approx 0.865$
86.5% probabilitas spam! (Dan Naive Bayes classifier akan multiply likelihoods dari multiple words.)
:::
---
## Ringkasan
| Konsep | Formula |
|--------|---------|
| Conditional probability | $P(A\|B) = P(A \cap B)/P(B)$ |
| Multiplication rule | $P(A \cap B) = P(A\|B)P(B)$ |
| Independence | $P(A \cap B) = P(A)P(B)$ |
| Conditional independence | $P(A \cap B\|C) = P(A\|C)P(B\|C)$ |
| Law of total probability | $P(A) = \sum_i P(A\|B_i)P(B_i)$ |
| Bayes' theorem | $P(B\|A) = P(A\|B)P(B)/P(A)$ |
**Insight kunci**: Bayes' theorem memformalisasi bagaimana kita seharusnya mengupdate beliefs saat melihat evidence. Prior $\times$ Likelihood $\propto$ Posterior.
**Next**: [Random Variables →](03-random-variables.qmd)