MODULE 04 — Joint, Marginal & Conditional Distributions

兩個變數一起看:聯合分布

玩完這關,你手上會多一張「同時描述兩個欄位」的分布圖 —— 而且你會知道獨立到底是什麼意思(不是 cov = 0)、迴歸線其實是一串條件平均、以及機率統計 05 關那顆橢圓是從哪裡冒出來的。

① 這關在解什麼問題

上一關給了你什麼 機率統計 03 ⑥03 關那張 C 第一次派上用場, 做法是把兩欄壓成一個數字wTCw 進去四個統計量、出來一個風險。 這一關反過來走 —— 不壓了,把那兩欄攤開並排看。 攤開之後 C 描述的東西還是同一個橢圓形狀, 但它會換上一個新身分:每一格填的不是「有幾筆」,是「本來該有多少機率」。

哪一關用到了它、卻沒教

機率統計 05 關整關都在玩一顆橢圓,而那顆橢圓的正式身分是「二維常態分布的等高線」 —— 可是這份教材從頭到尾沒有教過「二維分布」是什麼東西。你看到的一直是一堆靜態的點, 然後機率統計 05 關突然開始講「機率密度」「1σ 涵蓋率」「這個點有多罕見」。中間那一層被跳過了。

還有一個更早的欠款:03 關講過「cov = 0 不等於獨立」, 但它只丟了一條拋物線當反例,從來沒告訴你「獨立」的定義是什麼。 用一個沒定義過的詞去否定另一個東西,等於什麼都沒說。

這一關把這兩筆都補掉。

先講具體的困擾。上一關做的事是把兩個變數壓成一個數字: 兩檔股票的報酬加權相加,變成投資組合的一個報酬;一句話複述就是 「Z = w1X + w2Y 的變異數要多算一項 2w1w2cov(X, Y)」。 很好用,但有一整類問題它答不了 —— 因為那些問題不能加

這個人 175 公分、45 公斤,奇怪嗎?

  • 單看身高:175 公分很正常,一點都不奇怪。
  • 單看體重:45 公斤也很正常,班上一半的人都在那附近。
  • 但這兩個數字湊在同一個人身上就非常奇怪 —— BMI 14.7,這是要送醫的。

你手上那兩張「只看一欄」的分布圖,物理上不可能回答這個問題。 因為「奇怪」這件事不住在身高裡、也不住在體重裡,它住在兩欄的搭配方式裡。 你把它們相加也救不了:175 + 45 = 220,這個數字跟一個 160/60 的人(220)長得一模一樣。

所以你需要一個新東西:一張同時描述兩個欄位的分布。 它要能回答「(175, 45) 這一格裡,本來應該有多少人」。這張東西叫聯合分布(joint distribution), 是這一關的主角。

這一關的六步路線

③ 聯合分布把直方圖從一維推到二維,順便認識邊際分布
④ 獨立給出正式定義,並把 03 關那個坑升級成一張看得見的圖。
⑤ 條件機率用一張 2×2 的事件表把「已知」兩個字講定,並拆掉 P(A|B) = P(B|A) 這個錯覺。
⑥ 貝氏定理把問題反過來問:檢驗陽性之後,真的有病的機率是多少。
⑦ 條件分布在圖上切一刀,然後你會發現迴歸線一直都在那裡
⑧ 等高線把二維常態畫成地形圖 —— 那圈同心橢圓就是機率統計 05 關的主角。

依賴:機率統計 02 關的機率密度(一維常態長什麼樣、密度不是機率、面積才是機率)與 機率統計 03 關的 cov 交叉項(兩個變數一起動的時候會多出一項)。 這兩關的結論我在需要的地方會用一句話複述,不必先回去讀完。

② 先把這一頁會出現的符號講定

下面每一個都會出現在圖上、按鈕上、或讀數盤裡。看到不認得的就翻回來。

符號怎麼唸它是什麼
X Y大寫 X、大寫 Y 兩個隨機變數。這一頁 X = 身高(cm)、Y = 體重(kg)。 大寫是「還沒抽出來的那個欄位」,小寫 xy 是「抽出來之後的某一個具體數值」。
P(x, y)P of x comma y 聯合分布。「身高落在 x 這一格而且體重落在 y 這一格」的機率。 畫面上就是熱力圖某一格的顏色深淺。這一頁一律用格子(bin)來估:格子裡的人數 ÷ 總人數。
P(x) P(y)P of x、P of y 邊際分布(marginal)。只看一個欄位時看到的分布。 數值上 P(x) = Σy P(x, y),就是「把熱力圖的一整行加起來」。 畫面上是熱力圖下方()與左側()那兩排長條。
P(x)·P(y)外積 / outer product 把兩條邊際分布相乘拼回一張二維表。它是「假如兩欄真的獨立,聯合分布應該長的樣子」。 的中間那張圖就是它。
Δdelta Δ = P(x, y) − P(x)·P(y),實際的聯合分布減掉「假裝獨立」的版本。 右邊那張差圖畫的就是它。全白 ⇒ 獨立。
TVTotal Variation 把整張差圖的絕對值加起來再除以 2:TV = ½ Σ|Δ|。 一個 0% ~ 100% 的數字,用來回答「這張差圖到底有多不白」。0% = 完全獨立。
A B事件 A、事件 B 事件:一件「發生了 / 沒發生」的事,例如「今天下雨」「檢驗陽性」。 只有 用它 —— 那兩節談的是「有沒有發生」,其餘各節談的是「落在哪一格」。
A ∩ BA 交 B 兩件事同時發生 就是「而且」。
P(A | B)P of A given B 條件機率已知 B 發生了,A 發生的機率。定義是 P(A ∩ B) / P(B) —— 把分母從「整個世界」換成「B 這個小世界」。豎線 | 唸「已知」,不是除號
先驗 後驗prior、posterior 的主角:看到證據之前看到證據之後的機率。 例:先驗 = 隨便一個人有病的機率;後驗 = 這個人驗出陽性之後,有病的機率。
敏感度 特異度sensitivity、specificity 一支檢驗的兩張成績單()。敏感度 = P(陽性 | 有病), 特異度 = P(陰性 | 沒病)兩個都是「已知病情」問「檢驗結果」,方向跟你要的相反。
E[Y | X = x]expected Y given X equals x 條件平均:把身高固定在 x 的那一群人,他們體重的平均。 下方那條大字讀數就是它。豎線 | 唸「已知」。
μx μymu x、mu y 兩欄各自的平均。這一頁 μx = 167.00 cm、μy = 59.00 kg (直接沿用 05 關那 12 個人算出來的)。
σx σysigma x、sigma y 兩欄各自的標準差(散開幅度)。 的前兩根滑桿直接控它。
ρrho(讀「若」) 相關係數,−1 ~ +1。就是 03 關那個 r, 只是講「分布」時習慣用希臘字母 ρ、講「手上這批資料」時習慣用 rρ = cov(X, Y) / (σxσy)
n Bn、B n = 模擬出來幾筆資料(這一頁固定 2000)。 B = 每一邊切成幾格(滑桿可調,預設 12,所以熱力圖是 12 × 12 = 144 格)。
seed種子 亂數的起點。同一個 seed ⇒ 每次重整看到的數字一模一樣,所以我在文字裡引用的數值不會說謊。 按「再抽一次」才會換 seed,換完畫面上會告訴你新的是幾號。

