Two variables share one probability table. Read across a row and you get one story; read down a column and you get another; ignore the table's structure entirely and you get a third. Which one answers your actual question?
| A \ B | P(A) | |||
|---|---|---|---|---|
| 0.20 | 0.10 | 0.20 | 0.50 | |
| 0.10 | 0.30 | 0.10 | 0.50 | |
| P(B) | 0.30 | 0.40 | 0.30 | 1.00 |
Click a row (A) or column (B) header to slice the table.
Click a row header () or a column header (). The cells you picked light up, and the readout below shows what's left once you renormalize just that slice — the conditional distribution living inside the joint table all along.
A joint distribution assigns a probability to every combination of outcomes at once. Summing a whole row or column marginalizes out the other variable:
- — the joint probability table: one number per (row, column) combination.
- — the marginal probability of , found by summing across every value of .
A conditional distribution slices out one row or column and renormalizes it so it sums to 1 again:
- — the distribution over , restricted to the world where is already known.
- Marginals are just row and column sums
No new arithmetic — marginalizing is exactly the sum you'd take to check a row or column adds up.
- Conditioning is slicing, then renormalizing
Fix one variable's value, take the sub-table that survives, and divide every entry by whatever that sub-table currently sums to. That division is the entire difference between a joint slice and a conditional distribution.
- Conditioning on a row and conditioning on a column don't rhyme
divides by a row sum; divides by a column sum. Nothing forces these two conditionals to look alike, even though they come from the same table.
| A \ B | P(A) | |||
|---|---|---|---|---|
| 0.20 | 0.10 | 0.20 | 0.50 | |
| 0.10 | 0.30 | 0.10 | 0.50 | |
| P(B) | 0.30 | 0.40 | 0.30 | 1.00 |
P(A=a1, B=b1) = 0.20 — the joint cell itself.
P(B=b1 | A=a1) = 0.400 — slice by row, normalize by P(A=a1) = 0.50.
P(A=a1 | B=b1) = 0.667 — slice by column, normalize by P(B=b1) = 0.30.
Pick any cell: the joint value is just that one entry, but the two conditionals built from it divide by completely different denominators — a row sum for , a column sum for — which is exactly why in general.
- Read off the joint table
- Row : , , — sums to
- Row : , , — sums to
- Marginalize to get P(b3)
Sum column down both rows: .
- Condition on b3 to get P(a2 | b3)
Notice this is not the same as — seeing actually shifted the belief about .
From the table below, compute P(A = a2 | B = b3).
| A \ B | b1 | b2 | b3 | P(A) |
|---|---|---|---|---|
| a1 | 0.20 | 0.10 | 0.20 | 0.50 |
| a2 | 0.10 | 0.30 | 0.10 | 0.50 |
| P(B) | 0.30 | 0.40 | 0.30 | 1.00 |
A joint table quietly contains every marginal and every conditional distribution over its variables — sum a direction to marginalize, slice-and-renormalize to condition. Nearly every "what does the model actually believe, given what it just observed" question in probabilistic ML reduces to one of these two operations.