协方差和协方差矩阵
協方差的定義
?
對于一般的分布,直接代入E(X)之類的就可以計算出來了,但真給你一個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這里用一個例子說明協方差矩陣是怎么計算出來的吧。
記住,X、Y是一個列向量,它表示了每種情況下每個樣本可能出現的數。比如給定
則X表示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.3333????4.0000
可以看出,matlab計算協方差過程中還將元素統一縮小了3倍。所以,協方差的matlab計算公式為:
??? 協方差(i,j)=(第i列所有元素-第i列均值)*(第j列所有元素-第j列均值)/(樣本數-1)
???????下面在給出一個4維3樣本的實例,注意4維樣本與符號X,Y就沒有關系了,X,Y表示兩維的,4維就直接套用計算公式,不用X,Y那么具有迷惑性的表達了。
?
?
?
????
????????????????
????????(3)與matlab計算驗證
???????????????????? 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
???????可知該計算方法是正確的。我們還可以看出,協方差矩陣都是方陣,它的維度與樣本維度有關(相等)
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 原地随机排列数组
- 下一篇: 自组织神经网络的实现