③ 聯合分布:把直方圖從一維推到二維

從你已經會的東西開始:直方圖。機率統計 02 關做過一次 —— 把一整欄數字切成幾格,數每一格裡有幾個人,畫成長條。一句話複述那一關: 格子夠多、資料夠多的時候,那排長條的輪廓會逼近一條平滑的曲線,那條曲線就是機率密度。

二維的做法一模一樣,只是格子從「一條線上的區間」變成「平面上的方塊」:

最小的例子(先只用 4 個格子)。假設只有 6 個人,身高只分「高 / 矮」,體重只分「重 / 輕」:

體重輕體重重這一列加總
身高矮303
身高高033
這一行加總336

中間那 4 格(3 / 0 / 0 / 3)就是聯合分布;最右邊那一欄與最下面那一列就是邊際分布。 「邊際」這個名字的由來就是這麼樸素 —— 它被寫在表格的邊上(margin)。

而這張表已經藏了整關的重點:邊際告訴你「矮的 3 個、高的 3 個、輕的 3 個、重的 3 個」, 但它完全沒告訴你「矮的都輕、高的都重」。那件事只寫在中間那 4 格裡。

下面把 2 × 2 放大成 B × B,資料換成 05 關那 12 個人的身高體重 —— 只是 12 個點畫熱力圖太稀疏了, 所以我拿那 12 人算出來的 μσρ 當種子,用固定 seed 模擬出 2000 筆同樣性格的人。合成資料,不是真人。

這張圖在幹嘛

你會看到什麼:中間那片方格是青色熱力圖 —— 顏色越深=落在那一格的人越多,白色=沒人。下方那排藍色長條身高的邊際分布 (把熱力圖每一直行加起來),左側那排橘色長條體重的邊際分布(把每一橫列加起來)。

你可以動什麼:三顆「①②③」按鈕一步一步把圖疊出來; 「相關 / 洗牌」兩顆按鈕切換兩份邊際分布完全相同的資料; 滑桿改格子數;「顯示原始 2000 點」把散點疊回去;「再抽一次」換 seed。

要看出什麼:切到「洗牌」,上下兩排長條一根都不會動(讀數盤會告訴你差異是 0 根), 可是中間那片熱力圖從一條斜帶變成一團圓球。 結論就一句:邊際分布一樣的兩張聯合分布,中間可以完全不同。

聯合分布 P(x, y) 身高邊際 P(x) 體重邊際 P(y) 顏色越深=人越多 虛線階梯=另一份資料(另一顆按鈕)的邊際,拿來直接比對

熱力圖的座標是格子編號(第幾格),刻度上標的是那一格的起點值。這樣每一格都是正方形,看得出對角線。 兩排長條都是從資料格往外長出去:身高那排往下方基線上長、體重那排往左長。

資料
現在畫面上這張圖在說
所以這一段的結論是

邊際分布 = 只看一個欄位時看到的東西 = 把熱力圖的一整行(或一整列)加起來。 加總這個動作會把「另一個欄位是多少」這件事整個壓掉,所以邊際是有損的

而「洗牌」那顆按鈕證明了損失有多嚴重:兩份資料的兩條邊際分布一根長條都不差 (因為洗牌只是把體重那一欄重新配對,那一欄的數字一個都沒變), 但一份是「高的人重」、另一份是「高矮胖瘦隨機亂配」。 從兩條邊際分布,你永遠無法反推中間長什麼樣。

這句話值得再說一次,因為它是下一節的全部:如果邊際不足以決定聯合,那「差在哪裡」就是一個可以量的東西。 那個差,名字叫「不獨立」。

④ 獨立的正式定義:兩條邊際的外積

先給定義,然後我會用一整張圖把它變成看得見的東西。

X 與 Y 獨立 ⟺ P(x, y) = P(x) · P(y)  對每一格 (x, y) 都成立 左邊:實際落在 (x, y) 這一格的比例。
右邊:身高落在 x 的比例 乘上 體重落在 y 的比例。
「對每一格都成立」是重點 —— 有一格不成立,就不獨立。

白話版:知道 x 完全不改變你對 y 的看法。

為什麼「相乘」就是獨立?用最小的例子想:丟一枚硬幣、擲一顆骰子。

  • 硬幣正面的機率 ½,骰子擲出 6 的機率
  • 「正面而且 6」的機率是 ½ × ⅙ = 1/12。你會直接相乘,因為硬幣不知道骰子的事
  • 反過來,如果我告訴你「這兩個東西之間有一條線」—— 例如骰子是被硬幣的結果換掉的 —— 你就不敢相乘了,你會想先問「那硬幣是正面還是反面?」

所以「能不能直接相乘」就是獨立的操作型定義。而這給了我們一個超好用的檢查法: 把兩條邊際分布相乘,拼出一張「假如真的獨立會長的樣子」,再跟實際的聯合分布相減。 差出來的東西如果全是 0,就是獨立;差出來有花紋,那些花紋就是「不獨立」長什麼樣。

這張圖在幹嘛

你會看到什麼:三張同樣大小的熱力圖。 (a) 青色=實際的聯合分布 P(x, y)(b) 綠色=把 (a) 的兩條邊際拿出來相乘拼回去的外積 P(x)·P(y), 也就是「假如獨立,應該長這樣」。 (c) =兩者相減:=實際比獨立版多比獨立版少、白=剛好一樣。

你可以動什麼:三顆按鈕換三份資料(相關的身高體重 / 洗牌過的身高體重 / 03 關那條拋物線); 滑桿改格子數;「再抽一次」換 seed。

要看出什麼:獨立時 (c) 幾乎全白(剩下的一點雜色是抽樣雜訊,不是結構); 相關時 (c) 會出現一條對角紋 —— 左下和右上紅、左上和右下藍。 而拋物線那組的 cov 幾乎是 0,(c) 卻明顯不白

(a) 實際

聯合分布 P(x, y)

