base:

  1. 协方差的数字定义转换为向量的定义

1. 问题定义

假设它们都是均值为零的向量,并且有协方差矩阵:

总体协方差的表示

注意看XY表示了什么

其中:

我们要找到向量 和 ,使得:

之间的相关系数最大化:


2. 转化为广义特征值问题

我们先约束: 为什么要这么CCA约束? 是因为约束为1后恰好协方差等于相关性

这样目标函数变成:

对 求偏导:

把第二个式子代入第一个:

注意 **先记住这个推导 $\lambda_X \lambda_Y = \rho^2$**, 。于是得到广义特征值问题:

同理:

  • 从而计算特征值和特征向量,特征向量为所求
  • 最大的 对应 第一对
  • 次大的 对应 第二对 ,并且满足 和

3. 用 SVD 求解(更数值稳定)

先做白化(whitening):

构造矩阵:

对 做 SVD:

其中:

  • = 典型相关系数
  • 分别是左、右奇异向量

回到原坐标:

于是:


4. 载荷(Canonical Loadings)

载荷定义为原始变量和典型变量的相关系数:

因为 (标准化约束),所以:

同理:

如果你要 cross-loadings(交叉载荷):


5. 第一对和第二对 的关系

  • 第一对 来自最大奇异值 对应的奇异向量

  • 第二对 来自第二大奇异值 对应的奇异向量,且它们与第一对正交:

1) 用广义特征值法能否直接得到 与载荷?

结论:可以,但要注意规范化步骤以及两组系数之间的关系。

设

标准做法是在约束

下最大化 。拉格朗日法得到广义特征值问题:

最大的 给出第一对 ,次大 给出第二对,依此类推(且满足 对 )。

计算流程(特征值路线):

  1. 解上式得到按降序排列的特征对 。

  2. 由关系式 可得

  3. 对 做规范化,使
    。

  4. 得到典型变量 。

载荷(canonical loadings)——原变量与典型变量的相关:

交叉载荷(cross-loadings):

小结:解广义特征值 → 得 (再算 与规范化)→ 直接用上面几式算载荷。


2) SVD 法每一步到底在做什么(详细)

SVD 路线的核心思想是**白化(whitening)**两边变量,使问题化为普通的奇异值分解。

Step A:对白化矩阵
对称正定矩阵可做特征分解:

定义

这两个矩阵把 映到单位协方差空间(白化)。

Step B:构造被白化的互协方差

直观上, 是“白化后的 X 与白化后的 Y 的互协方差/相关”矩阵。

Step C:对 做 SVD

这里每个 就是第 个典型相关系数,而 的列向量是白化空间中的方向。

Step D:回到原坐标得到权向量

可直接验证规范化与相关性:

Step E:直接写出载荷(更直观的形式)
因已规范化,载荷就是协方差向量:

交叉载荷有个非常好记的关系:

同理 。
这说明交叉载荷 = 典型相关 × 本组载荷。

Step F:第二对、第三对 …
SVD 一次就给出所有 。
于是

天然两两正交(在 、 度量下),且相关系数依次为 。


实务小贴士

  • 用样本矩阵时,把 换成样本协方差 (或相关矩阵),流程相同。
  • 若 或 近奇异/不可逆,常用 正则化(如 )或直接用数据矩阵做 SVD 的实现(更稳健)。
  • 规范化与符号: 的符号可同时取反,不影响 。载荷与得分的符号也相应变号。

一页式流程(SVD实现)

  1. 计算 (中心化后)。
  2. 求 (用特征分解)。
  3. 。
  4. 对 做 SVD:。
  5. ;
    。
  6. 载荷:,
    ;
    交叉载荷:,。

这样两条路线(广义特征值、SVD)就完全打通了;你既能从广义特征值直接得到 与载荷,也能用更稳健的 SVD 步骤一步步算清楚每个量的来源。