協(xié)方差的定義
對(duì)于一般的分布,直接代入E(X)之類的就可以計(jì)算出來(lái)了,但真給你一個(gè)具體數(shù)值的分布,要計(jì)算協(xié)方差矩陣,根據(jù)這個(gè)公式來(lái)計(jì)算,還真不容易反應(yīng)過(guò)來(lái)。網(wǎng)上值得參考的資料也不多,這里用一個(gè)例子說(shuō)明協(xié)方差矩陣是怎么計(jì)算出來(lái)的吧。 記住,X、Y是一個(gè)列向量,它表示了每種情況下每個(gè)樣本可能出現(xiàn)的數(shù)。比如給定 則X表示x軸可能出現(xiàn)的數(shù),Y表示y軸可能出現(xiàn)的。注意這里是關(guān)鍵,給定了4個(gè)樣本,每個(gè)樣本都是二維的,所以只可能有X和Y兩種維度。所以
用中文來(lái)描述,就是: 協(xié)方差(i,j)=(第i列的所有元素-第i列的均值)*(第j列的所有元素-第j列的均值) 這里只有X,Y兩列,所以得到的協(xié)方差矩陣是2x2的矩陣,下面分別求出每一個(gè)元素: 所以,按照定義,給定的4個(gè)二維樣本的協(xié)方差矩陣為:
用matlab計(jì)算這個(gè)例子 z=[1,2;3,6;4,2;5,2] cov(z) ans = 2.9167 -0.3333 -0.3333 4.0000 可以看出,matlab計(jì)算協(xié)方差過(guò)程中還將元素統(tǒng)一縮小了3倍。所以,協(xié)方差的matlab計(jì)算公式為: 協(xié)方差(i,j)=(第i列所有元素-第i列均值)*(第j列所有元素-第j列均值)/(樣本數(shù)-1) 下面在給出一個(gè)4維3樣本的實(shí)例,注意4維樣本與符號(hào)X,Y就沒(méi)有關(guān)系了,X,Y表示兩維的,4維就直接套用計(jì)算公式,不用X,Y那么具有迷惑性的表達(dá)了。
(3)與matlab計(jì)算驗(yàn)證 Z=[1 2 3 4;3 4 1 2;2 3 1 4] cov(Z) ans = 1.0000 1.0000 -1.0000 -1.0000 1.0000 1.0000 -1.0000 -1.0000 -1.0000 -1.0000 1.3333 0.6667 -1.0000 -1.0000 0.6667 1.3333 可知該計(jì)算方法是正確的。我們還可以看出,協(xié)方差矩陣都是方陣,它的維度與樣本維度有關(guān)(相等)。參考2中還給出了計(jì)算協(xié)方差矩陣的源代碼,非常簡(jiǎn)潔易懂,在此感謝一下!
參考: [1] http://en./wiki/Covariance_matrix [2] http://www.cnblogs.com/cvlabs/archive/2010/05/08/1730319.html
|
|