2000 筆資料真的落在哪裡。

(b) 模型

外積 P(x)·P(y)

只用兩條邊際重建的版本 —— 假如獨立,該長這樣。

(c) 差

Δ = (a) − (b)

獨立就全白。有花紋,花紋就是關係本人。

(a) 實際 (b) 外積=獨立模型 (c) 實際比模型 (c) 實際比模型 (c) 的白色=兩邊剛好相等

TV(總變異距離)= 把整張差圖的絕對值加起來除以 2。 0% 就是完全獨立;它同時也是「這兩欄的關係有多強」的一個不挑形狀的度量。
三張圖共用同一個色階:滿格=(a) 裡最濃那一格的機率。所以 (c) 的濃淡可以直接跟 (a) 比 ——「差多少 vs 本來有多少」一眼就看得出來。

現在畫面上這三張圖在說
把 03 關那個坑升級成正式版

03 關的反例 ① 是一條拋物線(施肥太少長不好、施太多把根燒壞), 當時的結論是「cov = 0.00,可是 y 完全由 x 決定」。你按下第三顆按鈕,那條拋物線就在 (a) 裡。

現在你有能力把那句話講完整了:

  • cov 幾乎是 0、r 幾乎是 0 —— 這兩個數字說的是「沒有直線傾向」,這句話是真的
  • 但 (c) 那張差圖明顯不是白的 —— 紅色沿著那條拱形排開 (中間高、兩端低,正是拋物線本人的形狀),其餘一整片是藍的。 這說的是「知道施肥量,你對收成的看法會大幅改變」,所以統計上不獨立
  • 兩件事不衝突:cov 只有一把尺,而那把尺只量直線。 拋物線在那把尺上量到 0,不是因為沒關係,是因為那把尺量不到這種關係。

正確的邏輯方向只有一邊:獨立 ⇒ cov = 0;cov = 0 ⇏ 獨立。 而外積差圖是那個「⇏」的具體長相 —— 你現在可以指著它說「就是這些紅藍花紋,cov 看不見」。

所以這一段的結論是

獨立的定義是 P(x, y) = P(x)·P(y),白話是「知道 x 完全不改變你對 y 的看法」。 檢查方法就是把兩條邊際相乘、跟實際相減,看剩下什麼。

而「相關」只是「不獨立」的其中一種長相 —— 對角紋那一種。 拋物線那種對稱的不獨立,cov 會誠實地回報 0,因為它真的沒有直線傾向。

⑤ 條件機率的事件版:把世界縮小

下一節要在熱力圖上切一刀。切之前,先用最小的版本把「條件」這兩個字講定 —— 小到只有「發生 / 沒發生」兩種結果,連格子都不用切。

先講一件你每天都在做的判斷:出門要不要帶傘。 你不會去查「一年裡有幾天下雨」,你會先看窗外。看窗外這個動作, 就是把「一整年」縮小成「早上像今天這樣的那些天」, 然後在縮小後的世界裡重新數一次下雨的比例。那個比例就叫條件機率

P(A | B) = P(A ∩ B) / P(B) 唸「已知 B 的情況下,A 的機率」。豎線 | 唸「已知」,不是除號。
分子 P(A ∩ B) 是「A 和 B 同時發生」,分母 P(B) 是「B 發生」。
整條式子只做一件事:把分母從「整個世界」換成「B 這個小世界」。 分子跟著只留下小世界裡的部分,所以要用 A ∩ B 而不是 A。

這一節接下來一律用同一組事件,你不用記別的:

符號怎麼唸就地翻譯(這一節固定這個意思)
A事件 A今天下雨
B事件 B這一天有人帶了傘
A ∩ BA 交 B下雨而且帶了傘 就是「而且」,畫面上是左上角那一格
P(A)P of A下雨的天數 ÷ 總天數。分母是整個世界
P(A | B)P of A given B帶傘的那些天裡,下雨的比例。分母縮小成 B
P(B | A)P of B given A下雨的那些天裡,帶傘的比例。分母縮小成 A —— 跟上一行不是同一件事

只有兩個事件、每個事件只有兩種結果,所以整個世界只有四種天: 下雨帶傘下雨沒帶沒下雨卻帶了兩件都沒有。 四個數字就描述完了 —— 這就是下面那張 2 × 2 事件表

這張圖在幹嘛

你會看到什麼:一張 2 × 2 的表,四格各是那四種天的天數藍框框住「下雨」一整列(那是事件 A), 橘框框住「帶傘」一整行(那是事件 B), 兩個框重疊的左上角那一格就是 A ∩ B綠底)。 下方兩根長條用同一個尺度畫:整根長度=那個條件機率的分母綠色那段=分子(兩根一模一樣,都是 A ∩ B)。

你可以動什麼:四根滑桿直接改四格的天數;或按三顆按鈕跳到現成的情況。

要看出什麼:兩根長條的綠色一樣長,整根卻不一樣長。 同一個分子、兩個不同的分母,所以 P(A | B)P(B | A) 是兩個不同的數字 —— 這是這一節唯一要你帶走的事。

A ∩ B 下雨而且帶傘 A 下雨(一整列) B 帶傘(一整行)

兩根長條的尺度相同:同樣長度代表同樣的天數,所以可以直接比。 外面那圈灰色虛線框=全部 n 天(滿格),實心那段就是那個條件機率的分母。 綠色那段是兩個條件機率共用的分子,你怎麼拖它都一樣長;會變的只有分母。

現在這張表在說
對稱性陷阱:P(A | B) 跟 P(B | A) 不是同一個數字

預設那組數字(100 天)算出來是:下雨的日子裡有 75% 帶傘, 但帶傘的日子裡只有 60% 真的下雨。同一批天、同一個「下雨又帶傘」的 18 天, 兩個答案差 15 個百分點。

差在哪裡?只差分母。一個除以「下雨的 24 天」,另一個除以「帶傘的 30 天」。 分子完全相同 —— 就是圖上那兩段一樣長的綠色。

把滑桿拖到極端一點會更有感:把「沒下雨 · 帶傘」拉到 60。 這時候「下雨時帶傘」還是 75%,但「帶傘時下雨」掉到 23% —— 因為這個人是那種天天帶傘的人,帶傘這件事幾乎不帶任何關於天氣的訊息。

所以「兩件事常一起出現」不等於「其中一件能推出另一件」。 能推出多少,要看你站在哪一邊問 —— 也就是分母放的是誰。

把定義左右移項:乘法法則

定義兩邊同乘 P(B),就得到一條更好用的式子:

