JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

分位數、中位數與存活函數

累積分配函數由左讀到右;分位數則反過來讀——給定一個機率,回傳一個數值。我們將認識中位數與百分位數,學會把累積分配函數倒過來跑,並把它翻面成為驅動可靠度與存活分析的存活函數。

把累積分配函數倒著讀

上一篇建立了累積分配函數 F(x) = P(X <= x):餵給它一個數值,它就回傳「落在該值或以下」的機率。它由左讀到右——輸入數值、輸出機率。這最後一篇要問一個自然的相反問題。假設你想知道「有 90% 的機率落在哪個數值以下」。現在你交出的是一個機率,要的是一個數值。把累積分配函數朝這個相反方向讀,正是分位數的核心想法,而它的用處絲毫不亞於正向的讀法。

具體來說,第 p 分位數是使得 P(X <= q) = p 的那個數值 q——把左側機率切成 p 的那一點。對一個平滑且嚴格遞增的累積分配函數,這恰好就是反函數:q = F^(-1)(p)。想像 F 那條 S 形的圖。正向讀法是從 x 軸往上到曲線、再橫向到 y 軸;分位數讀法則反過來,從 y 軸上的 p 橫進去到曲線、再往下到 x 軸。同一條曲線,兩個方向讀。分位數函數 Q(p) = F^(-1)(p) 就是這個「橫進去再往下」讀法的正式名稱。

中位數與百分位數

最有名的分位數有自己的名字:中位數是 0.5 分位數,也就是兩側各有一半機率的那個值 Q(0.5)。作為「中心」的量度,它是你稍早認識的平均數 E[X] 的最大對手。兩者經常不一致,理由是本主題誠實的提醒之一:中位數無視「值離得多遠」,而平均數會被那些值拉走。把一個分配往一邊偏斜、放進一個巨大的值,平均數就會朝它猛地傾倒,中位數卻幾乎不動——這正是平均數誤導人時所警示的情形。

一個小例子就能讓它鮮活起來。取五份薪資:30、32、35、38、800(單位千)。平均數是 (30+32+35+38+800)/5 = 187,這個數字名單裡沒有任何人真的賺到——它被那單獨的 800 拉高了。中位數是中間的那個值 35,誠實地代表了一個典型的人。這正是為什麼房價與所得幾乎總是以中位數而非平均數來報導:中位數是穩健的,它能甩開少數幾個會把平均數毀掉的極端離群值。

其他百分位數把同一種切法推廣開來。第 90 百分位數是 Q(0.9),也就是有 90% 機率落在其下的那個值;四分位數則在 Q(0.25)、Q(0.5)、Q(0.75) 把分配切成四等份。第一與第三四分位數之間的差距,即四分位距 Q(0.75) - Q(0.25),是一個穩健的離散度量——它是中位數的天然搭檔,正如標準差搭配平均數。當一個孩子身高在第 60 百分位,那就是一句分位數的話:同齡孩子裡有 60% 比他矮。

當反函數不乖時

說 q = F^(-1)(p) 之所以乾淨,只在 F 嚴格遞增且連續時成立。從上一篇你已經知道 F 不一定具備這兩個性質。離散變數的累積分配函數是跳著往上爬、在跳躍之間保持水平;即使是連續的,也可能有變數沒放任何機率的水平段。這兩種情形都會弄壞單純的反函數,所以我們需要一個永遠有效的分位數定義——絕不當機、絕不含糊。

標準的修補是廣義反函數:Q(p) = 使得 F(x) >= p 的最小數值 x。換句話說,往右滑動,直到累積機率首次達到 p,就停下來。在水平段上——多個 x 值共用同一個 F——這條規則挑最左邊的那個,消除了含糊。在跳躍處——F 越過水準 p、卻沒有哪個 x 恰好命中它——它挑跳躍頂端的那個 x,使分位數永遠有定義。這就是統計學家實際使用、那個謹慎版本的分位數函數。

Generalized inverse (works for every cdf):
  Q(p) = min { x : F(x) >= p }       for 0 < p < 1

Die example, X = roll of a fair 6-sided die:
  F jumps by 1/6 at 1,2,3,4,5,6
  Q(0.5) = smallest x with F(x) >= 0.5
         = 3   (since F(3) = 3/6 = 0.5)
  Q(0.9) = smallest x with F(x) >= 0.9
         = 6   (since F(5) = 5/6 ~ 0.833 < 0.9, F(6) = 1)

Median is not unique here: any value in [3,4] splits 50/50,
but the rule pins it to 3 by taking the leftmost.
即使累積分配函數有跳躍或保持水平,廣義反函數仍讓分位數有良好定義。

存活函數:把累積分配函數翻面

累積分配函數回答的是「有多少機率在 x 或以下?」有時你想要的是相反的那條尾巴——「有多少在 x 以上?」那就是存活函數,S(x) = P(X > x) = 1 - F(x)。它是累積分配函數的翻面:F 從 0 起步、升到 1,S 則從 1 起步、落到 0。這名字源自它的出生地。若 X 是一台機器、一位病人或一顆燈泡能撐多久,那麼 S(t) = P(X > t) 就是它在時刻 t 之後依然健在的機率——它存活下來的機率。可靠度工程師把這同一個東西稱作可靠度函數。

既然 S 不過是 1 - F,何必多此一舉?因為在「壽命」類問題裡,戲都在尾巴上,而 S 直接把它說出來。「有多少比例的零件能撐過它們的 5 年保固?」就只是 S(5)。分位數也能同樣自然地從存活曲線讀出:中位數壽命是使 S(t) = 0.5 的那個時刻 t,也就是半數族群已經失效的那一刻。而像 P(X > a) 這樣的尾巴問題,直接讀成 S(a),腦中不必再做減法。累積分配函數與存活函數承載完全相同的資訊——它們是同一個分配的兩張臉——但各自讓一種不同的問題變得輕而易舉。

讓分位數函數派上用場

分位數函數不只用來報告數字——它是個貨真價實的工具,而其中一個漂亮的用法把整個本階串了起來。假設你能生成 0 與 1 之間的均勻亂數(每台電腦都能),卻想要來自另一個累積分配函數為 F 的分配的樣本。把一個均勻變數 U 餵進分位數函數:值 Q(U) = F^(-1)(U) 就恰好服從分配 F。這就是反轉換法,它是你稍早學過的機率積分變換的直接結果。

  1. 鎖定目標。比方說你想要來自速率為 lambda 的指數分配的樣本,其累積分配函數為 F(x) = 1 - e^(-lambda x),x >= 0。
  2. 手算把累積分配函數倒過來。令 p = 1 - e^(-lambda x) 並對 x 求解:e^(-lambda x) = 1 - p,故 x = -ln(1 - p) / lambda。這就是分位數函數 Q(p)。
  3. 從你的亂數產生器抽出一個 (0, 1) 上的均勻變數 U。
  4. 回傳 X = -ln(1 - U) / lambda。這個 X 是貨真價實的指數樣本;重複即可要多少有多少。

這魔法為什麼有效?直覺上,分位數函數把平坦的均勻分配又拉又擠,直到它的累積機率對上 F:F 陡升(高密度)的區域,會把更多均勻分配的長度映射進去,於是樣本就聚集在那裡。這正是你整篇都在用的、累積分配函數的倒讀法,如今拿來驅動模擬。它也為本階的大主題收尾——作為函數的隨機變數、作為其正向摘要的累積分配函數,以及把那份摘要倒著讀的兩種方式:分位數與存活函數