您好,登錄后才能下訂單哦!
本篇內容主要講解“Python矩與矩生成函數是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python矩與矩生成函數是什么”吧!
值得思考的是,期望和方差足以用來描述一個分布嗎?如果答案是可以,那么我們就沒有必要尋找其它描述量的。事實上,這兩個描述量并不足以完整的描述一個分布。
我們來看兩個分布,一個是指數分布:
f(x)={ex0ififx≥0x<0f(x)={exifx≥00ifx<0
它的期望為E(x)=1E(x)=1,方差為Var(x)=1Var(x)=1。
我們用Y = 2-X來獲得一個新的隨機變量,及其分布:
f(y)={e2?y0ifify≤2y>2f(y)={e2?yify≤20ify>2
該密度曲線與原來的密度曲線關于直線X=1對稱,與原來的分布有相同的期望值和方差。期望為E(x)=1E(x)=1,方差為Var(x)=1Var(x)=1
我們繪制兩個分布的密度曲線,如下圖:
可以看到,即使期望值和方差保持不變,兩個分布曲線明顯不同。第一條曲線下的面積偏向左,而第二條曲線則向右側傾斜。為了表達分布的這一特征,我們引入一個新的描述量,斜度(skewness)。它的定義如下:
Skew(X)=E[(X?μ)3]Skew(X)=E[(X?μ)3]
上面兩個分布,第一條曲線向左偏斜,斜度分別為2。另一條曲線的斜度為-2。很明顯,斜度的不同可以帶來差別巨大的分布(即使期望和方差都相同)。
繪制程序如下
from scipy.stats import exponimport numpy as npimport matplotlib.pyplot as plt rv = expon(scale = 1) x1 = np.linspace(0, 20, 100) x2 = np.linspace(-18, 2, 100) y1 = rv.pdf(x1) y2 = rv.pdf(2 - x2) plt.fill_between(x1, y1, 0.0, color = "green") plt.fill_between(x2, y2, 0.0, color = "coral", alpha = 0.5) plt.xlim([-6, 8]) plt.title("two distribution") plt.xlabel("RV") plt.ylabel("f(x)") plt.show()
觀察方差和斜度的定義,
Var(X)=E[(X?μ)2]Var(X)=E[(X?μ)2]
Skew(X)=E[(X?μ)3]Skew(X)=E[(X?μ)3]
都是X的函數的期望。它們的區別只在于函數的形式,即(X?μ)(X?μ)的乘方次數不同。方差為2次方,斜度為3次方。
上面的描述量都可以歸為“矩”(moment)的一族描述量。類似于方差和斜度這樣的,它們都是(X?μ)(X?μ)乘方的期望,稱為中心矩(central moment)。E[(x?μ)k]E[(x?μ)k]稱為k階中心矩,表示為μkμk,其中k = 2, 3, 4, ...
還有另一種是原點矩(moment about the origin),是XX乘方的期望。 E[Xk]E[Xk]稱為k階原點矩,表示為μ′kμk′,其中k = 1, 2, 3, ...
期望是一階原點矩:
E(X)=E(X1)E(X)=E(X1)
除了表示中心、離散程序、斜度這些特性外,更高階的矩可以描述分布的其它特性。矩統計中有重要的地位,比如參數估計的一種重要方法就是利用了矩。然而,根據矩的定義,我們需要對不同階的X冪求期望,這個過程包含復雜的積分過程,并不容易。矩同樣催生了矩生成函數(moment generating function),它是求解矩的一樣有力武器。
在了解矩生成函數之前,先來回顧冪級數(power series)。冪級數是不同階數的乘方(比如1,x,x2,x3...1,x,x2,x3...)的加權總和:
∑i=1+∞aixi∑i=1+∞aixi
aiai是一個常數。
冪級數是數學中的重要工具,它的美妙之處在于,解析函數都可以寫成冪級數的形式,比如三角函數sin(x)sin?(x)可以寫成:
sin(x)=x?x33!+x55!?x77!+...sin?(x)=x?x33!+x55!?x77!+...
將解析函數分解為冪級數的過程,就是泰勒分解(Taylor)。我們不再深入其具體過程。xnxn是很簡單的一種函數形式,它可以無限次求導,求導也很容易。這一特性讓冪級數變得很容易處理。將解析函數寫成冪級數,就起到化繁為簡的效果。
(冪級數這一工具在數學上的用途極其廣泛,它用于數學分析、微分方程、復變函數…… 不能不說,數學家很會活用一種研究透了的工具)
如果我們將冪級數的x看作隨機變量X,并求期望。根據期望可以線性相加的特征,有:
E(f(X))=a0+a1E(X)+a2E(X2)+a3E(X3)+...E(f(X))=a0+a1E(X)+a2E(X2)+a3E(X3)+...
我們可以通過矩,來計算f(X)的期望。
另一方面,我們可否通過解析函數來獲得矩呢?我們觀察下面一個指數函數,寫成冪級數的形式:
etx=1+tx+(tx)22!+(tx)33!+(tx)44!...etx=1+tx+(tx)22!+(tx)33!+(tx)44!...
我們再次將x看作隨機變量X,并對兩側求期望,即
E(etX)=1+tE(X)+t2E(X2)2!+t3E(X3)3!+t4E(X4)4!...E(etX)=1+tE(X)+t2E(X2)2!+t3E(X3)3!+t4E(X4)4!...
即使隨機變量的分布確定,E(etX)E(etX)的值還是會隨t的變化而變化,因此這是一個關于t的函數。我們將它記為M(t)M(t),這就是矩生成函數(moment generating function)。對M(t)M(t)的級數形式求導,并讓t等于0,可以讓高階的t的乘方消失,只留下E(X)E(X),即
M′(0)=E(X)M′(0)=E(X)
即一階矩。如果繼續求高階導,并讓t等于0,可以獲得高階的矩。
M(r)(0)=E(Xr)M(r)(0)=E(Xr)
有趣的是,多次求導系數正好等于冪級數系數中的階乘,所以可以得到上面優美的形式。我們通過冪級數的形式證明了,對矩生成函數求導,可以獲得各階的矩。相對于積分,求導是一個容易進行的操作。
矩生成函數的一面是冪級數,我們已經說了很多。矩生成函數的另一面,是它的指數函數的解析形式。即
M(t)=E[etX]=∫∞?∞etxf(x)dxM(t)=E[etX]=∫?∞∞etxf(x)dx
在我們獲知了f(x)的具體形式之后,我們可以利用該積分獲得矩生成函數,然后求得各階的矩。當然,你也可以通過矩的定義來求矩。但許多情況下,上面指數形式的積分可以使用一些已有的結果,所以很容易獲得矩生成函數。矩生成函數的求解矩的方式會便利許多。
矩生成函數的這一定義基于期望,因此可以使用期望的一些性質,產生有趣的結果。
性質1 如果X的矩生成函數為$MX(t)],且[$Y=aX+b$MX(t)],且[$Y=aX+b,那么
MY(t)=eatMX(bt)MY(t)=eatMX(bt)
(將Y寫成指數形式的期望,很容易證明該結論)
性質2 如果X和Y是獨立隨機變量,分別有矩生成函數MX,MYMX,MY。那么對于隨機變量Z=X+YZ=X+Y,有
MZ(t)=MX(t)MY(t)MZ(t)=MX(t)MY(t)
(基于獨立隨機變量乘積的期望,等于隨機變量期望的乘積)
練習:
推導Poisson分布的矩生成函數
到此,相信大家對“Python矩與矩生成函數是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。