重温矩阵(V) 主成份分析

 

 

 图片图片 

                         图 这是一个简单的主成分解释(经协方差验证,这两种分布是等效的)

 

问与答所言,之所以写重温矩阵,是对以前做一个总结,对于高等数学的一些思想做一个总结和概括,至于效果怎样,这里不妨以一个小的例子来说明:齐民友先生是一名数学大家,有一部书很值得一读:《重温微积分》,先生功力深厚,自己尝试阅读,但是苦于自己知识不扎实,读起来十分的吃力,而且自己没有学过现代分析的一些相关知识,所以举步维艰,最终束之高阁。不过书确实给了我深刻的印象,可以说,《重温矩阵》是借用重温之名的一种随笔式记录。

年初在家,无意翻出那本书,决定认真的阅读一下,结果我惊奇的发现,若不论成书的规模,《重温矩阵》和《重温微积分》有着很多的共通点,数学中的一些基本思想和概念都是相通的,从矩阵和微积分为入口都可以说出很多数学上共通的思想,如 变换中不变,正交,分解与组合,谱等,同样还有在物理意义上的诉求都有相似。

举个例子无非说明,数学各个分支的一致和统一,从一个数学概念出发往往都可以管窥整个学科的思想。

回到主题,我本来的打算是想将矩阵中其他的东西加进来进行叙述,如我曾设想写矩阵分解,不过实在功力有限,就作罢了。但是一直耿耿于怀,毕竟找不到一个合适的主题完结《重温矩阵》,彻底的对本科数学做个缅怀。很幸运,在读论文中,我找到了突破口,也就是主成分分析,如人所言,这是线性代数最为著名的应用之一。我在使用的时候也发现,主成分分析惊人的使用了矩阵中的诸多性质与运算,如特征值与特征向量,正交,分解等等,恰好的承接以前的所学。那么开始吧!

主成分分析,顾名思义,自然是从数据中提取出主要的成分出来,这种技术用途广泛,如多元统计、统计学习、图像识别等等。同时也常用与数据的降维,这一步往往是聚类分析的预处理操作。当然我的讲法可能口语化,可以参照《实用统计分析》一书的说法:

主成分分析所关心的问题,是通过一组变量的几个线性组合来解释这组变量的方差-协方差结构。它的一般目的是:(1)数据的压缩,(2)数据的解释(该书将方差和协方差构成的矩阵称为方差-协方差矩阵,我们统称为协方差矩阵)

言简意赅,直达本质。这里包含了重要的概念:协方差,所以首要的,我们先考虑协方差的问题。下面就是两个变量的协方差的计算公式:

图片

协方差矩阵(这里我们以协方差矩阵为研究的基本单位)为方差的推广,他是一个方阵,其对角元素是各个变量的方差,那么非对角元素是什么呢?就是相应两个变量的协方差。

众所周知,方差是衡量变量变动程度的变量,在多个变量的情况下,如当变量是独立的,也即他们没有关系,那么我们的协方差矩阵即退化成一个对角阵。如当其变量之间存在相关性,如同时增加或减小,抑或一个增加一个减小,都将使得协方差的计算公式侦测到这种协变的规律,相应的对与同向变化的位置的元素值则为正,反之为负,表示他们称相反的变化关系。而且如果如变量的相关性越强其相应位置元素的模值就越大。

如我们举个例子,我们观察两个独立的正态分布的协方差(MATLAB):

X = randn(100,1);Y = randn(100,1);cov([X,Y])

ans =    1.2468   - 0.1944

           -0.1944    0.7934

 

我们发现其非对角线的元素相对非常的小,不过这并不明显,这是因为对于少量的样本无法代表整个宏观的规律,如果我们加大样本量就会发现象征相关性的非对角元素的值会愈来愈接近零:

X = randn(100000,1);Y = randn(100000,1);cov([X,Y])

 