P(A ∩ B) = P(B) · P(A | B) = P(A) · P(B | A) 讀法:「兩件事都發生」= 先讓其中一件發生,再在那個小世界裡讓另一件發生
從哪一邊起手都行,答案一樣 —— 這就是為什麼中間那個等號成立。 讀數盤最下面兩行就是拿你現在的數字現場驗算這一條。

這條式子是後面所有東西的接口 的貝氏定理就是把它反過來讀, P(y | x) = P(x, y) / P(x) 就是它換成格子版。

獨立的事件版:跟 ④ 是同一句話

按「調成獨立」那顆按鈕。你會看到讀數盤上 P(A | B)P(A) 變成同一個數字P(B | A)P(B) 也是。白話: 知道帶不帶傘,完全不改變你對下不下雨的看法。

P(A | B) = P(A) 代進乘法法則,就掉出 P(A ∩ B) = P(A) · P(B) —— 正是 給過的獨立定義, 只是那裡的主角是「每一格」,這裡的主角是「一個事件」。同一句話,兩種顆粒度。

下一節要幹嘛

你現在會算 P(A | B) 了。 要問的是一個更彆扭、 但實務上天天遇到的問題:手上只有 P(B | A),可是我要的是 P(A | B),怎麼換過去?

這件事有名字,叫貝氏定理。而它會給你一個違反直覺到有點嚇人的答案。

⑥ 貝氏定理:把問題反過來問

上一節那個陷阱 —— P(A | B) ≠ P(B | A) —— 不是冷知識。 它是醫院、法庭、垃圾信過濾器每天都在踩的坑。這一節把「反過來問」變成一條可以照著算的式子。

場景很具體。有一種病,還有一支檢驗試劑,說明書上印著兩個數字:

你去驗了,結果是陽性。你真正想知道的是:

P(有病 | 陽性) = ? 注意這跟說明書上那兩個數字方向相反
說明書是「已知病情,問檢驗結果」;你要的是「已知檢驗結果,問病情」。
⑤ 已經證明過:這兩個方向的答案可以差非常多。

很多人(包含不少醫師,這件事被實驗反覆驗證過)會直覺回答「90% 吧」。 在這組設定下,正確答案是 8.3%

下面用數人頭的方式算一次。這個方法叫自然頻率(natural frequency)—— 不談 0 到 1 的機率,只談「1000 個人裡有幾個」。同一件事,換成整數就突然變得很好懂。

這張圖在幹嘛

你會看到什麼:上圖是一棵人數樹:1000 個人先按「真的有病 / 真的沒病」分兩堆, 每一堆再按「檢驗陽性 / 陰性」分兩堆,最後四個框就是四種人。 兩個陽性的框被畫得比較重:綠色=真陽性(有病且驗出來), 橘色=偽陽性(沒病卻被誤判)。
下圖是同樣這 1000 個人,一人一個小方塊排成 40 × 25,顏色跟樹上的四個框對應。

你可以動什麼:三根滑桿分別是發生率(1000 人裡真的有病幾個)、敏感度特異度; 「只看陽性的人」會把陰性的人淡出,剩下的就是你在診間裡真正的處境。

要看出什麼:按下「只看陽性的人」,畫面上剩下一小撮和一大片後驗機率就是綠色佔剩下這些人的比例。 然後把發生率往左拉(病更罕見),看綠色怎麼被橘色淹掉。

真陽性 有病,驗出陽性 偽陰性 有病,卻被放行 偽陽性 沒病,卻驗出陽性 真陰性 沒病,驗出陰性 (方陣的填色順序就是這四個)

四種人的人數一律取整數(四捨五入到人),所以畫面上數得出來的方塊數量 跟讀數盤的數字永遠一致 —— 不會出現「0.7 個人」這種東西。

驗出陽性之後,真的有病的機率
現在這 1000 個人在說

把數人頭寫成公式:這就是貝氏定理

剛剛你做的事,一步都沒有超出 的定義。把它逐字翻成符號:

P(有病 | 陽性) = P(陽性 | 有病) · P(有病) / P(陽性) 分子 P(陽性 | 有病) · P(有病) = 乘法法則的 P(有病 ∩ 陽性) = 畫面上的真陽性人數 ÷ 1000
分母 P(陽性)全部陽性的人 ÷ 1000,而陽性有兩個來源,要各算一次再加起來:
P(陽性) = P(陽性 | 有病)·P(有病)  +  P(陽性 | 沒病)·P(沒病) 這叫全機率公式,名字很嚇人,做的事就是「把兩堆人加起來」:
有病而且驗出陽性的人沒病卻被誤判成陽性的人 = 陽性的人。
P(陽性 | 沒病) = 1 − 特異度,也就是偽陽性率。

整條式子合起來就是貝氏定理。它的通用寫法是:

P(A | B) = P(B | A) · P(A) / P(B) P(A)先驗(看到證據之前你的看法)、P(A | B)後驗(看到證據之後)。
中間那一坨 P(B | A) / P(B) 就是「這個證據把你的看法乘上幾倍」。
一句話:貝氏定理=把手上有的那個方向,換算成你要的那個方向。
為什麼會低到 8.3%?因為基底率

用預設那組數字(1000 人、10 人有病、90% / 90%)數一次:

  • 有病的 10 人:驗出陽性 9 人、漏掉 1 人。
  • 沒病的 990 人:驗出陰性 891 人、誤判成陽性 99 人

陽性總共 9 + 99 = 108 人,其中真的有病的只有 9 人 → 9 / 108 = 8.3%

關鍵不在檢驗爛,而在兩邊的人數基數差太多。 沒病的人有 990 個,就算只有 10% 被誤判,那也是 99 個人 —— 比全部有病的人(10 個)還多十倍。 這個「有病的人本來就很少」的事實,叫基底率(base rate),也就是式子裡的先驗 P(有病)。

把發生率滑桿往右拉到 200(每 5 人就 1 個),同一支檢驗的後驗會跳到 69%。 同一支檢驗、同樣的敏感度特異度,答案完全不同 —— 因為先驗換了。 這就是為什麼「有症狀才驗」比「全民普篩」準:有症狀本身就把先驗拉高了。

踩坑/檢察官謬誤:把 P(B|A) 直接當成 P(A|B)

法庭上的經典版本:「兇手的鞋印跟被告吻合,這種鞋印在人群中只有百萬分之一。 所以被告是無辜的機率只有百萬分之一。」

這句話把兩個方向掉包了。百萬分之一是 P(鞋印吻合 | 無辜);法庭要的是 P(無辜 | 鞋印吻合)。 如果嫌疑範圍是一座 2000 萬人的城市,那麼「鞋印吻合的無辜者」期望上還有 20 個。 在沒有其他證據的情況下,被告是那 21 個人(20 個無辜 + 1 個真兇)之一, 無辜的機率是 20 / 21 ≈ 95%,不是百萬分之一。

