首页 理论教育方差、协方差和协方差矩阵的定义与应用

方差、协方差和协方差矩阵的定义与应用

【摘要】:我们看到,最终要达到的目的与字段内方差及字段间协方差有密切关系。设Y的协方差矩阵为D,下面推导D与C的关系:我们需要找到能让原始协方差矩阵对角化的P。

1.方差

前面已经介绍过,希望投影后的投影值尽可能分散,而这种分散程度可以用数学上的方差来表述。此处,一个字段的方差可以看做是每个元素与字段均值的差的平方再求均值,即

由于上面已经将每个字段的均值都化为0了,因此方差可以直接用每个元素的平方和除以元素个数表示:

于是上面的问题可形式化表述为:寻找一个一维基,使所有数据变换为这个基上的坐标表示后,方差值最大。

2.协方差

对于上面二维降成一维的问题来说,找到那个使方差最大的方向就可以了。不过对于更高维,还有一个问题需要解决,即考虑三维降到二维问题。与之前相同,首先希望找到一个方向使得投影后方差最大,这样就完成了第一个方向的选择;然后选择第二个投影方向。

如果我们还是单纯只选择方差最大的方向,很明显,这个方向与第一个方向应该“几乎重合在一起”,显然这样的维度是没有用的。因此,应该有其他约束条件。从直观上说,让两个字段尽可能表示更多的原始信息,我们是不希望它们之间存在(线性)相关性的,因为相关性意味着两个字段不是完全独立,必然存在重复表示的信息。

数学上可以用两个字段的协方差表示其相关性,由于已经让每个字段均值为0,则

由式(10.3)可以看到,在字段均值为0的情况下,两个字段的协方差简洁地表示为其内积除以元素数m。当协方差为0时,表示两个字段完全独立。为了让协方差为0,选择第二个基时只能在与第一个基正交的方向上选择。因此最终选择的两个方向一定是正交的。

至此,我们得到了降维问题的优化目标:将一组n维向量降为k维(0<k<n),其目标是选择k个单位(模为1)正交基,使原始数据变换到这组基上后,各字段两两间协方差为0,而字段的方差则尽可能大(在正交的约束下,取最大的k个方差)。

3.协方差矩阵

上面推导出了优化目标,但是这个目标似乎不能直接作为操作指南(或者说算法),因为它只说要什么,但没有说怎么做,所以我们在此继续研究计算方案。我们看到,最终要达到的目的与字段内方差及字段间协方差有密切关系。因此我们希望能将两者统一表示,仔细观察发现,两者均可以表示为内积的形式,而内积又与矩阵相乘密切相关。

假设只有a和b两个字段,那么将它们按行组成矩阵X:

然后用X乘以X的转置,并乘上系数1/m,即

这个矩阵对角线上的两个元素分别是两个字段的方差,而其他元素是a和b的协方差,两者被统一到了一个矩阵。根据矩阵相乘的运算法则,这个结论很容易被推广到一般情况。

假设有m个n维数据记录,将其按列排成n×m的矩阵X,设C=1/m XXT,则C是一个对称矩阵,其对角线分别是各个字段的方差,而第i行第j列和第j行第i列元素相同,表示i和j两个字段的协方差。

4.协方差矩阵对角化

根据上述推导,我们发现要达到优化目的,等价于将协方差矩阵对角化,即除对角线外的其他元素化为0,并且在对角线上将元素按大小从上到下排列,这样就达到了优化目的。下面我们进一步看原矩阵与基变换矩阵协方差的关系。设原始数据矩阵X对应的协方差矩阵为C,而P是由一组基按行排列成的矩阵,设Y=PX,则Y为X对P做基变换后的数据。设Y的协方差矩阵为D,下面推导D与C的关系:

我们需要找到能让原始协方差矩阵对角化的P。换句话说,优化目标变成了寻找一个矩阵P,满足PCPT是一个对角矩阵,并且对角元素按从大到小依次排列,那么P的前k行就是要寻找的基,用P的前k行组成的矩阵乘以X就使得X从n维降到了k维并满足上述优化条件。

由上面的分析可知,协方差矩阵C是一个是对称矩阵,在线性代数上,实对称矩阵有以下两个非常好的性质:

(1)实对称矩阵不同特征值对应的特征向量必然正交。

(2)设特征向量λ重数为r,则必然存在r个线性无关的特征向量对应于λ,因此可以将这r个特征向量单位正交化。

由上面两条可知,一个n行n列的实对称矩阵一定可以找到n个单位正交特征向量,设这n个特征向量为e1,e2,…,en,将其按列组成矩阵:

E=(e1e2… en)

则对协方差矩阵C有如下结论:

式中,Λ为对角矩阵,其对角元素为各特征向量对应的特征值(可能有重复)。以上结论没有给出严格的数学证明,对证明感兴趣的读者可以参考《线性代数》书籍中关于“实对称矩阵对角化”的内容。到这里,我们已经找到了需要的矩阵P:

式中,P是协方差矩阵的特征向量单位化后按行排列出的矩阵,其中每一行都是C的一个特征向量。如果设P按照Λ中特征值从大到小将特征向量从上到下排列,则用P的前k行组成的矩阵乘以原始数据矩阵X,就得到了我们需要的降维后的数据矩阵Y。