zoukankan      html  css  js  c++  java
  • 协方差与协方差矩阵

    协方差与协方差矩阵

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


    引言

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

    协方差

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

    随机变量的协方差

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

    cov(X,Y)=E[(XE[X])(YE[Y])]

    XY是同一个随机变量时,X与其自身的协方差就是X的方差,可以说方差是协方差的一个特例。
    cov(X,X)=E[(XE[X])(XE[X])]


    var(X)=cov(X,X)=E[(XE[X])2]

    由于随机变量的取值范围不同,两个协方差不具备可比性。如XYZ分别是三个随机变量,想要比较XY的线性相关程度强,还是XZ的线性相关程度强,通过cov(X,Y)cov(X,Z)无法直接比较。定义相关系数η
    η=cov(X,Y)var(X)var(Y) 

    通过X的方差var(X)Y的方差var(Y)对协方差cov(X,Y)归一化,得到相关系数ηη的取值范围是[1,1]1表示完全线性相关,1表示完全线性负相关,0表示线性无关。线性无关并不代表完全无关,更不代表相互独立。

    样本的协方差

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

    设样本对应的多维随机变量为X=[X1,X2,X3,...,Xn]T,样本集合为{xj=[x1j,x2j,...,xnj]T|1jm}m为样本数量。与样本方差的计算相似,ab两个维度样本的协方差公式为,其中1an1bnn为样本维度

    qab=j=1m(xajx¯a)(xbjx¯b)m1

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

    协方差矩阵

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

    对多维随机变量X=[X1,X2,X3,...,Xn]T,我们往往需要计算各维度两两之间的协方差,这样各协方差组成了一个n×n的矩阵,称为协方差矩阵。协方差矩阵是个对称矩阵,对角线上的元素是各维度上随机变量的方差。我们定义协方差矩阵为Σ,这个符号与求和相同,需要根据上下文区分。矩阵内的元素Σij

    Σij=cov(Xi,Xj)=E[(XiE[Xi])(XjE[Xj])]

    这样这个矩阵为
    Σ=E[(XE[X])(XE[X])T]

    =[cov(X1,X1)cov(X1,X2)cov(X1,Xn)cov(X2,X1)cov(X2,X2)cov(X2,Xn)cov(Xn,X1)cov(Xn,X2)cov(Xn,Xn)]

    =[E[(X1E[X1])(X1E[X1])]E[(X1E[X1])(X2E[X2])]E[(X1E[X1])(XnE[Xn])]E[(X2E[X2])(X1E[X1])]E[(X2E[X2])(X2E[X2])]E[(X2E[X2])(XnE[Xn])]E[(XnE[Xn])(X1E[X1])]E[(XnE[Xn])(X2E[X2])]E[(XnE[Xn])(XnE[Xn])]]

    样本的协方差矩阵

    与上面的协方差矩阵相同,只是矩阵内各元素以样本的协方差替换。样本集合为{xj=[x1j,x2j,...,xnj]T|1jm}m为样本数量,所有样本可以表示成一个n×m的矩阵。我们以Σ^表示样本的协方差矩阵,与Σ区分。

    Σ^=[q11q12q1nq21q21q2nqn1qn2qnn]

    =1m1[j=1m(x1jx¯1)(x1jx¯1)j=1m(x1jx¯1)(x2jx¯2)j=1m(x1jx¯1)(xnjx¯n)j=1m(x2jx¯2)(x1jx¯1)j=1m(x2jx¯2)(x2jx¯2)j=1m(x2jx¯2)(xnjx¯n)j=1m(xnjx¯n)(x1jx¯1)j=1m(xnjx¯n)(x2jx¯2)j=1m(xnjx¯n)(xnjx¯n)]

    =1m1j=1m(xjx¯)(xjx¯)T

    公式中m为样本数量,x¯为样本的均值,是一个列向量,xj为第j个样本,也是一个列向量。

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

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

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

    1. yj=xjx¯。即对样本进行平移,使其重心在原点;
    2. zi=yi/σi。其中σi是维度i的标准差。这样消除了数值大小的影响。

    这样,协方差矩阵Σ^可以写成

    Σ^=1m1j=1mzjzjT

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

  • 相关阅读:
    tyvj1061Mobile Service
    POJ3666序列最小差值
    POJ2279杨氏矩阵+钩子定理
    POJ2127 LICS模板
    codevs2189数字三角形(%100)
    qhfl-7 结算中心
    qhfl-6 购物车
    qhfl-5 redis 简单操作
    qhfl-4 注册-登录-认证
    qhfl-3 Course模块
  • 原文地址:https://www.cnblogs.com/HandleCoding/p/11206317.html
Copyright © 2011-2022 走看看