MODULE 02 — NORMAL DISTRIBUTION · DENSITY · Z-SCORE · CLT

常態分布與 z 分數:那條鐘形曲線憑什麼到處都是

玩完這關,你會知道密度曲線的縱軸不是機率(面積才是)、會用 z 把公分和萬元放到同一把尺上量,而且會親手看到一台完全不常態的機器怎麼在你取平均的那一刻變成鐘形。

① 這關在解什麼問題

上一關給了你什麼 機率統計 01 ③ 把線性代數 01 到 07 關那坨點換上了「會抖」的身分: 點變成一台會吐點的機器,你算出來的每個統計量都降級成「它吐出來的其中一次」 (那張名牌對照表在 機率統計 01 ① 的橋)。 但身分換完之後,你手上描述它的工具沒有換 —— 還是 02 關那兩個數字: 一個中心、一個散開。這一關要問的就是下一句:那台機器長什麼形狀?

你打開三份文件:

三份文件都只給你兩個數字(中心、散開),然後就開始下結論:這個值正常、那個值異常、 這檔資產風險比較大。可是上一關才剛講完, 能吐數字的機器有無限多種 —— 均勻的、右偏的、雙峰的、只吐整數的。 兩個數字憑什麼足以描述一台機器?

因為這三份文件都偷偷假設了同一個形狀:常態分布(也叫高斯分布,就是那條鐘形曲線)。 而常態分布剛好是「兩個數字就把形狀完全決定」的那一種機器 —— 給我 μ 和 σ,整條曲線我就畫得出來, 不需要第三個數字。

這不是偷懶。真正的理由在⑦ 中央極限定理「很多小東西加起來」這個動作本身就會生出鐘形,跟那些小東西原本長什麼樣幾乎無關。 這一關最後會讓你選一台醜到極點的機器,然後親眼看它變成鐘形。

上一關留下的洞

機率統計 01 關的一句話: 你手上那堆點不是全世界,是一台看不見的機器抽出來的樣本;平均和變異數是那台機器的兩個設定值,你只能估。

但機率統計 01 關只給了那台機器的兩個數字,沒給形狀。 兩個數字不足以回答「落在 160~170 之間的機會有多大」這種問題 —— 那需要整條曲線。 這一關就是把形狀補上。

後面哪一關用到了它、卻沒教

機率統計 05 關直接用了「機率密度」和「1σ 涵蓋率」 —— 它拿一圈橢圓說「這圈裡面大約包住 39% 的資料」,但「密度」是什麼、 涵蓋率怎麼算出來的,前面一個字都沒講。

05 關第 ⑦ 節用了 z-score 標準化 —— 每一欄除以自己的標準差,說這樣才能比較。可是「除以標準差」到底把單位換成了什麼,也沒講。

這兩個洞就是 要補的東西。 還有一個順帶的伏筆: 那條曲線的指數裡藏著機率統計 05 關馬氏距離的一維版, 看到那一格我會停下來講清楚。

本頁符號速查(畫面上出現的每一個字母都在這裡)

符號讀作它是什麼這一頁現在的值

② 從直方圖到曲線:那條平滑曲線是怎麼來的

先從你已經會的東西開始:直方圖。把數線切成一格一格(一格的寬度叫組距), 數每一格裡有幾筆,畫成長條。這件事你在 Excel 按過一百次。

這一節只做一件事:把組距一路拉窄、把樣本一路拉多,看那堆長條變成什麼。

資料沿用 05 關那 12 個人的身高(單位 cm):

算出來平均 x̄ = 167.00、樣本標準差 s = 10.30。 接下來我把「一台平均 167.00、標準差 10.30 的常態機器」當成這 12 個人背後的機器, 用它模擬抽 200 / 2000 / 20000 筆。 誠實提醒:把 12 個人算出的 s 當成機器的 σ估計,不是事實 —— 這正是 機率統計 01 關第 ⑧ 節在講的事。 12 筆估出來的 σ 誤差很大,這一節的重點不在數字精確,在形狀怎麼浮現

這張圖在幹嘛

你會看到什麼: 青色長條=直方圖(每一格的高度是「密度」,等一下 ③ 會解釋為什麼不是「筆數」); 貼在橫軸上的 12 個小點=原始那 12 個真人; 紫色曲線=那台機器真正的密度曲線(理論值,不是從樣本畫的); 藍色虛線=平均 μ;長條頂端如果冒出紅色小蓋子,代表它高到超出畫面了。

你可以動什麼:四顆按鈕換樣本數(12 = 真人、其餘是模擬); 組距滑桿把每一格從 8 cm 一路拉到 0.4 cm;「再抽一次」換一組亂數種子。

要看出什麼:組距變窄不會自動變平滑 —— 要「組距窄」加上「樣本多」兩件事一起,長條才會貼上紫色曲線。 右邊那個「相對誤差」讀數就是在量「長條離紫色曲線有多遠」,兩顆按鈕交叉按一遍就看得出這句話。

直方圖(樣本) 真正的密度曲線(理論) μ = 167.00 超出畫面的長條 貼著橫軸的 12 個真人

樣本數 n2000
組距(每一格多寬)
目前 seed:

交叉按一遍之後,把那個「相對誤差」讀數抄下來,會長成這張表 (表格是現場算的,換 seed 會跟著變):

組距n = 200n = 2000n = 20000

相對誤差 = 每一格的「直方圖密度」跟「該格真實平均密度」差多少,取平均(只算密度有意義的格)。 數字越小=越貼合紫色曲線。
這個數字不是在說「粗組距比較好」:粗組距是拿一整格的平均密度來比,本來就容易對上, 代價是曲線的彎度整段被磨平、你看不出形狀。要同時做到「看得到形狀」和「誤差小」只有一條路 —— 樣本變多。

所以這一段的結論是

密度曲線就是直方圖的極限:組距 → 0、樣本數 → ∞,兩個一起。 少了任一個都不成立 —— 上面那張表沿著同一往右走(樣本變多)誤差一路掉; 沿著同一往下走(組距變窄)誤差反而一路漲,而且 n = 200 那一欄從頭到尾都在 40% 以上, 窄組距完全救不回來。

