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

生成動差,以及把獨立變數加起來

動差母函數無愧其名,而且名副其實兩遍:在零處對它微分,動差就一個接一個掉出來;把兩個相乘,你就瞬間把兩個獨立變數加好了。一個變換,兩種超能力。

兩份工作,一個函數

在上一篇裡你認識了動差母函數,定義為 M_X(t) = E[e^(tX)]——也就是 e 的「t 乘以你的隨機變數」次方的期望值,把它看成轉鈕 t 的函數。單看這個式子,可能覺得它是個奇怪到不值得花力氣去算的東西。但本篇正是它回本之處,因為同一個 M_X(t) 默默做著兩件完全不同、平常我們得分開硬磨的工作。第一,它生成動差:每一個 E[X]、E[X^2]、E[X^3] 都藏在它裡面,靠微分就能取回。第二,它把「加總獨立變數」這種雜亂的運算,化成單純的乘法。學會運用這兩件事,很多機率問題就忽然變成記帳了。

為什麼一個函數能同時帶來這兩份禮物?祕密就在指數 e^(tX)。對 t 微分它一次,就會拉下一個 X 因子,這正是讓動差浮現的機制;而和的指數會分解成乘積,e^(t(X+Y)) = e^(tX) e^(tY),這正是把和化成乘積的機制。底下的一切,不過是指數函數這兩條代數事實,套上了期望值的外衣。記住這點,那些公式就會顯得理所當然,而不是死背來的。

生成動差:在零處微分

這就是第一種超能力,也是讓整個東西得名的那一種。把指數展成它的冪級數:e^(tX) = 1 + tX + (t^2 / 2!) X^2 + (t^3 / 3!) X^3 + ...。逐項取期望值(線性會替我們辦到這件事),就得到 M_X(t) = 1 + t E[X] + (t^2 / 2!) E[X^2] + (t^3 / 3!) E[X^3] + ...。看看這在說什麼:M_X(t) 是一個泰勒級數,它的係數就是動差,再被階乘縮放。動差母函數是一個俐落的包裹,一口氣裝著 X 的每一個動差。它之所以生成動差,現在就看得見了——它們根本就是它的泰勒係數。

實務上你不會去展開級數;你會微分,然後令 t = 0。把級數微分一次再代入 t = 0,會殺掉除了 t 的一次項以外的每一項,剩下 M_X'(0) = E[X]。微分兩次再令 t = 0,就得到 M_X''(0) = E[X^2]。一般而言,在零處的第 k 階導數就是第 k 個動差:M_X 的第 n 階導數在 0 處的值等於 E[X^n]。t = 0 這個點之所以特別,是因為那裡 e^(tX) = 1,所有高階的雜亂都消失了,恰好留下你要的那個係數。

  1. 拿指數分配的動差母函數:對 X ~ 指數分配(率 lambda),M_X(t) = lambda / (lambda - t),在 t < lambda 時成立。
  2. 一階導數:M_X'(t) = lambda / (lambda - t)^2。令 t = 0:M_X'(0) = lambda / lambda^2 = 1 / lambda。所以 E[X] = 1 / lambda。
  3. 二階導數:M_X''(t) = 2 lambda / (lambda - t)^3。令 t = 0:M_X''(0) = 2 / lambda^2。所以 E[X^2] = 2 / lambda^2。
  4. 用計算公式組出變異數:Var(X) = E[X^2] - (E[X])^2 = 2 / lambda^2 - 1 / lambda^2 = 1 / lambda^2。沒跟任何積分搏鬥,只用了兩次微分。

把這個跟老老實實去求指數分配的 E[X] 與 E[X^2] 比一比——那是兩場分部積分的鏖戰。動差母函數把兩者都換成了例行的微分。這就是第一種超能力的日常價值:一旦你有了 M_X(t) 的封閉形式,每個動差都只差一次微分,而變異數也從 E[X^2] - (E[X])^2 中毫不費力地掉出來。

把獨立變數相加:卷積變成乘法

現在來看第二種超能力,這才是變換之所以不可或缺的真正原因。假設你把兩個獨立變數相加,S = X + Y。你在上一個階段學過,獨立變數之和的密度是一個卷積——一個黏膩的積分,把一個分配抹過另一個分配。卷積很折磨人:加三個、加十個變數,那積分就慘兮兮地層層巢狀。動差母函數直接把它切穿。因為 S = X + Y,我們有 M_S(t) = E[e^(t(X+Y))] = E[e^(tX) e^(tY)],而當 X 與 Y 獨立時,乘積的期望值會拆成期望值的乘積,於是 M_S(t) = E[e^(tX)] E[e^(tY)] = M_X(t) M_Y(t)。