它跟偽陽性是同一個坑:分母不是「有罪的人」,是「鞋印吻合的所有人」。 看到任何「這麼巧的事只有 X 分之一機率發生」的推論, 第一個動作永遠是問:分母是誰?基數有多大?

但檢驗不是沒用 —— 它把 1% 變成 8.3%

8.3% 聽起來很失望,可是別忘了驗之前是 1%。陽性這個證據把機率乘了 8.3 倍。 這正是貝氏定理中間那一坨 P(B | A) / P(B) 在做的事。

而且它可以接力:如果再驗第二次(獨立的第二支試劑)也是陽性, 這時候的先驗就不再是 1%,而是上一輪的後驗 8.3%。同一條式子再跑一次 → 0.9 × 0.083 / (0.9 × 0.083 + 0.1 × 0.917) = 45%

後驗變成下一輪的先驗,這就是「用證據更新看法」的完整機制。 每多一份證據就乘一次,看法就往真相移動一點 —— 不需要任何一份證據是決定性的。

下一節回到分布

⑤⑥ 兩節談的是事件:發生 / 沒發生,四種天、四種人。 從 開始回到分布:不再問「下不下雨」, 而是問「已知身高是 175,體重整條分布長什麼樣」。

式子一模一樣,只是把事件換成格子: P(y | x) = P(x, y) / P(x) —— 同一個分母縮小的動作, 只是這次一次縮一整行。

⑦ 條件分布:在圖上切一刀

上一節說「知道 x 會改變你對 y 的看法」。這一節把那句話變成一個可以看的動作:切一刀

回到 的問題:「175 公分、45 公斤奇怪嗎?」 你現在知道怎麼問了 —— 把身高固定在 175,只看那一直行的人,他們的體重長什麼樣? 那一行的分布就叫條件分布,寫作 P(y | x = 175), 唸「已知身高等於 175 的情況下,體重的分布」。

這張圖在幹嘛

你會看到什麼:上圖是同一張青色熱力圖, 其中一直行被紫框框起來 —— 那就是你切的那一刀。 每一直行上還有一顆綠點=那一行的體重平均, 綠點連起來就是那條綠色折線。 下圖是被框住那一行單獨拉出來的一維直方圖(橫軸是體重), 綠色實線=這一行的平均,橘色虛線=忽略身高時的整體體重平均。

你可以動什麼:拖滑桿把那一刀左右移動(或直接按「切在 175 cm」);改格子數。

要看出什麼:兩件事。 (1) 刀往右移,下面那座小山整個往右平移 —— 這就是「知道 x 改變了你對 y 的看法」的實體。 (2) 上圖那串綠點幾乎排成一條直線,而讀數盤會告訴你那條線的斜率 跟 03 關的 cov / var(x) 對到小數點第二位。

切的那一刀(一直行) 每一行的體重平均 E[Y | X = x] 整體體重平均(不看身高)

下圖的縱軸是比例(青色除以刀裡那幾個人、淡橘除以全部 2000 人), 所以兩座山可以直接比寬窄,不會因為「刀裡人比較少」就矮一截。 下圖的格子也刻意切得比上圖細 —— 一刀切下來只剩三四根長條的話,形狀根本看不出來。

現在這一刀切出了什麼
關鍵觀察:那條綠色折線就是迴歸線

03 關給過你一條斜率 cov(X, Y) / var(X) 的直線, 當時的說法是「用最小平方法配一條線,斜率長這樣」—— 一個從幾何(把誤差平方和壓到最小)掉下來的答案。

現在你看到它的機率意義了:那條線就是一串條件平均連起來的軌跡。 迴歸線在每一個 x 上回答的問題不是「y 是多少」,而是 「已知 x 的情況下,y 平均而言是多少」,也就是 E[Y | X = x]

E[Y | X = x] = μy + cov(X, Y) / var(X) · (x − μx) 讀法:先站在整體平均 μy,然後看這個人的身高偏離平均多少(x − μx), 乘上斜率就是「體重該跟著偏多少」。
斜率那一坨就是 03 關的老朋友。二維常態底下這條線是直的;換成拋物線那種資料, 條件平均連起來就會是一條曲線(迴歸這個概念還活著,只是不再是直線)。

順帶一提,這也解釋了「迴歸」為什麼叫迴歸(regression,字面是「退回去」): 斜率 cov / var(X) 換成標準化的講法是 ρ · σy / σx, 而 |ρ| ≤ 1。意思是身高高出 2 個標準差的人,體重平均只高出 ρ × 2 個標準差 —— 往平均退回去了一點

第二個關鍵觀察:條件分布比較窄

看讀數盤裡「條件 sd」跟「邊際 sd」那兩行。切一刀之後那座小山明顯比整體的分布瘦

這就是「解釋掉一部分」的實體:身高這個資訊吃掉了體重的一部分不確定性。 吃掉多少有公式 —— 二維常態底下 sd(Y | X) = σy√(1 − ρ²)。 這一頁 ρ ≈ 0.92,所以 √(1 − 0.92²) ≈ 0.39, 條件標準差只剩下邊際的四成。ρ² 這個數字,在迴歸裡就叫 R²。

⑧ 從熱力圖到等高線:橢圓是怎麼冒出來的

熱力圖有一個很煩的毛病:它是抽樣抽出來的,所以永遠毛毛的。格子切細一點就滿是雜訊, 切粗一點又看不出形狀。機率統計 02 關對一維的解法你已經見過了: 不要畫長條,畫那條長條在逼近的平滑曲線 —— 機率密度。

二維版的機率密度是一張曲面:平面上每一點 (x, y) 都有一個高度。 問題是紙是平的,畫不了山。所以我們用地圖畫山的老辦法:等高線

等高線=把高度一樣的點連起來。登山地圖上那一圈一圈的線, 每一圈上的所有位置海拔都相同。二維常態的密度曲面是一座光滑的鐘形山, 而它的等高線 —— 這是這一節唯一要你記住的事 —— 是一圈一圈的同心橢圓

為什麼一定是橢圓,而不是方形或菱形?因為密度公式裡那一坨指數 exp(−q/2) 中的 q 是一個二次式 (x²、y²、xy 的組合),而「二次式 = 常數」在平面上畫出來的封閉曲線只有一種:橢圓。 這件事 機率統計 05 關會把它拆到見骨。

這張圖在幹嘛