這也解釋了為什麼「12 個真人」那顆按鈕看起來像鬼畫符: 12 筆資料根本沒有形狀可看。你在真實工作裡看到別人拿 20 筆資料畫直方圖說「看起來是常態」, 那句話沒有內容。

③ 密度曲線怎麼讀:縱軸不是機率,面積才是

這一節是整關最容易讀錯的地方,慢慢來。先看一個最小的例子。

上一節的紫色曲線在 x = 167 的高度是 。 如果縱軸是機率,那句話就會是「身高剛好 167 的機率是 3.87%」。 這句話一定錯,理由很簡單:那條曲線上有無限多個點, 每個點都給一個正的機率,全部加起來會遠大於 1。

正確的讀法是:那個 0.0387 的單位是「每公分」。 它的意思是「在 167 附近,每一公分寬的區間大約裝著 3.87% 的人」。 所以要拿到機率,你得乘上一段寬度 —— 也就是算面積

P(a ≤ x ≤ b) = 曲線在 a 到 b 之間底下的面積 高度(密度)× 寬度(cm)= 面積 = 機率。密度的單位是「每 cm」,乘上 cm 之後單位剛好消掉, 剩下一個沒有單位的比例 —— 這就是機率該有的樣子。

這塊面積寫成符號就是 ab f(x) dx —— 的意思、以及「切成 n 條長方形加起來」為什麼會收斂到真值, 在微積分 · 積分關 ②(那裡有一根 n = 1 → 1000 的滑桿)。 這一節不需要那個符號也讀得完

這張圖在幹嘛

你會看到什麼: 紫色曲線=那台機器的密度; 綠色填色=你選的那一段區間底下的面積; 淡青長條=真的抽出來的 2000 筆(組距 2 cm),拿來跟面積對帳用; 藍色虛線=μ。

你可以動什麼:拖圖上那兩個把手(上面那個是左界 a、下面那個是右界 b,兩條垂線跟著走), 或按下方的預設按鈕。兩個把手可以拖到重疊 —— 那就是「單一個點」。

要看出什麼:右邊「曲線下面積」和「2000 筆實測比例」這兩個數字幾乎一樣。 這就是「面積 = 機率 = 比例」這句話的意思。把兩個把手拖到重疊時,面積會變成 0.00%。

常用區間直接跳過去
2000 筆的 seed:

面積是用數值積分算的(Simpson 法,把區間切成 800 小段,一段一段加起來 —— 就是你在寫程式時算積分的那個土方法)。實測比例是直接數 2000 筆裡有幾筆落在區間內。 兩個數字算法完全不同,答案卻對得上,這才是重點。

誠實提醒:這個對帳沒有證明身高是常態

那 2000 筆是我用紫色曲線本人生出來的,所以它們吻合是理所當然。 這個對帳證明的是「面積 = 比例」這個讀法對不是證明真實世界的身高服從常態。要驗後者得拿真資料,而我手上只有 12 個人(見 )。

順便給你 12 個真人的實際數字:落在 ±1σ(156.70 ~ 177.30)的是 7 個人 = 58.3%,理論值 68.27%;落在 ±2σ(146.39 ~ 187.61)的是 12 個人 = 100%,理論值 95.45%。差這麼多不是理論錯,是 12 筆太少。

「單一點的機率是 0」為什麼不荒謬

按一下上面的「縮成一點」,面積會變成 0.00%。第一次看到都會覺得有問題: 身高總是某個值啊,怎麼每個值機率都是 0?

關鍵在於「剛好」有多剛好。連續量的「剛好 167」意思是 167.000000… 後面無限多位全部是 0。你的量測儀器根本沒有這個能力 —— 皮尺讀到 0.1 cm,那你問的其實是:

P(166.95 ≤ x ≤ 167.05) = 寬度 0.1 cm × 密度 0.0387 每 cm ≈ 0.387%。 「單點機率 0」和「量到 167 的機率 0.387%」兩句話同時成立,因為它們問的是不同的問題。

工程上的講法會更順:密度是「機率的斜率」,不是機率本身。 跟你算移動速度一樣 —— 「時速 60 公里」不代表某個瞬間跑了 60 公里, 它要乘上一段時間才有距離。密度也要乘上一段寬度才有機率。

所以這一段的結論是

縱軸(密度)沒有機率的意思,甚至可以大於 1;面積才是機率,而整條曲線底下的總面積永遠是 1。 下次看到機率統計 05 關說「這圈橢圓包住 39% 的資料」,你就知道那個 39% 是在二維上算出來的體積,不是任何一點的高度。

④ 累積分布 F(x) 與分位數:把面積從左邊一路加起來

③ 節你學會了「面積才是機率」,而且是自己拖兩條界線去圍出一段區間。 但真實世界問的問題幾乎都不是「介於 a 和 b 之間」,而是單邊的:

前兩個問題只要把 ③ 的左界線一路推到最左邊(負無窮)就答得出來 —— 也就是「從左邊一路累積到 x」的那塊面積。這個量太常用了,所以它有自己的名字和自己的符號:

F(x) = P(X ≤ x) 讀作「大寫 F of x」。累積分布函數(cumulative distribution function,CDF)。 注意大寫 F 是累積、小寫 f 是密度,這一頁一律照這個規矩;很多課本也是。 f 的單位是「每 cm」,F 沒有單位,它就是個 0 到 1 的比例。

三件立刻成立的事,都不用推導,看圖就知道:

