协方差矩阵

要理解协方差矩阵,我们从以下几个步骤来说 方差——>协方差——>协方差矩阵。这样更能理解它的由来和意义,本文主要讲意义和python里的使用,其实协方差矩阵有很强的实际意义和应用实例,有机会再补充。

方差

在概率论中我们学过期望和方差的概念。
期望
参见wiki中的数学定义如下:
这里写图片描述

方差
一个随机变量的方差描述的是它的离散程度,也就是该变量离其期望值的距离。
这里写图片描述

方差的算术平方根称为该随机变量的标准差。反应组内个体的离散程度,用数学符号σ表示。
给定一个含有n个样本的集合,可以得到样本的均值,方差和标准差。
均值:这里写图片描述
方差:这里写图片描述
标准差:这里写图片描述
这里放一个小插曲:
为什么方差和标准差这里除以的是n-1 而不是 n?
http://www.zhihu.com/question/20099757
这个讨论下有很多答案,综合来看就很完善了。其实在现在的大数据情况下,这一区别也就很小了。

协方差
方差和标准差反应的是一维数据的分布情况,那么如果要处理二维甚至更高维度的数据时该怎么办呢?
协方差表示的是两个随机变量的关系,首先我们看下它的定义:
这里写图片描述
联系前面的方差也就很好理解了,方差其实就是协方差的特殊形式

那么协方差是如何表示两个随机变量的关系的呢?
ref:http://blog.csdn.net/wuhzossibility/article/details/8087863
这篇文章解释的很清楚,非常感谢原作者
简单来说就是如果两个随机变量的协方差>0,则两者是正相关的,结果为负值就说明负相关的。如果为0,说明两者是不相关的,这里特别说明下,如果两个随机变量是相互独立的那么协方差
cov(X, Y) = cov( Y, X) = E(X, Y ) - uv = E(X) E(Y) - uv = uv- uv = 0
但是如果cov(X, Y) = 0 并不能说明X, Y相互独立,只能说明两者不相关,这里牵扯到相关系数,不详细说了。

协方差矩阵
协方差计算的是两个随机变量间的关系,那么如果有n个随机变量呢,两两计算cov需要计算 n!2(n2)! 次,因此用矩阵来表示这个计算就得到协方差矩阵了。
定义:
这里写图片描述
根据定义协方差矩阵计算的是列向量之间的协方差,也就是不同维度之间的协方差,这点容易弄混淆要注意。

举例
设有一个三维的数据集{ X, Y, Z},则协方差矩阵如下:
这里写图片描述
下面用代码验证下结果,并说下python中的协方差矩阵的函数使用。
每个维度随机生成5个数,下面这段代码中Cov1是通过上面的公式来计算协方差矩阵的,Cov2是调用的cov函数:

from numpy import *

# 三个随机向量x,y,z
X = random.randint(20,size=(5,))
Y = random.randint(20,size=(5,))
Z = random.randint(20,size=(5,))
A = vstack((X,Y,Z))
print(A)

Cov1 = zeros((3,3))
for i in range(size(A,0)):
    for j in range(size(A, 0)):
        # A[j,:].shape = (5, 1)
        Cov1[i,j]= dot((A[i,:]-mean(A[i,:])),(A[j,:].transpose()-mean(A[j,:])))

print ("A = ",A)
print ("Cov1 = ",Cov1)
Cov2 = cov(A)
print ("Cov2 = ",Cov2)

结果如下:
这里写图片描述

可见Cov2 = Cov1 / 4
因此,python中cov的计算公式应该如下:
这里写图片描述

这里再多说几句,python numpy中cov默认是除以n-1的,如果要设置成除以需要添加参数bias= 1
这里写图片描述

而vari求方差函数默认确是除以n的,
这里写图片描述
比如这个例子里cov(a)=1,而var(a)=0.66667
这里写图片描述
所以在使用时要多加注意~

Ref:
wikipedia
http://pinkyjie.com/2010/08/31/covariance/

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值