协方差与协方差矩阵

协方差与协方差矩阵

标签: 协方差 协方差矩阵 统计


引言

最近在看主成分分析(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 \]

该矩阵内的元素具有可比性。

posted @ 2016-12-30 10:50  苦力笨笨  阅读(77410)  评论(7编辑  收藏  举报