性質為什麼
F 只會往上,不會往下(單調遞增 x 往右移,累積的面積只會多,不會變少 —— 面積不可能是負的。
最左邊是 0、最右邊是 1 什麼都還沒累積 vs 全部累積完。後者就是 ③ 那句「整條曲線底下的面積永遠是 1」。
P(a ≤ X ≤ b) = F(b) − F(a) 「累積到 b」減掉「累積到 a」,剩下的正好是中間那一段。③ 節那個綠色面積的另一種算法。

下面那句「fF 的斜率」有正式的名字, 叫微積分基本定理微積分 · 積分關 ③ 用跟這裡一樣的上下雙圖 把它現場量出來(量 F 的斜率,對帳 f(x))。

④-A 動手:拖 x 看面積累積,或者反過來給 p 反解 x

這兩張圖在幹嘛

你會看到什麼:上下兩張圖共用同一條橫軸(身高 cm)。 上圖是你已經認識的紫色密度曲線綠色填色是「從最左邊累積到 x」那塊面積; 下圖就是F(x) 本人 —— 一條從 0 爬到 1 的 S 形曲線, 上面那顆綠點停在 (x, F(x))上圖綠色面積的大小 = 下圖綠點的高度,這是本節唯一要看懂的一件事。

你可以動什麼:兩個方向都能動 —— 正向:拖上圖那顆綠色把手(或拖下圖的把手)選 x,看 F(x) 是多少; 反向:拉「p 分位」滑桿給一個比例,x 會自己跳到那個門檻上。 另外五顆快捷鈕(p1 / p50 / p90 / p95 / p99)與「再抽一次」(換 seed,只影響對帳用的 2000 筆)。

要看出什麼:① 密度曲線最高的地方(x = 167 附近),F 爬得最快 —— fF斜率。 ② 兩邊尾巴很平,因為那裡幾乎沒有面積可以累積。 ③ 按 p50,x 會停在 167.00 —— 中位數就是 p50 分位數,而常態剛好等於 μ。

密度 f(x)(上圖曲線) 累積 F(x)(上圖面積 = 下圖高度) 2000 筆實測的累積比例(虛線,幾乎整條貼在綠線上)

反解:p 分位(拉這個,x 自己跳)
2000 筆的 seed:

④-B 反過來問:分位數就是 F 的反函數

上面那根 p 滑桿做的事情,是把問題倒過來問:

F 問的是:給我一個 x,左邊累積了多少 p
分位數問的是:給我一個 p,門檻 x 要多少?
Q(p) = F−1(p)  (唸「F inverse」,也寫成 xp 兩者是同一條曲線讀兩個方向:F 是「橫軸給值、讀縱軸」, Q 是「縱軸給值、讀橫軸」。所以下圖那條 S 形一張圖同時是 F 也是 Q, 差別只在你從哪一軸進去。

這個名字你其實早就在用了 —— p50 就是中位數、p99 就是「最慢的 1% 從哪裡開始」。 監控面板上的 p99_latency、SLO 寫的「p95 < 300ms」、 薪資報告的「第三四分位」,全部都是分位數,全部都是這條反函數。

pz(p)=幾個 σ身高門檻 Q(p) 2000 筆實測的分位數白話

注意第二欄:常態的分位數一律可以寫成 μ + z(p)·σ,而那個 z(p) 跟 μ、σ 完全無關 —— 換句話說分位數表只需要一張(標準常態那張),任何常態都用得上。 那張表就是 ⑥ 節的 z 分數存在的理由之一。 至於 1.645 / 1.960 / 2.326 這三個到處出現的數字,它們就是 z(0.95)z(0.975)z(0.99)

這一節同時付掉了三筆後面的帳
  • 機率統計 01 關那個 p-value:「假設沒差,光靠雜訊生出這麼大的差」的機率 = 1 − F(z),也就是這條曲線右邊那塊尾巴。 p-value 從來不是新概念,它是一塊累積面積。
  • 機率統計 01 關信賴區間的那個 2:它是 z(0.975) = 1.96,一個分位數。t 分布的臨界值也是同一回事, 只是換成 t 那條 CDF 去反解。
  • 機率統計 05 關那四個門檻: 「39.35% / 86.47% / 98.89% 涵蓋率」對應的 k 值, 就是卡方分布的分位數;那關寫的 k = √(−2·ln α) 正是把 CDF 反解出來的封閉解。你現在有名字可以叫它了。
兩個一定要分清楚的地方

① f 跟 F 不是同一件事,連單位都不同。 f(167) = 0.0387 每 cm(密度,可以大於 1); F(167) = 0.5000(比例,永遠在 0 和 1 之間)。 密度是 F 的斜率 —— 所以圖上「曲線最高的地方」對應「S 形爬最陡的地方」。 跟里程表的類比一樣:f 是時速、F 是走過的距離。

② 「p99」到底是門檻還是比例?兩種講法都有人用,會吵架。 本站一律:p99 指的是那個「值」(門檻),不是 99% 這個比例。 所以「p99 延遲是 300ms」的意思是「99% 的請求比 300ms 快」。 遇到別人寫的東西不確定的時候,看單位:帶 ms / cm 的是門檻,帶 % 的是比例。

所以這一節的結論是:F(x) 把「面積」這個動作包成一個函數, 而分位數是它反過來讀。有了這兩個,你才有辦法回答單邊的問題 —— 而工程上絕大多數問題(SLO、告警門檻、風控、p-value)都是單邊的。

⑤ 常態的兩顆旋鈕:μ 搬左右、σ 管胖瘦

到現在我都只說「那台機器」。這一節把它的規格書打開: 常態分布只有兩顆旋鈕,轉完之後整條曲線就定了,沒有第三顆。

這張圖在幹嘛

你會看到什麼: 紫色曲線=目前 μ、σ 下的密度; 藍色虛線=μ; 三層橘色深淺不同的填色=±1σ±2σ±3σ 三段, 最深的是最裡面那段; 綠色虛線=你用滑桿選的 ±k σ 那一段的邊界。

你可以動什麼:三個滑桿 —— μ 搬左右、σ 管胖瘦、k 決定要驗算「幾個 σ 以內」的面積; 「設回身高機器」把兩顆旋鈕轉回 (167.0, 10.3),畫面就變成 ③ 那條曲線本人 (σ 滑桿只到小數第一位,所以是 10.3 而不是精確的 10.3045, 變異數會顯示 106.09 而不是 106.18 —— 差 0.08,不影響任何結論)

要看出什麼:68 / 95 / 99.7 這三個數字跟 μ、σ 完全無關。 隨便轉,右邊那三行面積永遠是 68.27% / 95.45% / 99.73%。這才是「兩個數字就夠」的真正意思。

μ —— 中心搬到哪(cm)
σ —— 散開多少(cm)
k —— 驗算 ±k σ 的面積

把 k 滑桿停在 1、2、3 三個位置,右邊的「±kσ 面積」讀數就是那三個到處被引用的數字。 它們是同一個 Simpson 積分算出來的(跟 用的是同一個函式), 不是背下來的常識:

範圍曲線下面積落在外面白話

密度公式,逐個零件拆開

先給程式版,因為它沒有任何歧義:

function normalPdf(x, mu, sigma) {
  const z = (x - mu) / sigma;          // 1. 離中心「幾個標準差」
  const core = Math.exp(-0.5 * z * z); // 2. 距離的平方 → 高度(越遠掉得越兇)
  return core / (sigma * Math.sqrt(2 * Math.PI)); // 3. 除掉這一坨,讓總面積 = 1
}

然後是同一件事的符號版:

f(x) = 1
σ√(2π)
· e−½ · ((x − μ) / σ)2 f 是 function 的 f,讀作「x 這一點的密度」。e 是自然常數 2.71828…, π 是圓周率(會出現在這裡是因為積分算下來剛好帶出 √(2π),不是刻意安排的)。
零件讀作它在幹嘛
x − μx 減 mu 離中心多遠。帶單位:身高的話這是「幾公分」。
(x − μ) / σ再除以 sigma 離中心幾個標準差。除完之後單位消失了 —— 這個東西就是 ⑥ 的 z 分數,整關的樞紐。
((x − μ) / σ)2平方 「離中心幾個標準差」的平方。平方做兩件事:讓左右對稱(−2σ 和 +2σ 一樣高), 以及讓「越遠掉得越兇」(距離變 2 倍,指數裡變 4 倍)。 這一格請記住,它是 機率統計 05 關馬氏距離的一維版
−½ · (…)2乘上負二分之一 負號讓它「越遠越小」。至於為什麼是 ½ 而不是別的數 —— 那是為了讓 σ 這顆旋鈕剛好等於標準差(見 最後一題)。
e(…)e 的多少次方 把「距離的平方」翻譯成高度。用 e 的好處是它永遠正的、而且掉得夠快 (尾巴以平方的速度往下壓),所以總面積才收斂得起來。
1 / (σ√(2π))一除以 sigma 乘根號二 pi 正規化常數,只做一件事:把整條曲線底下的面積壓成剛好 1。 它裡面有 σ,所以 σ 一變大,峰高就自動變矮 —— 這就是「變胖一定變矮」的來源。
機率統計 05 關的伏筆(本關最重要的一句)

指數裡那一格 ((x − μ) / σ)2 就是 「離中心幾個標準差的平方」。整條鐘形曲線的形狀,完全由這一個量決定 —— 高度只是它的單調遞減函數。

機率統計 05 關的馬氏距離寫成 d2 = (x − μ)T C−1 (x − μ), 看起來完全是另一回事,其實是同一句話的二維版

  • 一維只有一個方向、一個 σ,所以「除以 σ」就是全部;÷σ2 寫成乘 1/σ2
  • 二維有兩個方向、各有自己的 σ,而且還可能斜著散開共變異數不是 0)。 「兩個方向的 σ 加上斜度」這三件事沒辦法塞進一個數字,只能塞進一個矩陣 —— 那就是 C
  • 於是 「除以 σ2」升級成「乘上 C−1。指數裡的東西換掉了, 外面那個 e−½(…) 一個字都沒變。

結論:把一維的鐘形曲線推到二維,等高線就是橢圓。 因為「密度一樣高」等價於「馬氏距離一樣遠」,而「馬氏距離一樣遠」的點集合就是橢圓。 機率統計 05 關那顆橢圓不是新東西,是這條曲線的二維切片。 機率統計 04 關會先把「兩個變數一起看」講完,機率統計 05 關再收。

⑥ z 分數:把公分和萬元放到同一把尺上

上一節那一格 (x − μ) / σ 值得自己一節,因為它有名字, 而且它是資料分析裡最常被偷偷用掉的動作:

z = (x − μ) / σ 讀作:x 離平均幾個標準差。z = +1.5 就是「比平均高 1.5 個標準差」, z = −0.3 就是「比平均低 0.3 個標準差」。 分子的單位是 cm、分母的單位也是 cm,除完之後沒有單位 —— 這是它的全部價值。

為什麼「沒有單位」這麼重要?看一個具體的麻煩。你要幫一個人寫評語, 他身高 178 cm、月薪 6.8 萬。你想說「他哪一項更突出」:

11 比 1.8 大,所以身高更突出?這個推論是荒謬的 —— 11 的單位是公分、1.8 的單位是萬元,兩個數字沒有可比性。 要是我把身高改記成毫米,它就變成 110,難道他就更高了? (這就是 05 關第 ⑦ 節那個 cm / mm 陷阱的一維版。)

z 分數把兩邊都換成「幾個標準差」,單位一消,就能比了。

這張圖在幹嘛

你會看到什麼:三根數線。 上面那根(藍)是身高(cm,來自 05 關那 12 個人,μ = 167.00、σ = 10.30); 中間那根(橘)是月薪(萬元,來自 02 關那七個人,μ = 5.00、σ = 1.10); 最下面那根(紫)共用的 z 軸。 每根數線上的短刻度就是 μ ± 1σμ ± 2σ

你可以動什麼:藍色把手改他的身高、拖橘色把手改他的月薪。 兩條虛線會把他從自己的尺上「投」到最下面那根共用 z 軸。

要看出什麼:上面兩根尺的 1σ 一格寬度不一樣(身高一格 10.30 cm、月薪一格 1.10 萬), 但投到 z 軸之後就都變成「一格 = 1」。這就是換算成 z 之後才能比大小的原因。

百分位是用常態假設算的(曲線在該點以左的面積)。 兩份資料一個 12 人一個 7 人,樣本都很小,百分位只當個直覺用。

所以這一段的結論是

z 分數做的事只有一件:把「帶單位的偏差」換成「幾個標準差」。換完之後你可以:

  • 跨欄位比大小 —— 身高 vs 月薪 vs 點擊率,全部搬到同一把尺上。
  • 查機率 —— 有了 z,就能問「比他更極端的人有幾 %」( 那張 68/95/99.7 表就是 z = 1, 2, 3; 那張分位數表則是反過來問)。
  • 餵給演算法 —— 05 關的 z-score 標準化就是把每一欄都做這件事。 做完之後每欄變異數都是 1,共變異數矩陣退化成相關係數矩陣。

另外它也把 02 關「為什麼要用標準差不用變異數」那筆帳收掉了: 因為只有標準差跟資料同單位,除下去才會剛好把單位消乾淨。 變異數的單位是 cm2,拿它去除 cm 會剩下一個 1/cm,那個東西什麼都不是。

⑦ 中央極限定理:為什麼世界上到處都是鐘形

到這裡你已經會讀常態了,但還沒回答 的問題: 能吐數字的機器有無限多種,憑什麼大家都假設常態?

答案不是「因為世界喜歡鐘形」。答案是:你看到的量,很少是「一次抽樣」, 幾乎都是「一堆小東西加起來」或「一堆值取平均」。 而「加起來 / 取平均」這個動作本身就會生出鐘形 —— 不管原料長什麼樣。 這件事叫中央極限定理(Central Limit Theorem,CLT)。

這一節讓你親手驗。流程是這樣,只有三步:

  1. 選一台完全不常態的機器(均勻 / 右偏 / 雙峰 / 骰子,四台都很醜)。
  2. 從它抽 n 個數字,取平均,得到一個數。
  3. 把第 2 步重複 2000 次,得到 2000 個平均值,畫成直方圖。

然後把 n 從 1 拉到 30,看那 2000 個平均的形狀怎麼變。

這張圖在幹嘛

你會看到什麼:兩張圖。 上圖這台機器本人(這一輪抽出來的全部 2000 × n 個個別數字, 它的形狀跟 n 無關,就是機器的長相)。 下圖2000 個「n 個數的平均」的直方圖, 再疊上紫色理論常態曲線 N(μ, σ/√n) 做對照; 藍色虛線是 μ。

你可以動什麼:四顆按鈕換機器;n 滑桿從 1 拉到 30; 「x 軸」切換下圖橫軸要「跟著縮放」(看形狀變鐘形)還是「固定」(看寬度縮小); 「再抽一次」換 seed。

要看出什麼:n = 1 時上下兩張圖一模一樣(因為「1 個數的平均」就是那個數本身), 上圖有多醜下圖就有多醜。把 n 拉到 30,上圖完全沒變,下圖卻貼上了紫色鐘形。 差別只來自「取平均」這個動作。

選一台機器

n —— 每次抽幾個取平均1
下圖的 x 軸跟著縮放
目前 seed:

用兩個數字說「形狀變了」

「看起來變鐘形」不算證據,所以右邊讀數給了兩個可以量的東西。兩個都是常態的指紋

下面這張表是四台機器 × 四個 n 全部跑一遍的結果(現場算的,換 seed 會變)。 每台機器都從「離 0 很遠」走到「貼著 0」:

機器n 2000 個平均的 sd理論 σ/√n 偏態超峰度

sd 一律樣本版(除以 n−1)。偏態 / 超峰度用 2000 個平均算, 它們自己也有抽樣誤差:2000 筆時偏態約 ±0.05、超峰度約 ±0.11, 所以看到 −0.25 這種數字不必當成「還沒收斂」,那就是雜訊。

另一條同時成立的規律:√n

上表第 3、4 欄對得很緊:2000 個平均的標準差 ≈ σ / √n。 這是 CLT 的另一半 —— 它不只說「形狀變鐘形」,還說那個鐘形有多寬

白話:樣本數變 4 倍,平均值的抖動只縮小 2 倍。 這就是為什麼做 A/B test 要拉那麼多流量才能把信心區間壓窄 —— 報酬遞減是根號給的。 機率統計 01 關的大數法則只告訴你「n 大了平均會收斂」, √n 才是回答「收斂得多快」的那個數。

所以這一整關的結論是

不是世界喜歡常態,是「很多小東西加起來」這個動作會產生常態。 而現實中大量的量剛好就是一堆小因素加起來的:一個人的身高是幾百個基因加環境各推一點; 一次 API 請求的耗時是十幾段處理時間加起來;一天的股價變動是幾萬筆交易的合力。 所以鐘形到處都是,不是因為有人規定,是因為加法

而這件事馬上帶出下一個問題:兩台機器加起來,新機器的 μ 和 σ 是多少? μ 直接相加沒問題,σ 不能相加 —— 02 關講過這句話但沒兌現機率統計 03 關把這筆帳算清楚。

⑧ 真實系統裡的常態(以及它壞掉的時候)

工程師的「原來如此」:p99 為什麼不能用「平均 + 幾個標準差」推

你在做效能監控。手上有延遲的平均和標準差,老闆問 p99。 很自然就想套常態:p99 ≈ μ + 2.326 σ(2.326 就是 那條曲線右邊只剩 1% 面積的位置 —— 用 的話講就是 z(0.99))。 這個推法在延遲上會系統性地把你害死,因為延遲是右偏的。

拿本頁「右偏」那台機器(指數分布,μ = 1、σ = 1)算給你看, 單位是「平均的幾倍」,兩邊都是同一台機器的同一份規格:

分位真值常態推出來偏差

看 p50:常態說 1.00,真值只有 0.69 —— 常態把「中間那個人」高估了 44%, 因為它以為平均就在正中間,而右偏分布的平均被長尾巴往右拉走了。 看 p99:常態說 3.33,真值 4.61 —— 低估 28%;到 p99.9 低估 41%。

方向永遠一樣:對右偏的量,常態高估中位數、低估尾巴。 兩邊都錯,而且是往「讓你放心」的方向錯。所以 p50 / p99 這種東西要直接量分位數 (t-digest、HdrHistogram 這些工具存的就是分位數而不是 μ 和 σ),不要拿兩個數字回推。

工程師的「原來如此」:量化裡的肥尾,以及 5σ 有多離譜

最佳化 03 關那整套「用 σ 當風險」的框架,底下也是常態假設。 它會怎麼壞?用本頁的積分器算一下常態給極端事件的機率 (雙尾,也就是「往上或往下超過 k 個 σ」):

k σ常態給的機率 平均多久一次(每年 252 個交易日)

常態說 5σ 事件要等大約 6,900 年一次。 而 1987-10-19(黑色星期一)標普單日跌約 20%,以當時日波動 σ ≈ 1% 算, 那是 20σ —— 常態給它的機率是 5.5 × 10−89, 換算成「平均多久一次」是宇宙年齡的 1075 倍。 它卻在一個人的職涯裡發生了。

結論不是「不要用常態」,是「知道它在哪裡會騙你」: 常態的尾巴以 e−z²/2 的速度掉,這個速度太快了。 真實金融報酬的尾巴接近幂次衰減(肥尾),極端事件的機率可能差好幾個數量級。 中間那 95% 用常態算很好用;拿它算「最壞情況」就是在騙自己(歷史事件與肥尾這件事是金融領域的常識引用,不是本頁算出來的; 本頁算的只有右邊那兩欄,也就是「假設常態的話會得到什麼」。)

踩坑 1:不是所有東西都常態,而且不常態的通常更重要

所得、財富、公司規模、城市人口、API 延遲、股價報酬、檔案大小、社群追蹤數 —— 這些全部不是常態。它們是右偏或肥尾的,有的甚至連「有限變異數」都不一定成立。

辨識的土方法:算平均和中位數,差很多就不是常態(常態這兩個相等)。 或者問一句「這個量有沒有可能出現 10 倍於平均的值?」—— 身高不可能(10 倍是 17 公尺),所得完全可能。可能的那些就別套常態。

踩坑 2:CLT 說的是「平均」常態,不是「資料」常態

這是最常見的誤讀。回去看 那兩張圖: 上圖(原始資料)從頭到尾沒有變過,永遠又醜又不常態; 變成鐘形的只有下圖(樣本平均)。

所以「我的資料 n 很大,所以可以當常態」是錯的 —— n 大只讓你對平均值的估計接近常態,資料本身該多歪還是多歪。 這件事影響很實際:信心區間可以放心用常態近似(那是在講平均), 但「異常偵測、容量規劃、風控」是在講單筆資料,不能用

踩坑 3:CLT 收斂得多快,取決於原料有多歪

課本常說「n > 30 就可以了」,那是一句方便的謊。看 那張表的偏態欄:均勻 / 雙峰 / 骰子在 n = 5 就幾乎歸零了, 但右偏那台在 n = 30 偏態還有 0.32,肉眼都還看得出右邊拖著尾巴。

原料越歪,需要的 n 越大。而且沒有一個對所有分布都成立的門檻 —— 對某些肥尾分布(變異數無限的那種)CLT 根本不成立,n 拉到多大都不會變常態。

踩坑 4:小樣本的直方圖看不出形狀,別靠肉眼判斷

按一下「12(真人)」那顆按鈕就懂了:12 筆資料的直方圖 跟常態、跟均勻、跟雙峰都「看起來差不多」,因為它根本沒有形狀。 看 ② 那張誤差表最左欄:n = 200 時相對誤差全部在 40% 以上,而且組距越窄越糟。

更糟的是你可以靠調組距把同一份資料畫成任何形狀。 所以「看起來是常態」不是證據;要判斷就用 Q-Q plot 或正式的檢定, 而且要先問「我需要多精確」—— 大部分時候你根本不需要它真的是常態。

⑨ 換個尺度看:取 ln 之後,右偏的東西常常就變成常態

⑧ 節花了整節告訴你「常態在哪裡會騙你」,而且反覆出現同一個罪魁禍首:右偏。 所得、檔案大小、市值、API 延遲、股價 —— 這些量的共同點是「左邊有一道牆(不能是負的)、 右邊沒有天花板」。這一節給你一把處理它們的槌子,而且是一把很小的槌子:

不要看 x,看 ln x 就這樣。換一把尺量同一件事 —— 而不是換一套統計理論。 ⑧ 節那句「還有一條萬用出路:換個尺度看」欠的帳,這一節還。

這一節只教「用」,不教 log 本身。要用到的結果只有一句話: 右偏的資料取 ln 之後常常就變成常態, 而「ln X 是常態」的那些 X 有自己的名字 —— 對數常態

至於 ln 憑什麼有這個本事、為什麼統計上一律用自然對數 而不是 log10、還有它那幾條你每次都要重查的性質 —— 那些是 log 自己的題目,不是常態分布的題目,這一節不碰。 你只需要接受「ln 是一把換過刻度的尺」,然後看下面那顆按鈕做了什麼。

那些題目在 基礎 01 關(指數與對數)④ 節是那三條性質(乘變加、冪變乘、比變減)與現場對帳盤, ⑤ 節回答「為什麼偏偏是 e」。 沒讀過也不影響這一節 —— 卡住再回去翻就好。

⑨-A 對數常態:它的定義就是一句話

X 是對數常態(lognormal) ⟺ ln X 是常態 不是「取 log 之後長得像常態」,是「取 log 之後就是常態」。 所以對數常態沒有自己的新理論,它是常態透過 exp 這面鏡子照出來的樣子。 本頁的參數寫成 lnX ~ N(ln m, s²)m中位數sln 尺度上的 σ不是原尺度的 σ,這是最常見的誤讀)。