你會看到什麼:背景那片青色濃淡是機率密度的高低(越深=越可能出現,就是那座山的俯視圖); 疊在上面的紫色橢圓是三圈等高線,分別對應 q = 149(也就是離中心 1、2、3 個「單位」); 兩根短箭頭是這顆橢圓的主軸次軸

你可以動什麼:三根滑桿 —— σx(橫向散多開)、 σy(縱向散多開)、ρ(兩者的相關係數)。

要看出什麼:ρ = 0 時橢圓正正的(軸平行於座標軸); ρ 一離開 0 橢圓就歪掉,而且 ρ 越接近 ±1 越扁。 歪掉的方向就是資料的主軸 —— 05 關那根 v₁ 又出現了。

機率密度(越深越高) 等高線 q = 1 / 4 / 9 次軸

圖已置中在 x, μy),所以座標上的 0 就是「兩欄都剛好等於平均」的那個人。

現在這顆橢圓在說
所以這一段的結論是

二維常態的等高線是同心橢圓,而那顆橢圓的形狀完全由共變異數矩陣 C 決定(滑桿在動的就是 C 的三個數字: σx²σy²ρσxσy)。 主軸方向就是 C特徵向量, 半徑就是 √λ

下一關要幹的事,就是把這幾圈等高線當成一把尺來用。 現在它們只是「一圈一圈好看的線」;機率統計 05 關會問一個更狠的問題: 給我任何一個點,它落在第幾圈上?那個「第幾圈」就是一把能量「這個點多奇怪」的尺。 這一關不講它叫什麼名字,銀彈留給機率統計 05 關。

⑨ 數學長怎樣

先看程式碼,這三段就是 ③④⑦⑧ 那四個「分布」實驗的全部核心 (⑤⑥ 的事件表與人數樹只用到加減乘除,沒有值得另外抄出來的東西):

// ① 聯合分布:把平面切成 B×B 格,數每一格幾個人
const P = zeros(B, B);
for (const pt of data) P[binX(pt.x)][binY(pt.y)] += 1 / data.length;

// ② 邊際分布:把一整行 / 一整列加起來
const Px = P.map(row => sum(row));                    // P(x) = Σ_y P(x, y)
const Py = range(B).map(j => sum(P.map(row => row[j])));  // P(y) = Σ_x P(x, y)

// ③ 獨立檢查:外積 vs 實際
const D = P.map((row, i) => row.map((v, j) => v - Px[i] * Py[j]));
const TV = 0.5 * sum(D.flat().map(Math.abs));         // 0 就是獨立

// ④ 條件分布:抽出一整行,重新正規化成「這一行內部」的分布
const col = P[i].map(v => v / Px[i]);                 // P(y | x) = P(x, y) / P(x)
const condMean = sum(col.map((p, j) => p * yMid[j])); // E[Y | X = x]

第 ④ 段那一行除法值得單獨拿出來講,因為它就是條件機率的定義

P(y | x) = P(x, y) / P(x) 分子:落在 (x, y) 這一格的比例(占全部 2000 人)。
分母:落在 x 這一直行的比例(占全部 2000 人)。
相除之後,分母的「全部」被約掉了 —— 剩下的是「占這一行的比例」。 換句話說:條件分布就是把視野縮到一行裡面,然後重新算百分比。 除以 P(x) 是為了讓那一行自己加起來等於 1(不然它只加到 P(x))。

把它跟獨立的定義擺在一起看,就會發現兩者是同一句話的兩種寫法:

P(x, y) = P(x)·P(y) ⟺ P(y | x) = P(y) 左式兩邊同除以 P(x) 就變成右式(P(x) > 0 時)。
右式的意思白到不能再白:已知 x 之後,y 的分布跟原本一模一樣 —— 你什麼都沒學到。 這就是「知道 x 完全不改變你對 y 的看法」的數學版。

最後是 那座山的公式。二維常態密度:

p(x, y) = 1 / (2π σx σy √(1 − ρ²)) · exp(−q / 2)
q = 1/(1 − ρ²) · [ (x−μx)²/σx² − 2ρ(x−μx)(y−μy)/(σxσy) + (y−μy)²/σy² ] 前面那一坨分數只是正規化常數:讓整座山下面的體積剛好等於 1(總機率是 1)。它跟形狀無關,不用細看。
形狀全在 q 裡。q 是一個二次式,而「q = 常數」畫出來就是一顆橢圓 —— 這就是等高線是橢圓的全部原因。
ρ = 0 的時候中間那個交叉項消失,q 拆成 (x−μx)²/σx² + (y−μy)²/σy², 兩個變數各過各的 —— 這時候整個 p(x, y) 剛好可以拆成「x 的一維常態 × y 的一維常態」,也就是獨立
注意這是常態分布特有的好事:一般情況下 ρ = 0 不代表獨立 的拋物線就是反例), 但兩個變數聯合起來是常態時,ρ = 0 就真的等於獨立。

用矩陣寫,q 會縮成一行 —— 而這一行就是 機率統計 05 關的門票:

q = (v − μ)T C−1 (v − μ)  其中 C = σx²ρσxσyρσxσyσy² v = 你關心的那個點 (x, y);μ = 中心 (μx, μy); C = 03 關那顆共變異數矩陣,一模一樣的東西。
這個式子叫二次型05 關掃描曲線用的 uTCu 是它的親戚, 差別在那邊用 C、這邊用 C 的反矩陣)。
直覺:C 描述「資料本來就會怎麼散」,C−1 就是「把那種散開除掉」—— 所以 q 量的是「扣掉本來就該有的散開之後,這個點還剩多遠」。

⑩ 工程師的「原來如此」

原來如此 1/推薦系統的共現矩陣,就是一張聯合分布

你寫過這段 SQL:SELECT item_a, item_b, COUNT(*) FROM co_purchase GROUP BY 1, 2。 那張輸出的表叫共現矩陣(co-occurrence matrix),除以總數之後, 它就是 P(item_a, item_b) 的估計 —— 跟這一頁的熱力圖是同一個東西, 只是格子從「身高區間」換成「商品 ID」。

而推薦系統最常用的那個分數 PMI(pointwise mutual information)長這樣:

PMI(a, b) = log[ P(a, b) / (P(a)·P(b)) ]

括號裡那一坨就是 的外積比。 分母 P(a)·P(b) 是「假如這兩個商品毫無關係,本來會共同出現多少次」, 分子是「實際共同出現多少次」。PMI 大於 0 就是「一起買的次數超過巧合」。

這就是為什麼光看銷量高的商品配銷量高的商品,永遠推不出好東西 —— 牛奶和麵包共現次數超高,但那只是因為兩個都是銷量冠軍(P(a)P(b) 都大), 外積早就預測到了,Δ 其實很小。真正的訊號在 Δ 裡,不在原始次數裡。 word2vec 那一整套 embedding 的訓練目標,本質上也是在擬合這張 PMI 表。