Adding independent variables, two views:

  densities:   f_S  =  f_X  *  f_Y        (convolution -- hard)
  mgfs:        M_S(t) = M_X(t) * M_Y(t)    (multiply -- easy)

  n iid copies:  M_{X1+...+Xn}(t) = [ M_X(t) ]^n
同一個「把獨立變數相加」,在密度上是卷積,在動差母函數上卻是單純的乘積。

那一行,和的動差母函數等於各動差母函數之乘積,就是主力。對 n 個獨立且同分布的副本,它變成 M_X(t) 的 n 次方:把 n 個東西相加,就是把一個動差母函數升到 n 次冪。拿卜瓦松分配試試,它的動差母函數是 e^(lambda(e^t - 1))。加上一個獨立的 Poisson(mu):把動差母函數相乘,得到 e^(lambda(e^t - 1)) 乘以 e^(mu(e^t - 1)) = e^((lambda + mu)(e^t - 1))。這恰好就是 Poisson(lambda + mu) 的動差母函數。所以獨立卜瓦松之和仍是卜瓦松,率就單純地相加——這件事用卷積去做是苦工,在這裡卻是一行乘法。卜瓦松「對加法封閉」,而動差母函數一步就把它顯示出來。

為什麼那個答案值得信賴:唯一性定理

在卜瓦松那個例子裡,我們把兩個動差母函數相乘,認出乘積是 Poisson(lambda + mu) 的動差母函數,然後宣布那個和就是這個卜瓦松。最後這一步需要交代清楚:我們怎麼知道沒有兩個不同的分配會共用同一個動差母函數、害我們亂猜?這個保證就是動差母函數唯一性定理:如果兩個隨機變數有相同的動差母函數,而且那個動差母函數在 t = 0 周圍的一個開區間上是有限的,那麼它們有相同的分配,沒有但書。動差母函數是一枚指紋。所以把算出的動差母函數跟已知的對上,確實能釘住分配——那個「認出來」的步驟是合法的,不是含糊帶過。

不過要讀一下那行小字,因為它很重要。定理要求動差母函數在零附近是有限的。這恰恰是動差母函數的弱點所在:對某些分配而言,除了零以外的每一個 t,E[e^(tX)] 都是無窮大,所以動差母函數在任何有用的意義下都不存在。像柯西分配這種重尾分配是典型的麻煩製造者——它們的尾巴太肥,使得 e^(tX) 的期望值是無窮大,動差母函數這套機器根本無從著力。當動差母函數缺席時,你既不能用它生成動差(事實上柯西分配根本沒有平均值可生成),也不能用它來相加變數。

讓兩種超能力一起上工

兩種超能力一起用時最為精彩。想要獨立變數之和的平均值與變異數?把動差母函數相乘,再在零處對乘積微分——整個和的動差,完全不必碰卷積就到手了。還有一條更乾淨、把這點講得更明白的捷徑。取對數:累積量母函數是 K_X(t) = log M_X(t)。因為和的動差母函數是相乘的,它的對數就會相加:K_S(t) = K_X(t) + K_Y(t)。而 K 在零處的前兩階導數,直接把平均值與變異數交到你手上——K'(0) = E[X] 而 K''(0) = Var(X)。所以對獨立變數而言,平均值相加、變異數相加,現在你能看出這不過是「乘積的對數等於各對數之和」。

一個招牌例子把這一切串起來:常態分配。它的動差母函數是 M(t) = e^(mu t + sigma^2 t^2 / 2)。把兩個獨立常態相加,X ~ 常態分配(mu1, sigma1^2) 與 Y ~ 常態分配(mu2, sigma2^2):把動差母函數相乘,也就是把指數相加,得到 e^((mu1 + mu2) t + (sigma1^2 + sigma2^2) t^2 / 2)。這是 Normal(mu1 + mu2, sigma1^2 + sigma2^2) 的動差母函數。由唯一性定理,那個和就是這個常態——也就是那個著名事實:獨立常態之和仍是常態,平均值與變異數都相加。三行代數,取代了兩條鐘形曲線那令人卻步的卷積。

在你放開來大幹一場之前,有一個誠實的告誡。把動差母函數對上,能證明分配相等,但把動差母函數相加可不行——沒有「M_{X+Y} = M_X + M_Y」這回事。變數相加是動差母函數相乘;你絕不會去把動差母函數相加。而整個「和即乘積」的捷徑都需要獨立性,正如先前那段提示所警告的。把這兩道護欄放在心上,動差母函數(以及在它不存在時,下一篇等著的特徵函數)就把找動差與加變數,從費力的積分變成了乾淨的代數。