它有一個特別值得記住的性質,而且下面的玩具會一直把它顯示給你看:

中位數 = m    平均 E[X] = m · es²/2    平均 > 中位數 平均被右邊那條長尾巴往右拉走了,中位數不會(它只數個數,不管值多大)。 s 越大,兩者差越多:s = 0.6 時平均是中位數的 e0.18 ≈ 1.20 倍;s = 1.2 時變成 2.05 倍。 這就是「平均薪資」永遠比「中位數薪資」漂亮的數學理由 —— 兩邊都沒有說謊, 是那條尾巴在講話。

⑨-B 動手:同一份價格資料,按一下「取 ln」看它被拉正

這張圖在幹嘛

你會看到什麼:一張直方圖,資料是 2000 個模擬出來的價格(中位數固定在 100 元)。 青色長條是那 2000 筆的分布,紫色曲線是理論密度。 藍色虛線中位數紅色虛線平均 —— 兩條線分不分得開,就是這一節的全部戲份。

你可以動什麼:兩顆按鈕切尺度(原尺度(元) / 取 ln 之後)—— 這就是那顆「取 ln」的按鈕;一根滑桿調 s(ln 尺度的 σ,也就是「歪多少」); 「再抽一次」換 seed 重抽那 2000 筆。

要看出什麼:原尺度下把 s 拉大 —— 分布越來越歪、尾巴越來越長,紅線(平均)被拖著往右跑,藍線(中位數)釘在 100 不動, 讀數盤的偏態一路往上。然後按「取 ln 之後」: 同一份資料變成漂亮對稱的鐘形,偏態掉到 0 附近,紅線藍線疊在一起資料一筆都沒改,只是換了一把尺量。