原來如此 2/naive Bayes 為什麼叫 naive(天真)

做文字分類時你要算 P(word₁, word₂, …, word₅₀₀ | spam) —— 500 個特徵的聯合分布。如果每個詞只有「出現 / 沒出現」兩種狀態,這張表有 2500 格。宇宙裡沒有那麼多原子,你永遠估不出這張表。

naive Bayes 的解法簡單粗暴到有點好笑:直接假設所有特徵互相獨立,於是

P(w₁, w₂, …, w₅₀₀ | spam) ≈ P(w₁ | spam) · P(w₂ | spam) · … · P(w₅₀₀ | spam)

它直接拿外積當聯合分布用。就是 中間那張 (b) 圖。 參數量從 2500 掉到 500 個,一下就估得出來了。這就是 naive 的意思 —— 不是演算法笨,是它知道自己在說謊還是說了,因為不說這個謊根本算不動。

而 Δ 那張圖就是它錯多少的地圖。所以 naive Bayes 的實務行為很好預測: 「免費」和「優惠」這兩個詞高度共現(Δ 很大),它會把這個證據數兩遍, 於是機率輸出常常貼在 0.99 或 0.01(過度自信)。但排序通常還是對的 —— 這就是為什麼它拿來當分類器堪用、拿來當機率校準就不能信。

順帶把名字裡的另一半補上:naive Bayes 的 Bayes 就是 那條式子。 分類器真正要的是 P(spam | 這些詞), 但好估的是 P(這些詞 | spam)(把垃圾信抓出來數詞頻就有了)—— 方向相反,所以要用貝氏定理換過來。 「naive」負責讓分子算得動(假設獨立、直接相乘),「Bayes」負責把方向轉正。 而分母 P(這些詞) 對每一個類別都一樣,所以實作上直接省掉, 只比大小 —— 這也是它機率值不準、排序卻堪用的另一個原因。

⑪ 踩坑

坑 1/邊際一樣,不代表聯合一樣

的「洗牌」按鈕就是這個坑的實體:兩份資料的兩條邊際分布 一根長條都不差,中間卻是完全不同的世界。

實務上什麼時候會咬人:你拿到兩份「分布統計報告」(各欄位的平均、分位數、直方圖), 發現長得一樣,就以為兩份資料等價 —— 不等價。 A/B test 的兩組使用者可能年齡分布一樣、消費分布一樣,但「年輕人的消費行為」完全相反。 任何只報告單欄統計的資料摘要,都有這個盲點。

坑 2/獨立 ⇒ cov = 0,但反過來不成立

這是 03 關那個坑的正式版,也是最多人背反的一條。記法: cov 只有一把尺,那把尺只量直線。

所以看到 r = 0.02 的時候,正確反應不是「這兩欄無關」, 而是「這兩欄沒有直線傾向,我還不知道有沒有關係」。 五秒鐘的檢查動作:畫散點圖;資料量大到散點糊成一團時,畫熱力圖; 想要一個數字的話, 那個 TV(或它的近親 mutual information) 就是不挑形狀的版本。

坑 3/條件分布的變異數一定比邊際小,別誤讀成「資料變乾淨了」

切一刀之後那座小山變瘦,是數學上必然的 (σy√(1−ρ²) ≤ σy,等號只在 ρ = 0 時成立)。 這叫「身高解釋掉了體重的一部分變異」。

會咬人的誤讀是:「加了這個特徵之後殘差變小了,所以模型變好了」。 不一定。加任何特徵(包括一欄純亂數)都會讓訓練集上的殘差變小,因為 ρ 幾乎不可能剛好是 0。 這就是 R² 會隨特徵數單調上升、所以要看 adjusted R² 或驗證集的原因。 變異數下降是加特徵的副作用,不是證據。

坑 4/格子切太細,熱力圖全是雜訊

的格子滑桿從 6 拉到 20,盯著「洗牌」那組的 TV: 它會從 3.5%(B = 6)一路爬到 12.7%(B = 20)。那組資料明明是完全獨立的,TV 卻在上升。

原因是格子數是 成長的:B = 6 時 36 格、每格平均 55 人, B = 20 時 400 格、每格平均 5 人。每格 5 個人的統計量就是純雜訊, 而 TV 用的是絕對值,雜訊不會互相抵消,只會累積。

所以看熱力圖有一條肉眼準則:先看「洗牌」那組(=已知獨立的對照組)的 TV 是多少 —— 那是你這個格子數下的雜訊底線。真實資料的 TV 要顯著高過那條線才算數。 沒有對照組的時候,土法煉鋼的規矩是每格平均至少 10 個樣本, 也就是 B ≤ √(n/10)。這一頁 n = 2000,所以 B 上限大約 14。

⑫ 這關回答了什麼

聯合分布跟「兩個各自的分布」差在哪裡?

差在「搭配方式」這件事有沒有被記下來。

兩個各自的分布(=兩條邊際)只回答「身高各區間有多少人」「體重各區間有多少人」。 聯合分布回答的是「身高在這一格而且體重在那一格的有多少人」—— 它記得每一對數字是怎麼配在一起的。

差多少? 的「洗牌」按鈕直接量給你看: 兩份資料的邊際逐格完全相同,但一份是「高的人重」、另一份是隨機亂配。 所以答案是:從兩條邊際你永遠反推不回聯合,反過來卻永遠可以(加總就是了)。 資訊量是單向的。

邊際分布是什麼?為什麼叫「邊際」?

邊際分布 = 只看一個欄位時看到的分布 = 把聯合分布的另一個維度加總掉。 公式是 P(x) = Σy P(x, y),畫面上就是把熱力圖的一整直行加起來, 變成下面那一根藍色長條。

名字的由來很土:早年統計學家把二維次數表印在紙上, 然後在表格的邊上(margin)順手寫下每一列、每一行的加總。那些寫在邊上的數字, 就叫 marginal distribution。沒有更深的意思。

一句話記住它的性格:加總 = 把「另一欄是多少」這件事整個忘掉。所以邊際是有損壓縮。

「獨立」的正式定義是什麼?

P(x, y) = P(x) · P(y),而且要對每一格 (x, y) 都成立。 等價的寫法是 P(y | x) = P(y)

白話:知道 x 完全不改變你對 y 的看法。 你原本以為體重大概在 59 ± 10;我告訴你這個人 185 公分;如果你的猜測一動也不動, 那就是獨立。 那把刀左右移動的時候, 下面那座小山如果紋風不動,就是獨立;它跟著平移,就是不獨立。

