協方差與協方差矩陣


協方差與協方差矩陣

標簽: 協方差 協方差矩陣 統計


引言

最近在看主成分分析(PCA),其中有一步是計算樣本各維度的協方差矩陣。以前在看算法介紹時,也經常遇到,現找了些資料復習,總結如下。

協方差

通常,在提到協方差的時候,需要對其進一步區分。(1)隨機變量的協方差。跟數學期望、方差一樣,是分布的一個總體參數。(2)樣本的協方差。是樣本集的一個統計量,可作為聯合分布總體參數的一個估計。在實際中計算的通常是樣本的協方差。

隨機變量的協方差

在概率論和統計中,協方差是對兩個隨機變量聯合分布線性相關程度的一種度量。兩個隨機變量越線性相關,協方差越大,完全線性無關,協方差為零。定義如下。

\[\operatorname {cov} (X,Y)=\operatorname {E} {{\big [}(X-\operatorname {E} [X])(Y-\operatorname {E} [Y]){\big ]}} \]

\(X\)\(Y\)是同一個隨機變量時,\(X\)與其自身的協方差就是\(X\)的方差,可以說方差是協方差的一個特例。

\[\operatorname{cov}(X,X)=\operatorname{E}\big[(X-\operatorname{E}[X])(X-\operatorname{E}[X])\big] \]

\[\operatorname{var}(X)=\operatorname{cov}(X,X)=\operatorname{E}\big[(X-\operatorname{E}[X])^2] \]

由於隨機變量的取值范圍不同,兩個協方差不具備可比性。如\(X\)\(Y\)\(Z\)分別是三個隨機變量,想要比較\(X\)\(Y\)的線性相關程度強,還是\(X\)\(Z\)的線性相關程度強,通過\(\operatorname{cov}(X,Y)\)\(\operatorname{cov}(X,Z)\)無法直接比較。定義相關系數\(\eta\)

\[\eta ={\dfrac {\operatorname {cov} (X,Y)}{\sqrt {\operatorname {var} (X)\cdot \operatorname {var} (Y)}}}\ \]

通過\(X\)的方差\(\operatorname{var}(X)\)\(Y\)的方差\(\operatorname{var}(Y)\)對協方差\(\operatorname{cov}(X,Y)\)歸一化,得到相關系數\(\eta\)\(\eta\)的取值范圍是\([-1,1]\)\(1\)表示完全線性相關,\(-1\)表示完全線性負相關,\(0\)表示線性無關。線性無關並不代表完全無關,更不代表相互獨立。

樣本的協方差

在實際中,通常我們手頭會有一些樣本,樣本有多個屬性,每個樣本可以看成一個多維隨機變量的樣本點,我們需要分析兩個維度之間的線性關系。協方差及相關系數是度量隨機變量間線性關系的參數,由於不知道具體的分布,只能通過樣本來進行估計。

設樣本對應的多維隨機變量為\(\textbf X=[X_1, X_2, X_3, ..., X_n]^T\),樣本集合為\(\{\textbf x_{\cdot j}=[x_{1j},x_{2j},...,x_{nj}]^T|1\leqslant j\leqslant m\}\)\(m\)為樣本數量。與樣本方差的計算相似,\(a\)\(b\)兩個維度樣本的協方差公式為,其中\(1\leqslant a\leqslant n\)\(1\leqslant b\leqslant n\)\(n\)為樣本維度

\[q_{ab}=\dfrac {\sum_{j=1}^m{(x_{aj}-\bar x_a)(x_{bj}-\bar x_b)}}{m-1} \]

這里分母為\(m-1\)是因為隨機變量的數學期望未知,以樣本均值代替,自由度減一。

協方差矩陣

多維隨機變量的協方差矩陣

對多維隨機變量\(\textbf X=[X_1, X_2, X_3, ..., X_n]^T\),我們往往需要計算各維度兩兩之間的協方差,這樣各協方差組成了一個\(n\times n\)的矩陣,稱為協方差矩陣。協方差矩陣是個對稱矩陣,對角線上的元素是各維度上隨機變量的方差。我們定義協方差矩陣為\(\Sigma\),這個符號與求和\(\sum\)相同,需要根據上下文區分。矩陣內的元素\(\Sigma_{ij}\)

\[\Sigma_{ij}=\operatorname{cov}(X_i,X_j)=\operatorname{E}\big[(X_i-\operatorname{E}[X_i])(X_j-\operatorname{E}[X_j])\big] \]

這樣這個矩陣為

\[\Sigma=\operatorname{E}\big[(\textbf X-\operatorname{E}[\textbf X]\big)(\textbf X-\operatorname{E}[\textbf X])^T] \]

\[=\begin{bmatrix} \operatorname{cov}(X_1, X_1) & \operatorname{cov}(X_1, X_2) & \cdots & \operatorname{cov}(X_1, X_n) \\ \operatorname{cov}(X_2, X_1) & \operatorname{cov}(X_2, X_2) & \cdots & \operatorname{cov}(X_2, X_n) \\ \vdots & \vdots & \ddots & \vdots \\ \operatorname{cov}(X_n, X_1) & \operatorname{cov}(X_n, X_2) & \cdots & \operatorname{cov}(X_n, X_n) \end{bmatrix} \]

