排序把樣本變成新的隨機變數
想像你獨立量了五次公車到站要等多久:7、3、11、4、9 分鐘。看之前,每一個都是各自的隨機變數。現在把它們排序:3、4、7、9、11。這串排好的數列就是一連串新的隨機變數,叫做次序統計量,記作 X_(1)、X_(2)、...、X_(n),其中 X_(1) 是最小值(最小者),X_(n) 是最大值(最大者),而正中間那個就是中位數。關鍵的心態轉換在於:X_(1) 不再是「你量的第一個值」,而是「這幾次量測中結果最小的那一個」,這就讓它成為一個貨真價實的新隨機量,擁有自己的分配。
為什麼要在意?只要「極端值」或「典型值」重要,次序統計量就無所不在。最大值可以模擬百年一遇的最大洪水,或伺服器群中最壞情況的延遲;最小值可以模擬最先故障的零件,因而模擬一整條鏈的壽命;中位數則給出一個穩健的中心感,不會被單一個離譜的離群值拖著跑。我們全程假設這 n 個原始抽取是獨立且同分配的——即來自某個共同分配(其 CDF 為 F、密度為 f)的 i.i.d. 樣本——因為正是這個假設讓代數變得乾淨。整個主題其實只是本單元前面那個 CDF 法,再配上一個好點子而已。
最大值與最小值:各靠一個巧妙的事件
先從最大值入手,因為它有最俐落的小技巧。要找它的 CDF,我們問:P(X_(n) <= x) 是多少?好點子就在這裡——這 n 個值中的最大者不超過 x,若且唯若每一個值都不超過 x。這就把一個關於難搞的最大值的敘述,轉換成同時關於全部 n 個變數的敘述,而因為它們彼此獨立,聯合機率就分解成一個簡單的乘積。在共同 CDF 為 F 之下,每一次抽取都滿足 P(X_i <= x) = F(x),所以 P(X_(n) <= x) = F(x)^n。這就是最大值分配的全部推導。
最小值靠的是鏡像的技巧,但你必須先翻到補事件。最小者大於 x,若且唯若它們全部都大於 x,所以 P(X_(1) > x) = (1 - F(x))^n。這直接給出存活那一側;用 1 去減就得到 CDF:P(X_(1) <= x) = 1 - (1 - F(x))^n。一個小小的數字驗算能讓它牢記:取 n = 3 個來自 [0, 1] 上均勻分配的 i.i.d. 抽取(其中 F(x) = x),最大值的 CDF 是 x^3,最小值的 CDF 是 1 - (1 - x)^3。在 x = 0.5 處,最大值低於 0.5 的機率只有 0.125,而最小值低於 0.5 的機率是 0.875——正好符合那個直覺:抽三次,最大者傾向落在高處,最小者傾向落在低處。
極端值的密度,以及一個完整範例
一旦有了 CDF,對它微分就得到密度,正是本單元前面那個還原密度的動作。用連鎖律對 F(x)^n 微分,得到最大值的密度:f_max(x) = n * F(x)^(n-1) * f(x)。把它讀成一個故事:要讓最大值恰好落在 x,n 個抽取中必須有一個正好坐在 x(這是 f(x) 因子),其餘 n - 1 個必須全都落在它下方(這是 F(x)^(n-1) 因子),而哪一個抽取是那個高的,共有 n 種選法(前頭的 n)。最小值與之鏡像對稱:f_min(x) = n * (1 - F(x))^(n-1) * f(x),只是現在其餘 n - 1 個必須全都坐在上方。
我們用一個壽命問題把它具體化。假設一個小裝置含有 4 個獨立零件,每個零件的壽命服從指數分配,使得 F(x) = 1 - e^(-x)(x >= 0,時間以年計,平均 1 年)。如果這個裝置在它*第一個*零件壞掉的瞬間就報廢,那麼它的壽命就是這四者的最小值。於是 1 - F(x) = e^(-x),而 f_min(x) = 4 * (e^(-x))^3 * e^(-x) = 4 e^(-4x)。這恰好是一個率為 4 的指數分配——n 個 i.i.d. 指數變數的最小值仍是指數分配,且各率相加。所以一個 4 零件的串聯裝置平均壽命是 1/4 年,比單一零件短四倍,這正符合「一條鏈的強度只取決於它最弱的一環」這個直覺。
一般的第 k 個次序統計量與中位數
最小值與最大值之所以特別,是因為其餘每一個抽取都只能落在一側。對於一般的 X_(k)——比方說中位數,那個正中間的值——記帳更豐富,但圖像是一樣的。要把第 k 小者正好擺在 x,你需要一個抽取在 x、恰好 k - 1 個抽取在 x 以下、其餘 n - k 個抽取在 x 以上。「在下方」、「在該處」、「在上方」的機率分別是 F(x)、f(x)、1 - F(x)。數出把這 n 個抽取分派進這三種角色的方法數,是一個多項選擇,於是得到密度:
Density of the k-th order statistic of an i.i.d. sample (cdf F, density f):
f_(k)(x) = [ n! / ((k-1)! * 1! * (n-k)!) ] * F(x)^(k-1) * f(x) * (1 - F(x))^(n-k)
\___________ count ___________/ \below/ \at/ \___above___/
Special cases:
k = n (max): f_(n)(x) = n * F(x)^(n-1) * f(x)
k = 1 (min): f_(1)(x) = n * f(x) * (1 - F(x))^(n-1)樣本中位數不過就是把 k 取在正中間的 X_(k)(n 為奇數時,k = (n+1)/2)。把它代入主公式,再用 x 對那個密度積分,就得到中位數的期望值——一個穩健的中心估計。這裡有個讓人栽跟頭的誠實提醒:即使原始抽取是對稱的,中位數的密度形狀一般也不會跟單一抽取的密度相同,而樣本中位數的*期望值*除了在漂亮對稱的情形外,也不必然等於母體中位數。次序統計量有自己的分配,不是母體的複本。第二個誠實的點:單一個排好的值,等於任何精確的 x 之機率仍是零——一如連續變數的慣例,密度不是機率;只有它在某段區間上的積分才是。
全距,以及為何均勻次序統計量是隱藏的骨架
兩個次序統計量結合成一個著名的第三個量:全距,R = X_(n) - X_(1),即從最小到最大的跨度。樣本全距是最簡單的離散程度量度,而要找它的分配,需要最小值與最大值的*聯合*密度,而非單獨某一個——這跟本單元前面卷積與 Jacobian 那幾篇的「先結合、再變換」精神相同,都是把幾個變數的函數推送到一個新變數上。一個快速的合理感受:隨著 n 變大,最大值往上漂、最小值往下漂,所以全距傾向變寬——樣本越多,兩端各自抓到一個極端值的機會就越大。
有一個值得帶走的深刻簡化。[0, 1] 上均勻樣本的次序統計量是通用的基石,原因在於次序統計量性質:把任何連續資料餵進它自己的 CDF F(也就是上一篇遇到的機率積分變換),你會得到均勻的值,而關鍵在於*排序與這個單調變換可以交換*。所以任何連續分配的次序統計量,無非就是把 F 的反函數套在一個均勻樣本的次序統計量上。均勻的次序統計量有一個格外乾淨的形式——X_(k) 服從參數為 k 與 n - k + 1 的 Beta 分配,其平均值就單純是 k / (n + 1)。
這條小公式美在它非常具體。對 [0, 1] 上 n 個 i.i.d. 均勻變數,排好之後各值的期望位置是 1/(n+1)、2/(n+1)、...、n/(n+1)——這些排好的點把自己均勻地鋪開,期望間隔相等,並在兩端各留下略大一點的餘裕。對 n = 4,期望的排序值是 0.2、0.4、0.6、0.8:是整齊的五等分,而不是初學者可能猜的四等分。這一個例子就抓住了整個單元的精神——隨機變數的某個函數(這裡是排序)會產生一個全新、可完整描述的分配,而 CDF 法正是那把能打開每一個分配的螺絲起子。