操作上怎麼檢查:把兩條邊際相乘拼出「假如獨立會長的樣子」,跟實際的相減 ( 那三張圖)。全白就是獨立。

cov = 0 為什麼不等於獨立?用那張外積差圖回答。

的第三顆按鈕(拋物線)。你會同時看到兩件事:

  • 讀數盤:cov ≈ 0.00r ≈ 0.000
  • (c) 那張差圖:紅色照著拋物線的形狀畫了一條拱,其餘一片藍,一點都不白(TV 接近 60%)。

兩個數字都沒說謊,它們在回答不同的問題。 cov 問的是「有沒有直線傾向」—— 拋物線左半邊往上、右半邊往下, 兩邊的貢獻正負剛好抵光,所以答案誠實地是 0。 差圖問的是「知道 x 會不會改變 y 的分布」—— 施肥量 10 公斤跟 19 公斤的收成分布差超多, 所以答案是「會,而且差很多」。

用一句話收:cov = 0 只保證「沒有直線傾向」,不保證「沒有關係」。 獨立是一個關於整張表的敘述,cov 只是那張表擠出來的一個數字 —— 一個數字裝不下一張表。 邏輯方向只有一邊成立:獨立 ⇒ cov = 0。

條件分布跟迴歸線是什麼關係?

迴歸線就是把每一個條件分布的平均連起來的那條軌跡。

你可以直接看到:每一直行(=一個條件分布)算一個體重平均, 畫成一顆綠點,全部連起來幾乎是一條直線。而讀數盤現場算給你看: 那條線的斜率跟 03 關cov(X, Y) / var(X) 對到小數點第二位。

這件事的意義是:迴歸線不是「穿過點雲中間那條看起來最順的線」這種美學說法, 它有明確的機率身分 —— 它在每一個 x 上回答 E[Y | X = x], 也就是「已知 x,y 平均而言是多少」

兩個延伸:(1) 條件平均不一定要是直線 —— 拋物線資料的條件平均連起來就是一條曲線, 迴歸這個概念還在,只是換一種函數。(2) 條件分布不只有平均,它還有寬度; 寬度就是預測的不確定性,σy√(1−ρ²)。 只給一條迴歸線而不給這個寬度的預測,是在騙人。

為什麼二維常態的等高線是橢圓,不是別的形狀?

因為密度公式 p = 常數 × exp(−q/2) 裡, q 是一個二次式xy 的組合。

「密度相同」=「exp 裡面相同」=「q = 常數」。 而國中就學過的事實是:二次式 = 常數,在平面上畫出來的封閉曲線就是橢圓 (圓是它的特例,ρ = 0 且 σx = σy 的時候)。 不會是方形,因為方形的角需要絕對值那類不平滑的東西;不會是菱形,同理。

再往下一層:q = (v−μ)TC−1(v−μ), 而 C 是對稱正定矩陣,所以它有兩根互相垂直的特徵向量。 那兩根就是橢圓的兩根軸,半徑是 √λ換句話說,橢圓的方向和胖瘦,是 C 的特徵分解直接給的 —— 這就是為什麼 PCA 和機率橢圓講的是同一件事。細節在 機率統計 05 關

ρ = 0 到底算不算獨立?我看到兩種說法。

兩種說法都對,因為它們的前提不同:

  • 一般情況:ρ = 0 不等於獨立。拋物線就是反例。
  • 兩個變數「聯合起來」是常態分布的時候:ρ = 0 就真的等於獨立。 原因在 的密度公式 —— ρ = 0 時交叉項消失, p(x, y) 剛好可以拆成 x 的一維常態乘上 y 的一維常態, 而「拆得開」正是獨立的定義。

陷阱在中間那個字:要「聯合常態」,不是「兩條邊際各自常態」。 兩條邊際都是漂亮的鐘形,聯合分布卻完全不是二維常態 —— 這種資料造得出來,而且實務上很常見。 所以看到「兩欄各自都接近常態,所以 r = 0 就是獨立」這種推論,那是錯的。

P(A|B) 跟 P(B|A) 到底差在哪?給我一個記得住的說法。

分子一樣,分母不一樣。兩者的分子都是「A 和 B 同時發生」, 差別只在你把分母縮小成誰的世界。

那兩根長條就是這句話的圖像: 綠色那段(分子)永遠一樣長,整根(分母)不一樣長。

一個記得住的例子:「下雨的日子裡有 75% 帶傘」跟「帶傘的日子裡有 60% 下雨」, 講的是同一批天。誰在豎線右邊,誰就是分母。

檢驗準確率 90%,我驗出陽性,那我有 90% 機率有病嗎?

不是。在發生率 1% 的情況下,答案是 8.3%。

數人頭最快( 的圖就是在數):1000 人裡 10 個有病 → 驗出陽性 9 個;990 個沒病 → 誤判成陽性 99 個。 陽性共 108 人,真的有病的 9 人,9 / 108 = 8.3%

原因不是檢驗爛,是基底率:沒病的人基數大到「只誤判 10%」都比真患者總數還多。 所以看到任何「準確率 99%」的宣稱,先問要找的東西有多罕見 —— 東西越罕見,同一支檢驗的陽性就越不可信。

反過來也要記住:8.3% 已經是驗之前 1% 的 8 倍。證據有用,只是沒有你以為的那麼用。

貝氏定理跟這一關的聯合分布是什麼關係?

它們是同一條式子的兩種讀法,接口是乘法法則。

乘法法則說 P(A ∩ B) = P(A)·P(B | A) = P(B)·P(A | B)。 中間那個等號就是貝氏定理 —— 把它除一除、換個邊,就從「已知 A 問 B」變成「已知 B 問 A」。

而聯合分布 P(x, y) 就是 P(A ∩ B) 的分布版: 那張熱力圖的每一格都是一個「同時發生」。 所以「切一直行再正規化」(條件分布)跟「除以 P(B)」(條件機率)是同一個動作, 只是一次做一整行。

這關留下什麼洞 → 下一關補

你現在會畫等高線了,但它還只是一張圖。 我問你: 那個 175 公分、45 公斤的人,到底有多奇怪? 你能指著圖說「他在最外面那圈外面」,但你講不出一個數字, 也講不出「一百個人裡面大概會有幾個這麼奇怪」。

缺的是把「第幾圈」變成一把有刻度的尺 —— 而且那把尺要能自動考慮「這兩欄本來就會一起動」(不然你會把 190 公分 90 公斤的人也當成異常,可是他一點都不奇怪)。 機率統計 05 關就在做這件事,它的名字叫馬氏距離。