\[=\begin{bmatrix} \operatorname{E}\big[(X_1-\operatorname{E}[X_1])(X_1-\operatorname{E}[X_1])\big] & \operatorname{E}\big[(X_1-\operatorname{E}[X_1])(X_2-\operatorname{E}[X_2])\big] & \cdots & \operatorname{E}\big[(X_1-\operatorname{E}[X_1])(X_n-\operatorname{E}[X_n])\big] \\ \operatorname{E}\big[(X_2-\operatorname{E}[X_2])(X_1-\operatorname{E}[X_1])\big] & \operatorname{E}\big[(X_2-\operatorname{E}[X_2])(X_2-\operatorname{E}[X_2])\big] & \cdots & \operatorname{E}\big[(X_2-\operatorname{E}[X_2])(X_n-\operatorname{E}[X_n])\big] \\ \vdots & \vdots & \ddots & \vdots \\ \operatorname{E}\big[(X_n-\operatorname{E}[X_n])(X_1-\operatorname{E}[X_1])\big] & \operatorname{E}\big[(X_n-\operatorname{E}[X_n])(X_2-\operatorname{E}[X_2])\big] & \cdots & \operatorname{E}\big[(X_n-\operatorname{E}[X_n])(X_n-\operatorname{E}[X_n])\big] & \end{bmatrix}\]

樣本的協方差矩陣

與上面的協方差矩陣相同,只是矩陣內各元素以樣本的協方差替換。樣本集合為\(\{\textbf x_{\cdot j}=[x_{1j},x_{2j},...,x_{nj}]^T|1\leqslant j\leqslant m\}\)\(m\)為樣本數量,所有樣本可以表示成一個\(n \times m\)的矩陣。我們以\(\hat \Sigma\)表示樣本的協方差矩陣,與\(\Sigma\)區分。

\[\hat \Sigma=\begin{bmatrix} q_{11} & q_{12} & \cdots & q_{1n} \\ q_{21} & q_{21} & \cdots & q_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ q_{n1} & q_{n2} & \cdots & q_{nn} \end{bmatrix} \]

\[=\frac {1}{m-1} \begin{bmatrix} {\sum_{j=1}^m{(x_{1j}-\bar x_1)(x_{1j}-\bar x_1)}} & {\sum_{j=1}^m{(x_{1j}-\bar x_1)(x_{2j}-\bar x_2)}} & \cdots & {\sum_{j=1}^m{(x_{1j}-\bar x_1)(x_{nj}-\bar x_n)}} \\ {\sum_{j=1}^m{(x_{2j}-\bar x_2)(x_{1j}-\bar x_1)}} & {\sum_{j=1}^m{(x_{2j}-\bar x_2)(x_{2j}-\bar x_2)}} & \cdots & {\sum_{j=1}^m{(x_{2j}-\bar x_2)(x_{nj}-\bar x_n)}} \\ \vdots & \vdots & \ddots & \vdots \\ {\sum_{j=1}^m{(x_{nj}-\bar x_n)(x_{1j}-\bar x_1)}} & {\sum_{j=1}^m{(x_{nj}-\bar x_n)(x_{2j}-\bar x_2)}} & \cdots & {\sum_{j=1}^m{(x_{nj}-\bar x_n)(x_{nj}-\bar x_n)}} \end{bmatrix} \]

\[=\frac {1}{m-1} \sum_{j=1}^m (\textbf x_{\cdot j} - \bar {\textbf x}) (\textbf x_{\cdot j} - \bar {\textbf x})^T \]

公式中\(m\)為樣本數量,\(\bar {\textbf x}\)為樣本的均值,是一個列向量,\(\textbf x_{\cdot j}\)為第\(j\)個樣本,也是一個列向量。

在寫程序計算樣本的協方差矩陣時,我們通常用后一種向量形式計算。一個原因是代碼更緊湊清晰,另一個原因是計算機對矩陣及向量運算有大量的優化,效率高於在代碼中計算每個元素。

需要注意的是,協方差矩陣是計算樣本不同維度之間的協方差,而不是對不同樣本計算,所以協方差矩陣的大小與維度相同。

很多時候我們只關注不同維度間的線性關系,且要求這種線性關系可以互相比較。所以,在計算協方差矩陣之前,通常會對樣本進行歸一化,包括兩部分:

  1. \(\textbf y_{\cdot j} = \textbf x_{\cdot j } - \bar {\textbf x}\)。即對樣本進行平移,使其重心在原點;
  2. \(\textbf z_{i \cdot} = \textbf y_{i \cdot} / \sigma_i\)。其中\(\sigma_i\)是維度\(i\)的標准差。這樣消除了數值大小的影響。

這樣,協方差矩陣\(\hat \Sigma\)可以寫成

\[\hat \Sigma=\frac {1}{m-1} \sum_{j=1}^{m}\textbf z_{\cdot j} \textbf z_{\cdot j}^T \]

該矩陣內的元素具有可比性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM