詳解協方差與協方差矩陣

2021-05-24 15:11:19 字數 1675 閱讀 4203

協方差的定義

對於一般的分布,直接代入

e(x)之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。

記住,x、y

是乙個列向量,它表示了每種情況下每個樣本可能出現的數。比如給定

表示x軸可能出現的數,y表示

y軸可能出現的。注意這裡是關鍵,給定了

4個樣本,每個樣本都是二維的,所以只可能有x和

y兩種維度。所以

用中文來描述,就是:

協方差(i,j)=(第i

列的所有元素-第

i列的均值)*(第

j列的所有元素-第

j列的均值)

這裡只有

x,y兩列,所以得到的協方差矩陣是

2x2的矩陣,下面分別求出每乙個元素:

所以,按照定義,給定的

4個二維樣本的協方差矩陣為:

用matlab

計算這個例子

z=[1,2;3,6;4,2;5,2]

cov(z)

ans =

2.9167-0.3333

-0.33334.0000

可以看出,

matlab

計算協方差過程中還將元素統一縮小了

3倍。所以,協方差的

matlab

計算公式為:

協方差

(i,j)=

(第

i列所有元素

-

i列均值)

*(第

j列所有元素

-

j列均值)

/(樣本數

-1

下面在給出乙個4維

3樣本的例項,注意

4維樣本與符號

x,y就沒有關係了,

x,y表示兩維的,

4維就直接套用計算公式,不用

x,y那麼具有迷惑性的表達了。

)與matlab

計算驗證

z=[1 2 3 4;3 4 1 2;2 3 1 4]

cov(z)

ans =

1.00001.0000-1.0000-1.0000

1.00001.0000-1.0000-1.0000

-1.0000-1.00001.33330.6667

-1.0000-1.00000.66671.3333

可知該計算方法是正確的。我們還可以看出,協方差矩陣都是方陣,它的維度與樣本維度有關(相等)。參考

2中還給出了計算協方差矩陣的源**,非常簡潔易懂,在此感謝一下!

參考:

詳解協方差與協方差矩陣

來自 協方差的定義 對於一般的分布,直接代入e x 之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。記住,x y是乙個列向量,它表示了每種情況下每個樣本可能出現的數...

詳解協方差與協方差矩陣

協方差的定義 對於一般的分布,直接代入e x 之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。記住,x y是乙個列向量,它表示了每種情況下每個樣本可能出現的數。比如...

詳解協方差與協方差矩陣

協方差的定義 對於一般的分布,直接代入 e x 之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。記住,x y 是乙個列向量,它表示了每種情況下每個樣本可能出現的數。...