ans =    0.9978   -0.0010

        -0.0010    1.0002

现在我们的样本数为10万,可以看到其变量的方差接近于标准正态分布的1,而非对角元接近于0。

上述考虑的是不相关性,现在我们考虑相关性,如设Y=2*X,则有:

X = randn(100000,1);Y = 2*X;cov([X,Y])

ans = 0.9995    1.9990

1.9990    3.9980

如设Y = 3*X,则有:

X = randn(100000,1);Y = 3*X;cov([X,Y])

ans = 0.9948    2.9843

2.9843              8.9529

其非对角元素恰好衡量了X与Y的比例关系,然而,这只是简单的线性关系,我们测试一下,非线性关系:Y=X^2,观察是否协方差计算公式能够侦测到这种关系:

X = randn(100000,1);Y = X.^2;cov([X,Y])

ans =  1.0082    0.0130

0.130                  2.0218

我们发现,协方差阵并不能侦测到这种非线性关系,引用wiki的话:

相关性为0(因而协方差也为0)的两个随机变量又被称为是不相关的,或者更准确地说叫作“线性无关”、“线性不相关”,这仅仅表明X Y 两随机变量之间没有线性相关性,并非表示它们之间一定没有任何内在的(非线性)函数关系,和前面所说的“X、Y二者并不一定是统计独立的”说法一致。

总结以上,即若两个变量是独立的,则其协方差为0;这个命题的逆命题则不成立。

 

为什么协方差阵只能检测到变量间的线性关系呢?在一番思考后,我觉得用矩阵与线性变换的关系表述比较合适。如果我们考虑协方差阵对应一个将原先不相关的变量变得线性相关的线性变换的话,一切就清楚了。回顾第一节内容,因为究其本质矩阵对应的就是线性变换。

 

(哦不!想要达到严谨的叙述的话,我发现我举步维艰,连说的每一句话都要思考,这严重妨碍我思考的进行,请大家原谅,我现在准备舍弃严谨性,而自由表达自己的思路吧!)

 

虽然,教科书上不书写协方差矩阵是一个对称矩阵(首先他必须是方阵);那么我们利用以前所说的谱分解,很简单的将协方差阵做成一个如下的分解式:

图片

k为协方差矩阵的特征值数目,而e1..k 就是新的基,从几何上说就是新的轴。关于这个奇怪的分解式,其实如从几何上就可以清晰的理解,我们试想一下,对于一个矢量,其与上述的协方差阵C作用,必然是其与各个独立的正交基的内积的线性组合,更近一步的说,一个矢量是其在各个轴上的投影的组合。而投影是通过内积完成的,即矢量A有:

图片

我们知道内积作为一种将两个矢量转化为一个标量的函数,括号里的结果是一个标量,最终的效果,即是其在各个基上的坐标值。

如此我们顺便提及一下,投影矩阵:

假若我们想将一个矢量投影到一组新的坐标系中(其实就是重新选定一组基),尽管这组基不是正交的(为了方便说明我们设为ab作为新的规范基,当然这就是一个二维空间了,以下均建立在二维的例子上),但是线性无关的,于是我们在教科书上发现如下的操作(P是一个投影矩阵):

图片

其实这个道理和以上是相同的,我们将这个操作分解为:

图片

则对其意义理解的就深刻了。这样看来投影似乎分为两个步骤,一个是分别计算投影值,然后将其叠加起来。如果要将数据降维投影在子空间上,那么我们的方法仍有效么?答案是肯定的。

现在我们回顾以前的内容,投影无非也是一种线性变换,那么他也将必然有其特征向量,也就是说,总有一些矢量在投影前后,其方向不变,而同时我们知道,如果对于ab是线性无关的,那么对于矩阵[a,b]其必然是满秩的,而对于图片显然由可以通过简单的证明,P是满秩的

即观察我们的投影阵P,对其进行特征值分解(也就是谱分解)有:

图片