Matlab中cov函數詳細解讀
1、向量的方差與協方差矩陣
cov(x)
求向量x的方差。
cov(x)為一個數值,數值大小計算公式為S(x)。
cov(x,y)
求向量x與y的協方差矩陣。
cov(x,y)為2*2矩陣,
[S(x) C(x,y);
C(y,x) S(y);]
2、矩陣協方差矩陣
cov(X)
求矩陣X的協方差矩陣。diag(cov(X))得到每一個列向量的方差。sqrt(diag(cov(X)))得到每一個列的標准差。
若X大小為M*N,則cov(X) 大小為N*N的矩陣。cov(X) 的第(i,j)個元素等於X的第i列向量與第j列向量的方差,即C(Xi,Xj)。
cov(X,Y)
求矩陣X與Y的協方差矩陣。
若X大小為M*N,Y為K*P,則
X,Y的大小必須滿足
M*N=K*P,即X,Y的元素個數相同。
此時,
cov(X,Y)
等於cov([X(:) Y(:)])和
cov(X(:),Y(:)),即計算兩個向量的協方差矩陣,得到的結果為2*2矩陣。
[S(X(:)) C(X(:),Y(:));
C(Y(:),X(:)) S(Y(:));]
可知,S(X) =C(X,X).
3、關於歸一化的問題
在上述的S(X),C(X,Y)計算中,采用的歸一化參數是1/(N-1) ,其中N是向量中元素的個數。而下面的調用形式采用的歸一化參數是1/N。對應的公式如下圖所示。
cov(x,1)
求向量x的方差。計算方法如cov(x),但歸一化參數為1/N。
cov(x,y,1)
求向量x與y的協方差矩陣。計算方法如cov(x,y),但歸一化參數為1/N。
為區別對待,
cov(x)又記作cov(x,0)
cov(x,y)又記作cov(x,y,0)
cov(X)
又記作
cov(X
,0)
cov(X,Y)
又
記作cov(x,y
,0)
對於歸一化參數為1/(N-1)的情況,當N=1時,自動將參數調整為1/N。
