• 协方差与协方差矩阵


    协方差与协方差矩阵

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


    引言

    最近在看主成分分析(PCA),其中有一步是计算样本各维度的协方差矩阵。以前在看算法介绍时,也经常遇到,现找了些资料复习,总结如下。

    协方差

    通常,在提到协方差的时候,需要对其进一步区分。(1)随机变量的协方差。跟数学期望、方差一样,是分布的一个总体参数。(2)样本的协方差。是样本集的一个统计量,可作为联合分布总体参数的一个估计。在实际中计算的通常是样本的协方差。

    随机变量的协方差

    在概率论和统计中,协方差是对两个随机变量联合分布线性相关程度的一种度量。两个随机变量越线性相关,协方差越大,完全线性无关,协方差为零。定义如下。

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

    (X)(Y)是同一个随机变量时,(X)与其自身的协方差就是(X)的方差,可以说方差是协方差的一个特例。

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

    [operatorname{var}(X)=operatorname{cov}(X,X)=operatorname{E}ig[(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)表示线性无关。线性无关并不代表完全无关,更不代表相互独立。

    样本的协方差

    在实际中,通常我们手头会有一些样本,样本有多个属性,每个样本可以看成一个多维随机变量的样本点,我们需要分析两个维度之间的线性关系。协方差及相关系数是度量随机变量间线性关系的参数,由于不知道具体的分布,只能通过样本来进行估计。

    设样本对应的多维随机变量为( extbf X=[X_1, X_2, X_3, ..., X_n]^T),样本集合为({ extbf x_{cdot j}=[x_{1j},x_{2j},...,x_{nj}]^T|1leqslant jleqslant m})(m)为样本数量。与样本方差的计算相似,(a)(b)两个维度样本的协方差公式为,其中(1leqslant aleqslant n)(1leqslant bleqslant n)(n)为样本维度

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

    这里分母为(m-1)是因为随机变量的数学期望未知,以样本均值代替,自由度减一。

    协方差矩阵

    多维随机变量的协方差矩阵

    对多维随机变量( extbf X=[X_1, X_2, X_3, ..., X_n]^T),我们往往需要计算各维度两两之间的协方差,这样各协方差组成了一个(n imes n)的矩阵,称为协方差矩阵。协方差矩阵是个对称矩阵,对角线上的元素是各维度上随机变量的方差。我们定义协方差矩阵为(Sigma),这个符号与求和(sum)相同,需要根据上下文区分。矩阵内的元素(Sigma_{ij})

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

    这样这个矩阵为

    [Sigma=operatorname{E}ig[( extbf X-operatorname{E}[ extbf X]ig)( extbf X-operatorname{E}[ extbf X])^T] ]

    [=egin{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} ]

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

    样本的协方差矩阵

    与上面的协方差矩阵相同,只是矩阵内各元素以样本的协方差替换。样本集合为({ extbf x_{cdot j}=[x_{1j},x_{2j},...,x_{nj}]^T|1leqslant jleqslant m})(m)为样本数量,所有样本可以表示成一个(n imes m)的矩阵。我们以(hat Sigma)表示样本的协方差矩阵,与(Sigma)区分。

    [hat Sigma=egin{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} egin{bmatrix} {sum_{j=1}^m{(x_{1j}-ar x_1)(x_{1j}-ar x_1)}} & {sum_{j=1}^m{(x_{1j}-ar x_1)(x_{2j}-ar x_2)}} & cdots & {sum_{j=1}^m{(x_{1j}-ar x_1)(x_{nj}-ar x_n)}} \ {sum_{j=1}^m{(x_{2j}-ar x_2)(x_{1j}-ar x_1)}} & {sum_{j=1}^m{(x_{2j}-ar x_2)(x_{2j}-ar x_2)}} & cdots & {sum_{j=1}^m{(x_{2j}-ar x_2)(x_{nj}-ar x_n)}} \ vdots & vdots & ddots & vdots \ {sum_{j=1}^m{(x_{nj}-ar x_n)(x_{1j}-ar x_1)}} & {sum_{j=1}^m{(x_{nj}-ar x_n)(x_{2j}-ar x_2)}} & cdots & {sum_{j=1}^m{(x_{nj}-ar x_n)(x_{nj}-ar x_n)}} end{bmatrix} ]

    [=frac {1}{m-1} sum_{j=1}^m ( extbf x_{cdot j} - ar { extbf x}) ( extbf x_{cdot j} - ar { extbf x})^T ]

    公式中(m)为样本数量,(ar { extbf x})为样本的均值,是一个列向量,( extbf x_{cdot j})为第(j)个样本,也是一个列向量。

    在写程序计算样本的协方差矩阵时,我们通常用后一种向量形式计算。一个原因是代码更紧凑清晰,另一个原因是计算机对矩阵及向量运算有大量的优化,效率高于在代码中计算每个元素。

    需要注意的是,协方差矩阵是计算样本不同维度之间的协方差,而不是对不同样本计算,所以协方差矩阵的大小与维度相同。

    很多时候我们只关注不同维度间的线性关系,且要求这种线性关系可以互相比较。所以,在计算协方差矩阵之前,通常会对样本进行归一化,包括两部分:

    1. ( extbf y_{cdot j} = extbf x_{cdot j } - ar { extbf x})。即对样本进行平移,使其重心在原点;
    2. ( extbf z_{i cdot} = extbf y_{i cdot} / sigma_i)。其中(sigma_i)是维度(i)的标准差。这样消除了数值大小的影响。

    这样,协方差矩阵(hat Sigma)可以写成

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

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

  • 相关阅读:
    艾伟_转载:把事件当作对象进行传递 狼人:
    艾伟_转载:AOP in Asp.net MVC 狼人:
    艾伟_转载:基于.NET平台的Windows编程实战(一)——前言 狼人:
    艾伟_转载:闲说继承 狼人:
    艾伟_转载:面向对象封装了啥 狼人:
    艾伟_转载:LINQ to SQL、NHibernate比较(二) LINQ to SQL实例 狼人:
    艾伟_转载:我对NHibernate的感受(1):对延迟加载方式的误解 狼人:
    艾伟_转载:用C#编程合并多个WORD文档 狼人:
    艾伟_转载:基于.NET平台的Windows编程实战(二)—— 需求分析与数据库设计 狼人:
    艾伟_转载:从ASP.NET的PHP执行速度比较谈起 狼人:
  • 原文地址:https://www.cnblogs.com/terencezhou/p/6235974.html
Copyright © 2020-2023  润新知