典型相关分析
典型相关分析(canonical correlation analysis,CCA)研究两组变量之间的线性联系。它分别给两组变量配一套权重,使两个加权得分的相关系数尽可能大。例如,同一批学生的一组语言成绩和一组数量成绩,都不宜先随意压成总分;CCA把“怎样合成两个得分”和“得分间联系多强”放在同一个优化问题中。
两个得分及其约束
设中心化随机向量 具有有限二阶矩,记 以下先假设两个组内协方差矩阵正定。对非零权重 ,得分为 。其相关系数为 放大权重不会改变相关系数,因此选用单位方差约束: 把一组权重同时反号,可使最优值非负。这一定义不要求联合正态;正态假设是在某些显著性检验或分布解释中另加的。Hotelling于1936年系统提出这一方法;白化与奇异值的表述见Strimmer的课程讲义。[1]
白化将约束变成单位球
取对称正定平方根,令 两个约束变成 ,目标变成 。对固定 ,柯西不等式给出 其中 是最大奇异值。取第一对左右奇异向量便同时达到两次上界,故 这给出了最大值及其可达性的完整证明。继续取后续奇异向量,可得到后续典型得分;同一组内的得分两两不相关,配对的交叉相关为对应奇异值,非配对的交叉相关为零。一个重复奇异值所对应的整个奇异子空间可以确定,但其中的具体方向未必唯一;若只从这个重数块选取部分维数,所选最优子空间本身也可能不唯一。例如 时,第一对得分沿任意同向单位权重都能达到相关一。
白化不是把所有联系消除:它先去掉各组内部的尺度和相关,再保留两组之间的联系。由于 来自一个合法的联合协方差矩阵,各奇异值都不超过一;任意拼接的三个矩阵未必满足这一条件。
两组量纲不同的变量
考虑总体协方差 第一组标准差是二和一,第二组是一和三。直接看交叉协方差,数值一点六大于一点五,但它们带有不同单位,不能直接当作联系强弱。白化后 所以第一对得分为 ,相关零点八;第二对为 ,相关零点五。四个得分各自方差都是一。联合矩阵确实半正定,因为重排坐标后是两个二阶块,其行列式分别为 和 。
变式。 只把 从一改为四,其他协方差不变。白化后的对角变成零点四和零点五,因此首对得分换成 ,首典型相关为零点五。相关分析必须同时考虑交叉协方差和组内波动。
有限样本的计算与退化
在样本中,先分别减去列均值,再用同一分母计算三个协方差矩阵,随后执行白化和奇异值分解。中心化数据矩阵的秩至多为 ;当变量数接近样本量,组内协方差可能奇异,普通逆平方根不再适用。加入正则项 等可稳定计算,但改变了优化问题,正则化参数要在训练数据内部选择。算法实现中的CCA与PLS联系可查scikit-learn官方说明。[2]
没有高维奇异性,也不代表较大的样本典型相关一定可靠。权重在同一批数据上被挑选来最大化相关,训练结果会偏乐观;应报告留出样本的得分相关,并在重采样时重新拟合权重。
典型相关为零只排除了线性联系。例如 有 ,但 完全由 决定。相关也不提供因果方向。和偏最小二乘回归相比,CCA以相关为目标并标准化两侧的方差;PLS通常以协方差为目标,两者不宜只凭图形相似而混用。
参考文献
- ↑ Korbinian Strimmer:Multivariate Statistics and Machine Learning,§6.1—6.2,两组变量的线性依赖、CCA白化与交叉相关矩阵的奇异值分解。
- ↑ scikit-learn:Cross decomposition,§1.8.4,CCA及其与交叉分解方法的关系。