用哪把尺看
s —— ln 尺度上的 σ(歪多少)
2000 筆的 seed:
工程師的「原來如此」:會用到這把槌子的量長什麼樣

體質都一樣:左邊有一道牆(不能是負的)、右邊沒有天花板 —— 所得、市值、檔案大小、API 延遲、股價。這些量的「平均」永遠比「中位數」漂亮, 所以看板上只放平均的時候,你看到的其實是那條尾巴在講話。

兩個具體的下游: 監控延遲時,改成看 ln(延遲) 的中心與散開, 比硬套 μ + kσ 誠實得多(⑧ 節那張分位表就是在說後者會系統性出錯); 量化裡的 log 報酬就是把價格搬到 ln 尺度上再相減 —— 價格是對數常態、log 報酬是常態,實戰那一關的白板整張都站在這個尺度上。 它為什麼要這樣搬,屬於 log 那個獨立單元的內容。

誠實提醒:取 log 不會修好肥尾(⑧ 節那張 kσ 表)。 它修的是右偏,不是「極端事件比常態預期的多」那件事 —— 兩個問題看起來像,解法完全不同。

用它的時候三個坑
  • 0 和負數取不了。延遲有 0、報酬會是負的。常見補丁是 ln(x + 1)log1p),但那條補丁會改變形狀, 而且加的那個 1 是你憑感覺選的 —— 要在報告裡寫清楚。
  • 算完不要天真地 exp 回去。因為 E[exp(Y)] ≠ exp(E[Y])機率統計 01 關 ⑤ 節那條「E 穿不過非線性函數」)。 把 ln 尺度的平均 exp 回原尺度,你拿到的是中位數,不是平均 —— 差的正好是上面那個 es²/2 因子。 這是實務上最常見的一個安靜的錯。
  • 「取 log 就變常態」不是定律,是常見現象。 有些右偏資料取完還是歪的(例如混了兩個族群的雙峰)。 做法照舊:畫圖看、或用 Q-Q plot,不要假設它一定成立。

