本篇内容主要是对于基本书籍教材协方差相关章节所写的学习笔记,结合自己的理解尽可能表述得通俗易懂,主要思路内容取自《程序员的数学之概率统计》。
基础预备知识
协方差简介
先来直接看协方差的定义式,所有其他关于协方差的公式都是基于如下定义式的推导:
Cov[X,Y]=E[(X−μ)(Y−ν)]
其中,μ=E(X),ν=E(Y)。接下来理解其包含怎样的含义。这里的X和Y都是随机变量,由于他们随机,所以取值时有时会大于期望值有时会小于期望值。为了表示随机变量和其平均水平(期望)相差多少,就有了X−μ和Y−ν这样类似的表达式。由此,协方差的定义式说明了如下现象。
当协方差值为正时,X−μ和Y−ν符号相同,即:
当协方差值为负时,X−μ和Y−ν符号相反,即:
所以协方差为正,那么两个随即变量正相关;为负,则是负相关;为零,那么就不具有相关性。用图表示如下:
需要注意的是,协方差是受变量缩放比例影响的。也就是说协方差的大小并不能说明问题,因为两个随机变量缩放同样倍数,协方差值也就跟着变动倍数的平方。如果想要通过数值来判断倾向,就计算相关系数。其概念在此不再展开。
协方差和相关系数都有其局限性,例如学校的教室空座和自行车库空位正相关,但是两者并没有直接关联,只是因为两者都和学生人数存在直接关联,所以两者体现出了正相关特性。
协方差矩阵简介
假设有n个随机变量X,X1,…,Xn,该如何了解这些变量之间的相关性?如何判断在某个变量增大时,另一个变量是否具有增大或减小的倾向?了解协方差基本定义的人应该知道最简单的方法就是计算所有变量对的协方差,并将其整理成一个n乘n的表格,之后分析表格中的数据,逐一判断变量之间的关系。这样的思路虽然简单,但是不仅操作麻烦,还不容易产生全局的理解。为了形成整体的理解,就不能把目光局限于表格中的具体的数值,而应该关注整张表的情况。由此就引入了协方差矩阵的概念,协方差矩阵呈如下的形式(当n=3时):
⎝⎛V[X1]Cov[X1,X2]Cov[X1,X3]Cov[X1,X2]V[X2]Cov[X2,X3]Cov[X1,X3]Cov[X2,X3]V[X3]⎠⎞
我们考虑整张表也就是协方差矩阵该与怎样的图像对应,去除具体元素的影响,通过图形的方式反映问题的本质。这就是协方差矩阵的核心。
观察协方差矩阵不难发现,这是一个对称阵,对角线元素都大于0。一般协方差矩阵的标记符用Σ表示。
协方差矩阵的向量表述
如果把开头提到的n个随机变量用列向量的形式表示,就可引出协方差矩阵的向量形式表述。设n个随机变量纵向排列如下:
X=⎝⎜⎜⎜⎛X1X2⋮Xn⎠⎟⎟⎟⎞
那么协方差矩阵就可以表示为(下面的V表示协方差矩阵而不是方差,因为里面是向量而不是单个随机变量):
V[X]=E[(X−μ)(X−μ)T]
这里μ=E(X)。具体证明很简单,还是以n=3为例,此时μ值如下:
μ=⎝⎛μ1μ2μ3⎠⎞≡E⎣⎡⎝⎛X1X2X3⎠⎞⎦⎤=E[X]
由此可以如下步骤逐步推出V[X]:
E[(X−μ)(X−μ)T]=E⎣⎡⎝⎛X1−μ1X2−μ2X3−μ3⎠⎞(X1−μ1,X2−μ2,X3−μ3)⎦⎤=E⎣⎡⎝⎛(X1−μ1)2(X2−μ2)(X1−μ1)(X3−μ3)(X1−μ1)(X1−μ1)(X2−μ2)(X2−μ2)2(X3−μ3)(X2−μ2)(X1−μ1)(X3−μ3)(X2−μ2)(X3−μ3)(X3−μ3)2⎠⎞⎦⎤=⎝⎛V[X1]Cov[X1,X2]Cov[X1,X3]Cov[X1,X2]V[X2]Cov[X2,X3]Cov[X1,X3]Cov[X2,X3]V[X3]⎠⎞=V[X]
必备的基本结论
假设有一个取值恒定的列向量a,那么a与X的内积的期望值如下:
E[a⋅X]=E[aTX]=aTE[X]=a⋅E[X]
上面这个等式的证明过程很简单,只需要写出其中元素即可证明上式成立,证明过程如下:
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧E[aTX]aTE[X]=E⎣⎢⎡(a1,⋯,an)⎝⎜⎛X1⋮Xn⎠⎟⎞⎦⎥⎤=E[a1X1+⋯+anXn]=a1E[X1]+⋯+anE[Xn]=(a1,⋯,an)E⎣⎢⎡⎝⎜⎛X1⋮Xn⎠⎟⎞⎦⎥⎤=(a1,⋯,an)⎝⎜⎛E[X1]⋮E[Xn]⎠⎟⎞=a1E[X1]+⋯+anE[Xn]
对于取值确定的矩阵A(A有m行n列),下面的等式依然成立
E(AX)=AE(X)
证明过程还是通过写出其中元素来证明,证明过程如下:
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧E[AX]=E⎣⎢⎡⎝⎜⎛a1T⋮amT⎠⎟⎞(X)⎦⎥⎤=E⎣⎢⎡⎝⎜⎛a1TX⋮amTX⎠⎟⎞⎦⎥⎤=⎝⎜⎛E[a1TX]⋮E[amTX]⎠⎟⎞=⎝⎜⎛a1TE[X]⋮amTE[X]⎠⎟⎞AE[X]=⎝⎜⎛a1T⋮amT⎠⎟⎞E[(X)]=⎝⎜⎛a1TE[X]⋮amTE[X]⎠⎟⎞
现在,把X替换成矩阵R,矩阵R的取值随机,其期望由其元素决定。这时等式依然成立
E(AR)=AE(R)
证明过程如下(假设R有k个列向量):
⎩⎪⎨⎪⎧E(AR)AE(R)=E[A(R1,…,Rk)]=E[(AR1,…,ARk)]=(E(AR1),…,E(ARk))=(AE(R1),…,AE(Rk))=A(E(R1),…,E(Rk))=(AE(R1),…,AE(Rk))
而对于下面这种情况,取值确定的矩阵B,等式需要稍微更改:
E[RB]=E[R]B
这很简单,因为矩阵不满足交换律。综上,对于取值确定的矩阵A和B,就有以下变形:
E[ARB]=AE[R]B
至此,记住该部分的结论,这是后面结论成立的基础。
通过图形解释协方差矩阵
协方差矩阵的变量变换
如果要直观理解协方差矩阵,就不能把目光放在矩阵里面的单个元素上,而是需要从整体的视角看待协方差矩阵,以图形的形式解释协方差的概念。变量变换是实现这个目标的核心,这里就会用到前面必备的基本结论章节已经证明过的一些结论。
设X是n元随机向量,X的期望值向量μ=E[X],X的协方差矩阵则为:
V[X]=E[(X−μ)(X−μ)T]
对于标量a,有
V[aX]=a2V[X]
对于取值确定的列向量a,有
V[aTX]=aTV[X]a
证明过程如下(已知E[aTX]=aTE[X]=aTμ):
V[aTX]=E[(aTX−aTμ)(aTX−aTμ)T]=E[aT(X−μ)(X−μ)Ta]=aTE[(X−μ)(X−μ)T]a=aTV[X]a
对于取值确定的矩阵A,有
V[AX]=AV[X]AT
证明过程如下(已知E[AX]=AE[X]=Aμ):
V[AX]=E[(AX−Aμ)(AX−Aμ)T]=E[{A(X−μ)}{A(X−μ)}T]=E[{A(X−μ)}{(X−μ)TAT}]=E[A{(X−μ)(X−μ)T}AT]=AE[(X−μ)(X−μ)T]AT=AV[X]AT
任意方向的发散程度
协方差矩阵V[X]中,对角线上的元素分别为V[X1],V[X2],…,V[Xn]。为了便于画出来,看当n=2的情况,V[X1]表示横向的发散情况,V[X2]表示纵向的发散情况,由下图可直观描述:
那么对于其他方向上的发散情况该如何计算呢?其实协方差矩阵中已经包含了任意方向的发散信息。设长度为1的向量u表示某一特定的方向,其就是普通向量,取值恒定,如下图所示:
把随机向量X投影至u方向所在的直线上,并得到点Z。设Z的长度是由原点至投影处的距离,和u同向取正号,反向取负号。这时候目标就变为了求Z的方差V[Z]。
已知Z=uTX,所以问题转变为:假设有一个长度为1的向量u,求V[uTX]的值。使用前面必备基本结论部分中的变换规则,可得
V[uTX]=uTV[X]u
通过这样的变换,就可以依据协方差矩阵求出任意方向的发散程度了。