典型相关分析的基本思想 Canonical Correlation Analysis
(canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理是:为了从总体上把握两组指标之间的相关关系,分别在两组变量中提取有代表性的两个综合变量U1和V1(分别为两个变量组中各变量的线性组合),利用这两个综合变量之间的相关关系来反映两组指标之间的整体相关性。
Canonical Correlation Analysis典范相关分析/Canonical Correspondence Analysis典范对应分析
1936年,Hotelling提出典型相关分析。考虑两组变量的线性组合, 并研究它们之间的相关系数p(u,v).在所有的线性组合中, 找一对相关系数最大的线性组合, 用这个组合的单相关系数来表示两组变量的相关性, 叫做两组变量的典型相关系数, 而这两个线性组合叫做一对典型变量。在两组多变量的情形下, 需要用若干对典型变量才能完全反映出它们之间的相关性。下一步, 再在两组变量的与u1,v1不相关的线性组合中, 找一对相关系数最大的线性组合, 它就是第二对典型变量, 而且p(u2,v2)就是第二个典型相关系数。这样下去, 可以得到若干对典型变量, 从而提取出两组变量间的全部信息。
典型相关分析的实质就是在两组随机变量中选取若干个有代表性的综合指标(变量的线性组合), 用这些指标的相关关系来表示原来的两组变量的相关关系。这在两组变量的相关性分析中, 可以起到合理的简化变量的作用; 当典型相关系数足够大时, 可以像回归分析那样, 由- 组变量的数值预测另一组变量的线性组合的数值。
典型关联分析(Canonical Correlation Analysis)
[pdf版本] 典型相关分析.pdf
1. 问题
在线性回归中,我们使用直线来拟合样本点,寻找n维特征向量X和输出结果(或者叫做label)Y之间的线性关系。其中,。然而当Y也是多维时,或者说Y也有多个特征时,我们希望分析出X和Y的关系。
当然我们仍然可以使用回归的方法来分析,做法如下:
这样做的一个缺点是,Y中的每个特征都与X的所有特征关联,Y中的特征之间没有什么联系。
我们想换一种思路来看这个问题,如果将X和Y都看成整体,考察这两个整体之间的关系。我们将整体表示成X和Y各自特征间的线性组合,也就是考察和之间的关系。
这样的应用其实很多,举个简单的例子。我们想考察一个人解题能力X(解题速度,解题正确率)与他/她的阅读能力Y(阅读速度,理解程度)之间的关系,那么形式化为:
然后使用Pearson相关系数
来度量u和v的关系,我们期望寻求一组最优的解a和b,使得Corr(u, v)最大,这样得到的a和b就是使得u和v就有最大关联的权重。
到这里,基本上介绍了典型相关分析的目的。
2. CCA表示与求解
给定两组向量和(替换之前的x为,y为),维度为,维度为,默认。形式化表示如下:
是x的协方差矩阵;左上角是自己的协方差矩阵;右上角是;左下角是,也是的转置;右下角是的协方差矩阵。
我们可以算出u和v的方差和协方差:
上面的结果其实很好算,推导一下第一个吧:
最后,我们需要算Corr(u,v)了
我们期望Corr(u,v)越大越好,关于Pearson相关系数,《数据挖掘导论》给出了一个很好的图来说明:
横轴是u,纵轴是v,这里我们期望通过调整a和b使得u和v的关系越像最后一个图越好。其实第一个图和最后一个图有联系的,我们可以调整a和b的符号,使得从第一个图变为最后一个。
接下来我们求解a和b。
回想在LDA中,也得到了类似Corr(u,v)的公式,我们在求解时固定了分母,来求分子(避免a和b同时扩大n倍仍然符号解条件的情况出现)。这里我们同样这么做。
这个优化问题的条件是:
求解方法是构造Lagrangian等式,这里我简单推导如下:
求导,得
令导数为0后,得到方程组:
让我们把上面的方程组进一步简化,并写成矩阵形式,得到
写成矩阵形式
令
那么上式可以写作:
显然,又回到了求特征值的老路上了,只要求得的最大特征值,那么Corr(u,v)和a和b都可以求出。
在上面的推导过程中,我们假设了和均可逆。一般情况下都是可逆的,只有存在特征间线性相关时会出现不可逆的情况,在本文最后会提到不可逆的处理办法。
再次审视一下,如果直接去计算的特征值,复杂度有点高。我们将第二个式子代入第一个,得
待会举个例子说明求解过程。
假设按照上述过程,得到了最大时的和。那么和称为典型变量(canonical variates),即是u和v的相关系数。
最后,我们得到u和v的等式为:
我们也可以接着去寻找第二组典型变量对,其最优化条件是
3. CCA计算例子
我们回到之前的评价一个人解题和其阅读能力的关系的例子。假设我们通过对样本计算协方差矩阵得到如下结果:
这里的A和前面的中的A不是一回事(这里符号有点乱,不好意思)。
然后对A求特征值和特征向量,得到
然后求b,之前我们说的方法是根据求b,这里,我们也可以采用类似求a的方法来求b。
回想之前的等式
我们将上面的式子代入下面的,得
然后直接对求特征向量即可,注意和的特征值相同,这个可以自己证明下。
不管使用哪种方法,
这里我们得到a和b的两组向量,到这还没完,我们需要让它们满足之前的约束条件
这里的应该是我们之前得到的VecA中的列向量的m倍,我们只需要求得m,然后将VecA中的列向量乘以m即可。
因此最后的a和b为:
第一组典型变量为
相关系数
第二组典型变量为
相关系数
这里的(解题速度),(解题正确率),(阅读速度),(阅读理解程度)。他们前面的系数意思不是特征对单个u或v的贡献比重,而是从u和v整体关系看,当两者关系最密切时,特征计算时的权重。