所以這一節的結論是:遇到右偏資料,先試著換尺度,再考慮換理論ln X 是常態的那些 X 就叫對數常態, 而它的中位數是 m、平均是 m·es²/2 —— 這兩個數字分得開多遠,就是那條尾巴有多長。

log 本身是獨立主題,之後會有自己的單元(指數與對數在講什麼、為什麼統計一律用自然對數、 那幾條每次都要重查的性質、以及 log 報酬的可加性)。這一節只借用它的結果。

⑩ 這關回答了什麼

密度曲線的縱軸到底是什麼?

是「每單位寬度的機率」,單位是「每 cm」(跟橫軸的單位互為倒數)。 它不是機率,也不是筆數,而且可以大於 1 —— 在 把 σ 拉到 4 以下、峰高就超過 0.1; 要是量的東西單位很小(例如以「公尺」記身高,σ = 0.103),峰高會直接變成 3.87。

要拿機率就得乘上寬度、也就是算面積 那個綠色填色就是在算面積,而它旁邊的「2000 筆實測比例」 就是拿真的資料去對帳。整條曲線底下的面積永遠是 1,這件事由公式裡的 1/(σ√(2π)) 保證。

類比:時速表上的 60 不是距離,要乘上時間才是距離。密度也一樣,要乘上寬度才是機率。

為什麼單一點的機率是 0?這不是很荒謬嗎?

因為「剛好 167」的意思是 167.000000… 無限多位全是零,這件事的面積寬度是 0,面積自然是 0。 不荒謬的理由是:你從來沒有真的在問這個問題。

你的皮尺讀到 0.1 cm,所以你問的其實是 P(166.95 ≤ x ≤ 167.05) = —— 一個正常的、非零的機率。你的儀器精度就是那個寬度。 的「縮成一點」按鈕可以親手看到面積歸零。

另一個角度:連續分布下「每個點機率 0」跟「總機率 1」不衝突, 因為那是無限多個 0 在積分意義下加起來。這跟「一條線段長度是 1, 但線段上每個點的長度都是 0」是完全同一件事,而後者你早就接受了。

常態為什麼這麼常見?是巧合嗎?

不是巧合,是中央極限定理:「很多小東西加起來 / 取平均」這個動作本身就會生出鐘形, 跟那些小東西原本什麼形狀幾乎無關。 讓你拿四台完全不常態的機器(均勻、右偏、雙峰、連續都不是的骰子)親手驗這件事。

而現實中很多量就是「一堆小因素的合力」:身高是幾百個基因加營養加睡眠; 一次請求的延遲是十幾段處理時間相加;一天的價格變動是幾萬筆交易的淨效果; 製造誤差是十幾道工序各偏一點。所以你會一直遇到它。

但要小心兩件事:(1)如果那些小東西是相乘而不是相加,你會得到對數常態(右偏), 所得和檔案大小就是這種;(2)如果其中一個因素大到蓋過其他所有人,CLT 也不成立。 鐘形要的是「很多個、每個都不重要」。

z 分數到底能幹嘛?

三件事,而且都很實用:

1. 跨欄位比大小。身高多 11 cm 和月薪多 1.8 萬沒法比, 換成 z = +1.07 和 z = +1.63 就能比 —— 月薪那項更突出。 就是在做這件事,三根數線疊在一起看最清楚。

2. 查機率。有了 z 就能查「比他更極端的有幾 %」。 z = 1, 2, 3 對應的中央區間就是 68.27% / 95.45% / 99.73%( 那張表)。

3. 餵給演算法。05 關的 z-score 標準化 就是把每一欄都做這件事。做完之後每欄變異數都是 1, 共變異數矩陣就退化成相關係數矩陣。 任何「按距離辦事」的演算法(k-NN、k-means、gradient descent、正則化)都需要先做, 否則單位大的那一欄會把結果整個吃掉。

順帶把 02 關那筆帳收掉: 要用標準差不用變異數,就是因為只有標準差跟資料同單位,除下去才會把單位消乾淨。

不是常態的資料,還能用這一套嗎?

分成三種情況,答案完全不同。

(1)你在講「平均值」—— 能用。CLT 保證樣本平均接近常態, 所以信心區間、A/B test、迴歸係數的檢定,這些都能放心用常態近似。 注意連 σ/√n 這個公式都不需要資料常態,它只需要變異數有限。

(2)你在講「單筆資料」的常規範圍 —— 勉強能用,但要驗。 「μ ± 2σ 大概涵蓋 95%」在很多溫和偏斜的資料上還算堪用; 要是資料明顯右偏(延遲、所得),直接改用分位數更省事也更誠實。

(3)你在講「極端事件 / 最壞情況」—— 不能用,而且錯得很危險。 常態的尾巴掉太快(見 那張 kσ 表), 會系統性低估極端事件的機率。這種問題要用極值理論、歷史情境、 或直接壓力測試,不要拿 σ 去外推。

還有一條萬用出路:換個尺度看。所得、檔案大小、市值這些右偏的量, 取對數之後常常就變成漂亮的常態(叫對數常態), 之後這一整套工具就全部可以用在 log(x) 上 —— ⑨ 節把這條出路整節做完了,含那顆「取 ln」按鈕與三個坑。

68% 這種數字到二維還成立嗎?

不成立,而且掉得比你想的多。 一維的 ±1σ 涵蓋 68.27%; 二維的「1σ 橢圓」(也就是馬氏距離 = 1 的那圈)只涵蓋約 39.3%

直覺上的理由不難:二維要「兩個方向都同時落在 1σ 以內」才算進去, 而條件變多,通過的比例當然變低。更精確地說, 二維的馬氏距離平方服從自由度 2 的卡方分布,算出來 1 − e−1/2 = 39.3%。

要在二維涵蓋 95% 得把橢圓放大到馬氏距離 ≈ 2.45(不是 2)。 這件事 機率統計 05 關會實際算給你看, 並且會用蒙地卡羅數點來驗。這裡先記住結論:1σ 的涵蓋率會隨維度掉,不能沿用一維那三個數字。

為什麼指數裡是 −½ z²,不是 −z² 或 −|z|?

先說為什麼是平方而不是絕對值:換成 e−|z| 你會得到一個合法的分布(叫拉普拉斯分布),但它在中心是個尖角、不可微, 而且它不是 CLT 的極限。平方那一版才是「很多小東西加起來」自然跑出來的形狀, 這件事沒得選 —— 是 那個實驗決定的,不是誰偏好的。

再說為什麼是 ½:那顆係數決定了「σ 這顆旋鈕」跟「真正的標準差」之間差幾倍。 寫成 e−c·z² 的話, 算出來的標準差會是 1/√(2c)。 取 c = ½ 剛好讓它等於 1,於是 公式裡那個 σ 就是標準差本人,不用再乘任何倍數。純粹是為了讓符號好用。

這頁的 σ 到底是母體的還是樣本的?除以 n 還是 n−1?

兩種都出現了,我分開標:

機器的 σ 是母體參數(真值,你永遠不知道)。 那四台機器的 σ 我是用數學算的,不是估的 —— 均勻分布 σ = 1/√12、骰子 σ = √(35/12) 之類,所以「理論 σ/√n」那一欄是真值。

從資料算出來的一律是樣本版,除以 n−1(ddof = 1,全站統一)。 ② 那個 s = 10.30 是 12 個人算的樣本標準差, ⑦ 那個「2000 個平均的 sd」也是樣本版。

為什麼是 n−1 而不是 n:因為你用樣本平均當中心, 偏差已經被迫加起來等於 0,所以 n 個偏差裡只有 n−1 個是自由的。 除以 n 會系統性低估。機率統計 01 關第 ⑥ 節把這件事算給你看過。

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

現在你會處理一台機器了:它的形狀、怎麼讀面積、怎麼換成 z、以及它為什麼那麼常見。

全程都在做一件事:把好幾個數字加起來。 我只跟你講了「加完會變鐘形」,完全沒講加完的 σ 是多少 —— 表格裡那個 σ/√n 是我直接寫上去的,你也只是看到它對得上, 不知道它憑什麼。

而且那還是最簡單的情況:n 個互相獨立、規格相同的東西。 真實的問題長這樣:兩台不一樣的機器,而且它們還會連動(一個漲另一個也漲)。 這時候「加起來」的變異數是多少?

機率統計 03 關「把兩個隨機變數加起來」把這筆帳算清楚, 並且會兌現 02 關那句「標準差不能相加」。 算完之後你會發現答案長成 wTCw —— 也就是 最佳化 03 關那個看起來從天上掉下來的組合風險公式。