Q1. 讲解R的来源。

为了让你看清楚每一个元素是怎么从 $\Sigma$ 变成 $R$ 的,我用一个 2x2 的矩阵为例来展开运算。这样最直观,你看懂了 2x2,对于 100x100 的矩阵逻辑是完全一样的。

1. 准备工作:把符号写成矩阵

根据讲义定义,我们有三个矩阵:

  1. 协方差矩阵 $\Sigma$

    $$ \Sigma = \begin{pmatrix} \Sigma_{11} & \Sigma_{12} \\ \Sigma_{21} & \Sigma_{22} \end{pmatrix} $$

    (回忆:$\Sigma_{11}$ 和 $\Sigma_{22}$ 是方差,$\Sigma_{12}$ 和 $\Sigma_{21}$ 是协方差)

  2. 标准化缩放矩阵 $D^{-1/2}$: 它的对角线元素是方差的“逆平方根”(即 $\frac{1}{\text{标准差}}$):

    $$ D^{-1/2} = \begin{pmatrix} \frac{1}{\sqrt{\Sigma_{11}}} & 0 \\ 0 & \frac{1}{\sqrt{\Sigma_{22}}} \end{pmatrix} $$

2. 详细运算步骤

我们要计算的是:$R = D^{-1/2} \cdot \Sigma \cdot D^{-1/2}$。 根据矩阵乘法结合律,我们可以分两步走。

第一步:先算左边两个相乘 ($D^{-1/2} \cdot \Sigma$)

这相当于用对角阵去乘协方差矩阵。 规则:左乘对角矩阵 = 每一行 (Row) 乘以对角线对应的系数。

$$\underbrace{\begin{pmatrix} \color{red}{\frac{1}{\sqrt{\Sigma_{11}}}} & 0 \\ 0 & \color{blue}{\frac{1}{\sqrt{\Sigma_{22}}}} \end{pmatrix}}_{D^{-1/2}} \cdot \underbrace{\begin{pmatrix} \Sigma_{11} & \Sigma_{12} \\ \Sigma_{21} & \Sigma_{22} \end{pmatrix}}_{\Sigma} =\begin{pmatrix} \color{red}{\frac{1}{\sqrt{\Sigma_{11}}}} \cdot \Sigma_{11} & \color{red}{\frac{1}{\sqrt{\Sigma_{11}}}} \cdot \Sigma_{12} \\ \color{blue}{\frac{1}{\sqrt{\Sigma_{22}}}} \cdot \Sigma_{21} & \color{blue}{\frac{1}{\sqrt{\Sigma_{22}}}} \cdot \Sigma_{22} \end{pmatrix}$$

观察结果:现在矩阵的每一行都已经被除以了该行变量的标准差。


第二步:再把结果右乘 $D^{-1/2}$

现在我们要把第一步得到的结果(暂叫它中间矩阵 $M$),去乘以右边的 $D^{-1/2}$。 规则:右乘对角矩阵 = 每一列 (Column) 乘以对角线对应的系数。

$$ \underbrace{\begin{pmatrix} \frac{\Sigma_{11}}{\sqrt{\Sigma_{11}}} & \frac{\Sigma_{12}}{\sqrt{\Sigma_{11}}} \\ \frac{\Sigma_{21}}{\sqrt{\Sigma_{22}}} & \frac{\Sigma_{22}}{\sqrt{\Sigma_{22}}} \end{pmatrix}}_{\text{第一步的结果}} \cdot \underbrace{\begin{pmatrix} \color{red}{\frac{1}{\sqrt{\Sigma_{11}}}} & 0 \\ 0 & \color{blue}{\frac{1}{\sqrt{\Sigma_{22}}}} \end{pmatrix}}_{D^{-1/2}} $$

我们把乘法展开到每一个格子里:

  • 左上角 (1,1)

    $$\frac{\Sigma_{11}}{\sqrt{\Sigma_{11}}} \cdot \color{red}{\frac{1}{\sqrt{\Sigma_{11}}}} = \frac{\Sigma_{11}}{\Sigma_{11}} = 1$$
  • 右上角 (1,2)

    $$\frac{\Sigma_{12}}{\sqrt{\Sigma_{11}}} \cdot \color{blue}{\frac{1}{\sqrt{\Sigma_{22}}}} = \frac{\Sigma_{12}}{\sqrt{\Sigma_{11}}\sqrt{\Sigma_{22}}}$$
  • 左下角 (2,1)

    $$\frac{\Sigma_{21}}{\sqrt{\Sigma_{22}}} \cdot \color{red}{\frac{1}{\sqrt{\Sigma_{11}}}} = \frac{\Sigma_{21}}{\sqrt{\Sigma_{22}}\sqrt{\Sigma_{11}}}$$
  • 右下角 (2,2)

    $$\frac{\Sigma_{22}}{\sqrt{\Sigma_{22}}} \cdot \color{blue}{\frac{1}{\sqrt{\Sigma_{22}}}} = \frac{\Sigma_{22}}{\Sigma_{22}} = 1$$

3. 最终结果:这就是 $R$

经过这两步操作,我们最终得到的矩阵是:

$$ R = \begin{pmatrix} 1 & \frac{\Sigma_{12}}{\sqrt{\Sigma_{11}}\sqrt{\Sigma_{22}}} \\ \frac{\Sigma_{21}}{\sqrt{\Sigma_{22}}\sqrt{\Sigma_{11}}} & 1 \end{pmatrix} $$

现在我们可以清楚地看到:

  1. 对角线 (Diagonal):全部变成了 1
    • 这就是为什么相关系数矩阵对角线总是 1(变量和自己的相关性是完美相关)。
  2. 非对角线 (Off-diagonal):变成了 $\frac{\text{协方差}}{\text{标准差} \times \text{标准差}}$。
    • 这正是相关系数 $\rho_{12}$ 和 $\rho_{21}$ 的定义公式。

通过这样具体的展开,你应该能感觉到,那两个 $D^{-1/2}$ 就像两把“筛子”,一把从左边筛(除以行标准差),一把从右边筛(除以列标准差),最后剩下来的就是纯粹的相关系数。


Q2:解释为什么 “总方差 = 公因子方差 + 误差方差”

这是一个非常直击本质的问题!之所以会有这个完美的加法公式:

归根结底是因为我们在模型里做了一个最关键的假设:潜在因子 ($Z$) 和 误差 ($\epsilon$) 是互不相关的 (Uncorrelated)

作为老师,我分数学推导直观含义两步来给你讲透这个逻辑。

1. 数学推导:为什么刚好能加起来?

让我们回到最简单的标量公式。对于任意一个观察变量 $X_i$(比如你的物理成绩),根据 Factor Analysis 模型,它是由几个公共因子 ($Z$) 和一个误差 ($\epsilon$) 组成的:

$$X_i = \underbrace{l_{i1}Z_1 + l_{i2}Z_2 + \dots + l_{ir}Z_r}_{\text{公共部分}} + \underbrace{\epsilon_i}_{\text{独特部分}}$$

现在,我们要算 $X_i$ 的方差(Total Variance)。

根据统计学公理:如果 A 和 B 不相关,那么 Var(A + B) = Var(A) + Var(B)

因为我们假设了所有 $Z$ 之间互相独立,且 $Z$ 和 $\epsilon$ 也互相独立,所以方差运算可以直接穿透进去,变成每一项方差的简单相加:

$$Var(X_i) = \underbrace{l_{i1}^2 Var(Z_1) + \dots + l_{ir}^2 Var(Z_r)}_{\text{公共因子的方差}} + \underbrace{Var(\epsilon_i)}_{\text{误差的方差}}$$

又因为我们规定了因子是标准化的($Var(Z)=1$),上面的公式就简化成了:

$$\Sigma_{ii} = \underbrace{\sum_{j=1}^r l_{ij}^2}_{h_i (\text{Communality})} + \underbrace{\Psi_i}_{\text{Error Variance}}$$

你看,这就推导出了你讲义里的公式

$$\Sigma_{ii} = h_i + \Psi_i$$

2. 直观含义:切蛋糕的艺术

你可以把总方差想象成一块完整的蛋糕。这块蛋糕代表了数据的全部信息量(波动)。

Factor Analysis 的任务就是把这块蛋糕切成两半:

  1. 公因子方差 (Communality, $h_i$)

    • 这是**“大家都有”**的那部分蛋糕。
    • 比如“物理成绩”之所以有波动,很大一部分是因为你的“智力因子”在起作用。这部分波动是可以被公共因子解释的,所以叫“公因子方差”。
    • 对应讲义中的公式:$h_i = \sum_{j=1}^r l_{ij}^2$ 。
  2. 误差方差 (Error/Unique Variance, $\Psi_i$)

    • 这是**“只有你自己有”**的那部分蛋糕。
    • 它是物理考试特有的波动(比如那次题目刚好是你背过的,或者你那天肚子疼),跟智力没关系,跟其他科目也没关系。这部分是模型解释不了的“噪音”。

总结

这个等式之所以成立,全靠“独立性假设”撑着。

  • 如果是 PCA(主成分分析),它不考虑误差项 $\epsilon$,认为所有方差都应该被提取,所以没有 $\Psi$ 这一项。
  • 但在 Factor Analysis 中,我们承认世界是不完美的,总有一些特异性的噪音 ($\Psi$) 是公共规律 ($L$) 解释不了的。

所以,这个公式不仅是数学等式,它代表了 FA 的世界观:世界 = 普遍规律 + 独特噪音


$\sum_{j=1}^r l_{ij}^2 = (LL^T)_{ii} = h_i$ 是怎么来的

1. 设想 $L$ 是什么样子的

假设 $L$ 是一个 $p \times r$ 的矩阵($p$ 行 $r$ 列),它的第 $i$ 行包含了第 $i$ 个变量在所有 $r$ 个因子上的载荷:

$$L = \begin{pmatrix} l_{11} & l_{12} & \cdots & l_{1r} \\ \vdots & \vdots & \ddots & \vdots \\ \color{blue}{l_{i1}} & \color{blue}{l_{i2}} & \color{blue}{\cdots} & \color{blue}{l_{ir}} \leftarrow \text{第 } i \text{ 行} \\ \vdots & \vdots & \ddots & \vdots \\ l_{p1} & l_{p2} & \cdots & l_{pr} \end{pmatrix}$$

2. 设想 $L^T$ 是什么样子的

$L^T$ 是 $L$ 的转置(Transpose),也就是把行变成列。所以,$L^T$ 的第 $i$ 列其实就是 $L$ 的第 $i$ 行

$$L^T = \begin{pmatrix} l_{11} & \cdots & \color{blue}{l_{i1}} & \cdots & l_{p1} \\ l_{12} & \cdots & \color{blue}{l_{i2}} & \cdots & l_{p2} \\ \vdots & \ddots & \color{blue}{\vdots} & \ddots & \vdots \\ l_{1r} & \cdots & \color{blue}{l_{ir}} & \cdots & l_{pr} \end{pmatrix}$$

3. 两者相乘 $(LL^T)_{ii}$

根据矩阵乘法规则,矩阵 $A \times B$ 的第 $(i, i)$ 个元素,等于 $A$ 的第 $i$ 行 点乘 $B$ 的第 $i$ 列

应用到这里:

$$(LL^T)_{ii} = (\text{L 的第 } i \text{ 行}) \cdot (L^T \text{ 的第 } i \text{ 列})$$

因为 $L^T$ 的第 $i$ 列里的数据,完全就是 $L$ 第 $i$ 行的数据,所以这其实是自己乘以自己

$$ \begin{aligned} (LL^T)_{ii} &= \begin{pmatrix} l_{i1} & l_{i2} & \cdots & l_{ir} \end{pmatrix} \cdot \begin{pmatrix} l_{i1} \\ l_{i2} \\ \vdots \\ l_{ir} \end{pmatrix} \\ &= (l_{i1} \times l_{i1}) + (l_{i2} \times l_{i2}) + \cdots + (l_{ir} \times l_{ir}) \\ &= l_{i1}^2 + l_{i2}^2 + \cdots + l_{ir}^2 \\ &= \sum_{j=1}^r l_{ij}^2 \end{aligned} $$

4. 对应你的讲义

这就是为什么你在讲义Page 3和 Page 5 中会看到:

$$\text{公因子方差 (Communality) } h_i = (LL^T)_{ii} = \sum_{j=1}^r l_{ij}^2$$

总结: $(LL^T)_{ii}$ 在数学上就是第 $i$ 行所有元素的平方和。 在 Factor Analysis 的物理意义上,它代表第 $i$ 个变量被所有公共因子解释的总方差(即 Communality)。


Estimation Via PCA的PCA思想

  1. 降维体现在哪里?(Where is the dimension reduction?)

$L = (\sqrt{\lambda_1}V_1, ..., \sqrt{\lambda_r}V_r)$

原始数据的维度是 $p$(比如你有 100 门课的成绩,$p=100$)。

特征值分解出来的特征向量一共有 $p$ 个($V_1$ 到 $V_p$)。

但是!构造 $L$ 矩阵时,我们只取了前 $r$ 个($V_1$ 到 $V_r$)。

这就是降维!

我们把后面 $p-r$ 个比较小的特征值对应的部分直接扔掉了(视作噪音)。如果不扔掉,那就只是纯粹的坐标变换(旋转);一旦扔掉了一部分,保留了“主成分”,这就是 PCA 的核心灵魂。

  1. 为什么叫 “Estimation via PCA”?

之所以叫这个名字,是因为我们利用了 PCA 的**“最佳逼近” (Best Approximation)** 性质。

Eigendecomposition (数学工具):

它把 $\Sigma^*$ 拆得干干净净:

$$\Sigma^* = \lambda_1 v_1 v_1^T + \lambda_2 v_2 v_2^T + \dots + \lambda_p v_p v_p^T$$

这是一个恒等式,没有信息损失。

PCA (统计策略):

PCA 的思想是:我不需要完美还原 $\Sigma^*$,我只要大概还原它。

为了达到 $rank=r$(降维),我选择最大的 $r$ 个特征值。数学证明告诉我们,这是在这个秩(rank)下,能还原原始矩阵信息的最优解。

所以,笔记里这一步的潜台词是:

$$\Sigma^* \approx L L^T = \sum_{j=1}^r \lambda_j v_j v_j^T$$

因为我们使用了“提取主成分(最大的特征值)”这个策略来估计 $L$,所以这个方法被称为 Principal Component Solution 或 Estimation via PCA。

老师的总结

你觉得它“只是 Eigendecomposition”,是因为笔记里的等号写得很顺滑。但其中的玄机在于下标:

Eigendecomposition:算出所有的 $V_1 \dots V_p$。

PCA 意义:不仅算出来,还做了截断,只保留了前 $r$ 个($V_1 \dots V_r$),并认为这就足以代表原来的矩阵。

正如讲义第 309 条所说:“Pick maximum $r$ such that $\lambda_1...\lambda_r > 0$” 2,这种基于特征值大小进行筛选的过程,就是 PCA 的本质。

1. 所谓的 “Rank r” 到底是谁的 Rank?

Input: $\Sigma \in \mathbb{R}^{p \times p}, \text{rank } r$

这里的逻辑是:

  • $\Sigma$ ( $p \times p$ ):这是原始数据的协方差矩阵。在现实世界中,它通常是 满秩 (Full Rank) 的,也就是说它的秩等于 $p$。因为它包含了所有的真实信号加上各种噪音。
  • Rank $r$:这是我们人为设定的目标(或者说是我们对真实世界的假设)。我们认为,虽然看起来有 $p$ 个维度,但真正起作用的只有 $r$ 个($r < p$)。

2. 怎么“丢掉没用的”?(The “Throwing Away” Process)

你说“丢掉那些没用的行”,这个理解在方向上是对的,但在数学操作上,我们丢掉的其实是**“没用的方向(特征向量)”“微小的能量(特征值)”**。

这正是 Eigendecomposition 发挥作用的地方:

  1. 完全分解: 如果你对 $\Sigma$ 做完整的特征分解,你会得到 $p$ 个特征值和 $p$ 个特征向量:

    $$\Sigma = \lambda_1 v_1 v_1^T + \lambda_2 v_2 v_2^T + \dots + \lambda_p v_p v_p^T$$
  2. 截断 (Truncation): 现在的关键就在那个 $r$。我们只保留最大的 $r$ 个特征值(信号),把剩下的 $p-r$ 个(通常是很小的数值,视为噪音)直接画叉丢掉

    $$\Sigma \approx \underbrace{\lambda_1 v_1 v_1^T + \dots + \lambda_r v_r v_r^T}_{\text{保留的部分 (Signal)}} + \underbrace{0 + \dots + 0}_{\text{被你“丢掉”的部分 (Noise)}}$$
  3. 重组 $L$: 你看笔记里的 Step 1:

    $$L = (\sqrt{\lambda_1}V_1 \dots \sqrt{\lambda_r}V_r)$$

    这里 $L$ 只有 $r$ 列。这意味着我们通过丢弃那部分“没用”的信息,强行把一个 $p$ 维的复杂问题,降维成了 $r$ 维的简单模型。

  • 表面看:是一个 $p \times p$ 的大矩阵。
  • 实际做:通过 Eigen decomposition 找出它的“主心骨”(前 $r$ 个主成分)。
  • 结果:把剩下的琐碎噪音(也就是你说的“没用的”)全部过滤掉,只留下最核心的 $L$。

这就是为什么 FA 和 PCA 总是形影不离——PCA 是 FA 用来实施“断舍离”的数学手术刀。


trace 的应用

这是一个非常经典的线性代数技巧,在多元统计推导(尤其是最大似然估计 MLE)中几乎无处不在。

加入 trace(迹)的根本目的是:为了引入样本协方差矩阵 $S$,从而把包含 $n$ 个样本的复杂求和公式,简化成一个只和 $S$ 有关的矩阵公式。

1. 第一步:标量就是它自己的迹 (Scalar is its own trace)

你看公式里的这一项:$x_i^T (LL^T+\Psi)^{-1} x_i$。 这就好比是向量乘矩阵再乘向量 ($1 \times p \cdot p \times p \cdot p \times 1$),最后的结果是一个单纯的数字(标量,Scalar)

对于任何一个数字 $k$,它的迹 $tr(k)$ 就等于它自己。 所以,我们可以“无中生有”地给它套上一个 tr()

$$x_i^T \Sigma^{-1} x_i = tr(x_i^T \Sigma^{-1} x_i)$$

2. 第二步:迹的循环性质 (Cyclic Property)

这是线性代数里最好用的性质:$tr(ABC) = tr(BCA) = tr(CAB)$。也就是说,矩阵连乘时,你可以把最前面的搬到最后面,迹不变。

利用这个性质,我们把最前面的 $x_i^T$ 搬到最后面:

$$tr(\color{red}{x_i^T} \Sigma^{-1} \color{blue}{x_i}) \rightarrow tr(\Sigma^{-1} \color{blue}{x_i} \color{red}{x_i^T})$$

这一步非常关键!因为它把原来“向量夹矩阵”的形式,变成了“矩阵乘矩阵”的形式。

3. 第三步:求和符号放进 trace 里面

现在我们要对所有 $n$ 个样本求和。因为迹运算是线性的(加法的迹等于迹的加法),我们可以把求和符号 $\sum$ 塞进 tr() 里面:

$$\sum_{i=1}^n tr(\Sigma^{-1} x_i x_i^T) = tr\left( \Sigma^{-1} \sum_{i=1}^n x_i x_i^T \right)$$

4. 第四步:召唤样本协方差矩阵 $S$

统计学中,样本协方差矩阵 $S$ 的定义通常和 $\sum x_i x_i^T$ 有关(在均值为0的假设下,$\sum x_i x_i^T = nS$)。 所以,我们将 $\sum x_i x_i^T$ 替换为 $nS$:

$$tr(\Sigma^{-1} \cdot nS) = n \cdot tr(\Sigma^{-1} S)$$

Unweighted Regression 里为什么$\Psi = I$是假设条件?

  1. 数据压缩: 原始公式里需要带着所有 $n$ 个数据点 ($x_1...x_n$) 跑。 转换后,我们只需要带着一个矩阵 $S$(样本协方差矩阵)就够了。这意味着不管你有 100 个数据还是 1 亿个数据,只要算出了 $S$,后面的计算量都是一样的。

  2. 方便求导: 在 MLE 中,我们需要对矩阵 $L$ 和 $\Psi$ 求导来找最大值。 对于 $tr(A^{-1}S)$ 这种形式,我们有非常成熟的矩阵求导公式可以直接套用。如果不换成 trace,求导会极其痛苦。

所以,加入 trace 不是为了把问题搞复杂,恰恰是为了把 $n$ 个累加项“打包”成一个简洁的矩阵项。这一步是整个 MLE 推导中最漂亮的一笔!


这是一个非常敏锐的直觉问题!

严格来说,$\Psi = I$ 并不直接代表误差的数值很“小”,而是代表误差是**“均匀”且“不重要”**的。

让我来帮你纠正一下这个概念,并解释为什么笔记里会把 $\Psi = I$ 和 PCA 联系在一起。

1. $\Psi = I$ 的真正数学含义:平等 (Equality)

在 Factor Analysis 的公式里,$\Psi$ 是一个对角矩阵,对角线上的值 $\Psi_{ii}$ 代表每个变量的噪音大小

如果 $\Psi = I$(单位矩阵),这意味着:

  1. 所有变量的误差方差都是 1(即 $\Psi_{1} = \Psi_{2} = \dots = 1$)。
  2. 这意味着我们在数学上假设:每个变量的“可靠程度”是一模一样的。没有谁比谁更精准,也没有谁比谁更嘈杂。

2. 为什么笔记里说这对应 PCA?(The Connection to PCA)

请看笔记中提到的公式对比:

  • FA (Bartlett 方法 - 加权回归)

    $$\color{red}\hat{z} = (L^T {\Psi^{-1}} L)^{-1} L^T {\Psi^{-1}\color{red}} x$$

    这里 $\Psi^{-1}$ 起到了权重 (Weight) 的作用。

    • 如果某个变量 $x_i$ 噪音很大($\Psi_i$ 大),那么 $\Psi_i^{-1}$ 就很小。
    • 结果:计算得分时,模型会“忽略”这个噪音大的变量。
  • PCA (无加权回归): 如果我们令 $\Psi = I$,那么 $\Psi^{-1}$ 也就是 $I$。公式里的红色部分直接消失了:

    $$\hat{z} = (L^T L)^{-1} L^T x$$

    这就是普通的最小二乘法(Unweighted Regression)。

核心区别

  • FA 的逻辑:“我们要区别对待。物理成绩误差大,我看的时候权重要低一点;数学成绩误差小,权重要高一点。”
  • PCA 的逻辑:“一视同仁。我只看总方差,我不区分哪个是信号哪个是噪音,或者我认为大家的噪音水平都一样($\Psi=I$),直接投影过去就行。”

3. 为什么你会有“误差很小”的错觉?

可能是因为 PCA 的几何本质。 PCA 是一种数据压缩技术,它倾向于认为**“所有的波动都是由主成分引起的”**,它并不像 FA 那样专门预留一项 $\Psi$ 来存放“解释不了的误差”。

所以,当我们说“用 PCA 的思路解 FA”(即令 $\Psi = I$ 或忽略 $\Psi$)时,我们潜意识里是在做一个简化假设:我们不再去纠结每个变量特有的噪音了,直接把它们当成背景白噪声处理。

老师的总结

  • $\Psi = I$ 不代表误差接近 0。
  • $\Psi = I$ 代表我们在计算得分时,放弃了“加权”,不再区分哪个变量准、哪个变量不准。
  • 这正是 PCA 的做法(只看几何投影),区别于 FA 的做法(精细的统计建模)。

这一点理解了吗?它更多是关于“对待误差的态度”,而不是误差的“绝对大小”。

关于假设原因:

这是一个非常关键的逻辑区分!答案是:这是一个“假设条件”(或者说是你选择某种方法后自带的隐含设定),而不是你从数据里发现的“事实”。

简单来说:并不是因为你发现数据完美无缺($\Psi=I$)所以才用无加权回归;而是因为你选择了“Factor Analysis via PCA”这种方法,你就默认接受了 $\Psi=I$ 这个设定。

作为老师,我帮你把这个因果关系理顺:

1. 这是一个“方法论的选择”

请看笔记里原本的话:

“Comment: if we fit FA via PCA we can use unweighted regression ($\Psi=I$)”

这句话的逻辑方向是:

  • 前提 (If):你决定使用 PCA 的方法来做因子分析(而不是 MLE 方法)。
  • 后果 (Then):你就可以使用无加权回归。
  • 隐含代价:这意味着你在数学上强制假设了 $\Psi = I$。

2. 为什么选 PCA 就等于假设了 $\Psi=I$?

这要回到笔记里的公式:

$\hat{z} = argmin_z ||x - Lz||^2$

  • PCA 的世界观:PCA 的目标是让数据点到直线的**“欧几里得距离” (Euclidean Distance)** 最小。
  • 欧氏距离的特点:它在计算距离时,认为每一个维度(每一个变量 $x_i$)的权重都是一模一样的(都是 1)。
  • 统计学的翻译:在统计学里,“所有维度权重一样”就等同于“所有维度的误差方差一样”。
  • 结论:所以,当你决定用 PCA 提取因子时,你就已经在潜意识里签署了一份协议:“我假设所有变量的误差都是同等的($\Psi=I$)”。

3. 对比:真实情况 vs. 简化模型

  • 真实情况 (MLE / Bartlett): 我们通过计算发现,物理成绩的误差是 0.8,数学是 0.2。它们不相等。所以我们不能假设 $\Psi=I$,必须用加权回归(Weighted Regression)。

  • 简化模型 (PCA / Unweighted): 哪怕真实的误差不一样,但我为了计算方便,或者因为我用的就是 PCA 算法,我选择忽略这些差异。我假装 $\Psi=I$。这样我就可以直接用简单的公式 $\hat{z} = (L^T L)^{-1}L^T x$。

总结

这里的 $\Psi = I$ 是你在使用 PCA 方法时的一个**“霸王条款”**:

  • 并不是你先算出了 $\Psi$ 发现它刚好等于 $I$。
  • 而是你为了使用 PCA 这种简单的几何投影方法,主动忽略了 $\Psi$ 的真实差异,把它当成 $I$ 来处理。

这就是为什么笔记里说 “if we fit FA via PCA… we can use…” —— 这是一个基于方法选择的假设


为什么 $G(y) = y^4$ 对异常值敏感?

我们可以从两个角度来深入理解:一个是代数增长率(Algebraic Growth Rate),另一个是优化算法中的梯度/影响函数(Gradient / Influence Function)

1. 代数角度:误差的“爆炸” (The Explosion of Error)

最直观的原因是幂函数的增长速度。

假设我们有一组已经标准化(均值0,方差1)的数据 $y_1, y_2, \dots, y_n$。 其中大部分数据都在 $[-2, 2]$ 之间(这是正态分布的标准范围),但突然出现了一个异常值 (Outlier) $y_{out} = 10$。

让我们看看这个异常值在不同函数下的贡献权重:

  • 对于方差 ($y^2$): 正常值 $y \approx 2 \implies y^2 = 4$ 异常值 $y = 10 \implies y^2 = 100$ (异常值的影响大约是正常值的 25 倍)

  • 对于峰度 ($y^4$): 正常值 $y \approx 2 \implies y^4 = 16$ 异常值 $y = 10 \implies y^4 = 10,000$ (异常值的影响变成了正常值的 625 倍!)

结论:在计算样本期望 $E[y^4] \approx \frac{1}{n}\sum y_i^4$ 时,这个单一的 $10000$ 会瞬间淹没其他所有正常数据的贡献。如果你的数据集有一千个点,但这一个点的权重比其他所有人加起来还大,那么你计算出的统计量(Kurtosis)实际上只反映了这个异常值,而不是整个分布的形态。


2. 优化角度:梯度的“无界” (Unbounded Gradient)

这是更深刻的数学原因,直接关系到 FastICA 算法的稳定性。

FastICA 本质上是一个寻找权重向量 $w$ 的迭代优化过程(类似牛顿法)。 为了找到最大化 $E[G(w^T x)]$ 的 $w$,我们需要计算目标函数 $G(y)$ 关于 $y$ 的导数 $g(y) = G'(y)$。

这个导数 $g(y)$ 在统计学中被称为影响函数 (Influence Function),它决定了每一个数据点 $x_i$ 对更新权重 $w$ 的“拉力”有多大。

让我们比较两种情况:

情况 A:使用峰度 ($G(y) = y^4$)

$$g(y) = \frac{d}{dy}(y^4) = 4y^3$$
  • 性质:这是一个无界 (Unbounded) 函数。
  • 后果: 当遇到异常值 $y=10$ 时,梯度(拉力)大小为 $4 \times 10^3 = 4000$。 算法会“拼命”地旋转 $w$ 去适应这个异常值,导致迭代方向产生巨大的抖动,甚至发散。算法不是在找分布的结构,而是在被异常值牵着鼻子走。

情况 B:使用负熵近似 ($G(y) = \log \cosh y$)

这是 FastICA 的默认设置。它的导数是什么?

$$g(y) = \frac{d}{dy}(\log \cosh y) = \frac{1}{\cosh y} \cdot \sinh y = \tanh y$$
  • 性质:$\tanh y$ 是一个有界 (Bounded) 函数。其值域严格限制在 $(-1, 1)$ 之间。
  • 后果: 当遇到异常值 $y=10$ 时,梯度大小 $\tanh(10) \approx 1$。 当遇到正常值 $y=2$ 时,梯度大小 $\tanh(2) \approx 0.96$。

结论:使用 $\log \cosh y$ 时,异常值产生的“拉力”被限制住了(Saturated)。算法会把异常值仅仅视作一个“比较大的正数”,而不会赋予它无限的权重。这就是所谓的鲁棒性 (Robustness)

总结

  • $y^4$ (Kurtosis):导数是 $y^3$。距离中心越远,拉力呈立方级增长。一个离群点可以毁掉整个模型的估计。
  • $\log \cosh y$ (Negentropy):导数是 $\tanh y$。距离中心再远,拉力最大也只有 1。它对离群值视而不见(Dampening effect),专注于大部分数据(Bulk of data)的结构。

这就是为什么虽然 $y^4$ 理论性质很好(线性可加),但在工程和实际数据分析中,我们几乎总是使用后者。

关于Whitning操作:

这是一个非常好的数学直觉问题!

简单来说,这其实就是标准化(z-score normalization)的矩阵版本

为了让你彻底理解,我们可以分两步来看:先看简单的“单变量”类比,再看严谨的“矩阵”推导。它们的原理是一模一样的。

1. 简单的单变量类比 (直觉)

假设你有一个随机变量 $x$,它的方差是 $\sigma^2$(在这里 $\Sigma$ 相当于 $\sigma^2$)。 如果你想让它的方差变成 1,你会怎么做?你会除以标准差 $\sigma$。

写成指数形式,除以 $\sigma$ 等于乘以 $\sigma^{-1}$,也就是乘以 $(\sigma^2)^{-1/2}$:

$$y = \frac{x}{\sigma} = x \cdot (\sigma^2)^{-1/2}$$

我们来验证一下 $y$ 的方差:

$$Var(y) = Var(\frac{x}{\sigma}) = \frac{1}{\sigma^2} Var(x) = \frac{1}{\sigma^2} \cdot \sigma^2 = 1$$

结论:在标量世界里,乘以“方差的负平方根”,就能让方差变为 1。矩阵操作只是把这个逻辑推广到了多维空间。


2. 矩阵推导 (严谨证明)

现在回到 ICA 的场景。

  • 已知:原始数据 $X$ 的协方差矩阵是 $\Sigma$,即 $Var(X) = \Sigma$ [cite: 29]。
  • 操作:我们让 $X_{new} = \Sigma^{-1/2} X$ [cite: 30]。
  • 目标:证明 $Var(X_{new}) = I$。

利用线性代数中协方差的变换性质:对于任何矩阵 $A$,有 $Var(AX) = A Var(X) A^T$。 在这里,我们的变换矩阵 $A = \Sigma^{-1/2}$。

推导过程如下:

$$Var(X_{new}) = Var(\Sigma^{-1/2} X)$$$$= \Sigma^{-1/2} \cdot Var(X) \cdot (\Sigma^{-1/2})^T$$

这里有两个关键点:

  1. 把 $Var(X)$ 换成 $\Sigma$。
  2. 因为 $\Sigma$ 是对称矩阵,它的逆平方根 $\Sigma^{-1/2}$ 也是对称的,所以它的转置等于它自己:$(\Sigma^{-1/2})^T = \Sigma^{-1/2}$。

于是公式变成了:

$$= \Sigma^{-1/2} \cdot \Sigma \cdot \Sigma^{-1/2}$$

利用矩阵乘法的结合律,我们可以把 $\Sigma$ 拆成 $\Sigma^{1/2} \cdot \Sigma^{1/2}$:

$$= \Sigma^{-1/2} \cdot (\Sigma^{1/2} \cdot \Sigma^{1/2}) \cdot \Sigma^{-1/2}$$

中间消掉:

$$= (\Sigma^{-1/2} \cdot \Sigma^{1/2}) \cdot (\Sigma^{1/2} \cdot \Sigma^{-1/2})$$

$$= I \cdot I$$

$$= I$$

总结

之所以使用 负平方根 ($\Sigma^{-1/2}$),是因为:

  1. “平方根” ($\Sigma^{1/2}$) 对应的是标准差的概念。
  2. “负一次方” (也就是逆矩阵) 对应的是除法的概念。

所以 $\Sigma^{-1/2} X$ 在几何上就是除以标准差,自然就把数据的方差给归一化成单位矩阵 $I$ 了。


下面这些东西是什么

If $y \sim N(\mu, \sigma^2)$ then

$$ E\left( (\frac{y-\mu}{\sigma})^p \right) = \begin{cases} 0 & \text{if } p \text{ is odd} \\ (p-1)!! & \text{if } p \text{ is even} \end{cases} $$

here $n!! = n(n-2)(n-4)\dots$ is double factorial

$$ \begin{aligned} E\left( \frac{y-\mu}{\sigma} \right) &= E\left( \frac{y-\mu}{\sigma} \right)^3 = E\left( \frac{y-\mu}{\sigma} \right)^5 = \dots = 0 \\ E\left( \frac{y-\mu}{\sigma} \right)^2 &= 1!! = 1 \\ E\left( \frac{y-\mu}{\sigma} \right)^4 &= 3!! = 3 \\ E\left( \frac{y-\mu}{\sigma} \right)^6 &= 5!! = 5 \cdot 3 = 15 \end{aligned} $$

这张幻灯片紧接着上一张关于“非高斯性 (Non-Gaussianity)”的内容。

上一张提到我们用峰度 (Kurtosis) 等高阶矩来衡量一个分布偏离高斯分布的程度。而这张幻灯片给出了正态分布(高斯分布)高阶矩的理论基准值

换句话说,这张图告诉我们:“如果一个变量是完美的正态分布,它的各阶矩应该长什么样。”

以下是具体的数学解释:

1. 标准化 (Standardization)

公式中的 $\frac{y-\mu}{\sigma}$ 实际上就是将随机变量 $y$ 标准化(即 Z-score)。 如果 $y \sim N(\mu, \sigma^2)$,那么 $\frac{y-\mu}{\sigma} \sim N(0, 1)$(标准正态分布)。

2. 奇数阶矩 (Odd Moments) = 0

$$E\left( \left( \frac{y-\mu}{\sigma} \right)^p \right) = 0 \quad \text{if } p \text{ is odd}$$
  • 含义: 标准正态分布关于 0 对称。
  • 直观理解: 对于 $p=1, 3, 5...$,函数 $f(x) = x^p$ 是奇函数。因为正态分布的概率密度函数 (PDF) 是偶函数(关于轴对称),奇函数 $\times$ 偶函数的积分在对称区间上为 0。
  • 这就是为什么正态分布的 偏度 (Skewness, $p=3$) 为 0。

3. 偶数阶矩 (Even Moments)与双阶乘

$$E\left( \left( \frac{y-\mu}{\sigma} \right)^p \right) = (p-1)!! \quad \text{if } p \text{ is even}$$
  • 双阶乘 (Double Factorial, $!!$): 这不是阶乘做两次,而是隔数相乘。 例如:$5!! = 5 \times 3 \times 1 = 15$。
  • 关键推导结果:
    • $p=2$ (方差): $(2-1)!! = 1!! = 1$。这验证了标准正态分布方差为 1。
    • $p=4$ (峰度): $(4-1)!! = 3!! = 3 \times 1 = 3$。

4. 为什么这很重要 (For ICA/Statistics)?

这是 ICA 算法的核心判断依据。

  • 我们在上一张图看到,ICA 试图寻找非高斯的信号。
  • 这张图告诉我们,如果信号是高斯的,它的 4 阶矩(标准化后)必须等于 3
  • 因此,我们定义 超额峰度 (Excess Kurtosis) 为: $$Kurtosis - 3$$
  • 对于 ICA:
    • 如果计算出的 4 阶矩 $E(z^4) = 3$,那它很可能是高斯噪声,不是我们要找的独立源信号。
    • 如果 $E(z^4) \gg 3$ (Super-Gaussian, 尖峰) 或 $E(z^4) \ll 3$ (Sub-Gaussian, 平顶),这才是我们要分离出来的独立成分 (Independent Components)。

简而言之:这张图定义了“高斯分布”在数学上的指纹(尤其是第4阶矩为3),任何偏离这个指纹的信号,就是 ICA 想要捕捉的信号。


CLT在ICA中的含义

这两张幻灯片紧密相连,共同构成了 独立成分分析 (ICA) 算法最核心的理论支柱。

简单来说:第一张图告诉你**“为什么要找非高斯性”(直觉),第二张图告诉你“如何用数学定义高斯性”**(基准)。

基于您的数学背景,我们可以这样深入理解:


中心极限定理 (More intuition: CLT)

这张图利用 中心极限定理 (Central Limit Theorem, CLT) 解释了 ICA 的物理直觉。

  • 核心逻辑: CLT 告诉我们,大量独立随机变量的和(即使原始变量不是高斯的)倾向于服从高斯分布。

    • 混合 (Mixing): 在信号处理中,传感器接收到的信号通常是源信号的线性组合(即加和)。根据 CLT,混合信号比源信号更接近高斯分布
    • 分离 (Demixing - ICA的目标): 如果混合增加了高斯性,那么为了恢复原始的独立源信号,我们必须反其道而行之:寻找某种线性变换,使得结果的非高斯性最大化 (Maximize Non-Gaussianity)
  • 数学示例:

    • $z_i \sim Unif[-\sqrt{3}, \sqrt{3}]$:这是均匀分布,它是典型的非高斯分布(平顶,没有尾巴)。
    • 其均值为 0,方差为 1(计算:$\frac{(b-a)^2}{12} = \frac{(2\sqrt{3})^2}{12} = 1$)。
    • $\bar{z} = \frac{1}{n}\sum z_i$:当你把这些“方形”分布的变量加起来,结果 $\bar{z}$ 就会迅速变成“钟形”的正态分布 $N(0, 1/n)$。

结论: 在 ICA 中,如果我们找到一个方向,使得信号在这个方向上的投影最不像高斯分布(比如峰度最偏离 3),那么我们就很可能找到了一个独立的源信号。


正态分布的矩 (Moments of Normal Distribution)

如果我们想通过“非高斯性”来分离信号,我们需要一个标准来判断“什么是高斯”。这个标准就是高阶矩

  • 偶数阶矩的规律: 对于标准正态分布($y \sim N(\mu, \sigma^2)$,标准化后),其偶数阶矩遵循双阶乘 (Double Factorial) 规律:

    $$E\left( \left( \frac{y-\mu}{\sigma} \right)^p \right) = (p-1)!!$$
  • 关键数值 (The Benchmark):

    • 2阶矩 (方差): $1!! = 1$。
    • 4阶矩 (峰度): $3!! = 3 \times 1 = \mathbf{3}$。
    • 6阶矩: $5!! = 15$。
  • ICA 中的应用: 这就是为什么我们在 ICA 中经常看到 $Kurtosis(y) - 3$ 这种形式(即超额峰度)。

    • 因为根据这张图,对于高斯噪声,这个值为 $3-3=0$。
    • ICA 算法(如 FastICA)本质上就是在寻找解混向量 $w$,使得 $w^T x$ 的四阶矩尽可能的远离 3(无论是由正方向远离还是负方向远离)。

总结 (The Big Picture)

  1. CLT (图1): 混合会导致信号变“高斯”。 $\rightarrow$ 我们要分离信号,就要让它变“非高斯”。
  2. Moments (图2): “高斯”意味着 4 阶矩等于 3。
  3. 算法策略: 调整参数,让输出信号的 4 阶矩 $\neq 3$。离 3 越远,说明信号越独立(越不像混合物)。

ICA的具体实践方式

“我们要具体的怎么做才能把混在一起的信号 $x$ 拆开?” 以下是详细的数学推导和逻辑解释:

1. 设定目标 (The Goal)

  • 已知: 观测数据 $x$(它是源信号的混合)。
  • 目标: 找到一组解混向量 (unmixing vectors) $w_1, \dots, w_p$。
  • 策略: 让投影后的信号 $w_i^T x$ 的非高斯性 (Non-Gaussianity) 最大化
    • 这直接利用了中心极限定理的逆向逻辑:“混合得越乱越像高斯,分得越干净越不像高斯”。

2. 数学推导 (The Derivation)

幻灯片中间的公式展示了如果你选了一个 $w$,到底发生了什么:

$$x = Lz \Rightarrow w^T x = w^T (Lz) = (w^T L) z = \alpha^T z$$
  • $x = Lz$:这是假设的生成模型。观测信号 $x$ 是源信号 $z$ 经过混合矩阵 $L$ 混合而成的。
  • $w^T x$:这是我们要提取的估计信号。
  • $\alpha^T = w^T L$:这是一个中间变量,表示**“我们要提取的信号”实际上是“源信号 $z$”的某种线性组合**,组合权重由 $\alpha$ 决定。

3. 核心逻辑 (The Core Logic - Bullet Points)

这是整张幻灯片的灵魂所在:

  • 混合意味着“高斯化” (Mixing is Gaussianization): 根据中心极限定理 (CLT),独立非高斯变量的和($\sum \alpha_i z_i$)通常比单个变量 ($z_i$) 更接近高斯分布。

    • 如果你选的 $w$ 不好(没解开),$\alpha$ 就会有很多非零分量,结果 $w^T x$ 就是很多源信号加在一起,分布看起来就像高斯分布(钟形)。
  • 解混意味着“去高斯化” (Unmixing is De-Gaussianization): 什么时候 $w^T x$ 最不像高斯分布? 答案是:当线性组合 $\alpha^T z$ 中只有一项是非零的时候! 即 $\alpha = e_i = (0, \dots, 1, \dots, 0)^T$。

    • 这时,$w^T x = z_i$(或者是 $z_i$ 的缩放)。这意味着我们成功分离出了第 $i$ 个源信号!

4. 为什么高斯信号不行? (The Gaussian Failure Case)

幻灯片最后一行指出:如果源信号 $z_i$ 本身就是高斯分布,这套方法就失效了。

  • 原因: 高斯变量的线性组合依然是高斯变量 ($\alpha^T z \sim N(0, \alpha^T \alpha)$)。
  • 无论 $\alpha$ 是什么(是一个 $z$ 还是多个 $z$ 的混合),出来的分布形状都是一样的钟形。我们无法通过“非高斯性”来判断是否分离成功。这回扣了第一张图讲的“旋转不变性”问题。

总结

我们要寻找向量 $w$,通过改变 $w$ 来调整权重 $\alpha$,使得输出结果 $w^T x$ 尽可能的**“奇怪”(非高斯)**。当你找到了那个最“奇怪”的点,你就找到了原始信号 $z_i$。


FastICA里的W是什么?

这个 $W$ (大写) 是 ICA 算法的终极目标,它的学名叫做 解混矩阵 (Unmixing Matrix)

为了让你作为一个音乐人能秒懂,我们用经典的 “鸡尾酒会问题” (Cocktail Party Problem) 来解释它的物理含义。

1. 现实世界发生了什么?(The Mixing Process)

假设你在录音棚里:

  • $s$ (Sources):有 3 个独立的声源(比如:人声、吉他、鼓)。这是我们想得到看不见的原始信号。
  • $A$ (Mixing Matrix):这是混合矩阵。它代表物理环境。比如,人声离 1 号麦克风很近,离 2 号很远;吉他在两个麦克风中间。这个矩阵描述了“谁的声音以多大音量进入了哪个麦克风”。
  • $x$ (Observed Signals):这是你电脑里录下来的 3 条音轨。每条音轨里都混杂了人声、吉他和鼓。

数学公式是:

$$x = A \cdot s$$

(注:这里 $x$ 是已知的观测数据,$A$ 和 $s$ 都是未知的)


2. $W$ 意味着什么?(The Unmixing)

ICA 算法的任务就是算出这个 $W$

$W$ 是 $A$ 的逆矩阵(或者说是它的伪逆)。

它的作用是把混合好的乱七八糟的信号 $x$,还原回原始的独立声源 $s$。

$$s = W \cdot x$$
  • 物理意义:$W$ 就是那个**“魔法滤网”**。
    • $x$ 进去(混合信号)。
    • $W$ 对它们进行线性组合(加加减减)。
    • $s$ 出来(干净的人声、干净的吉他、干净的鼓)。

3. $W$ 和刚才那个 $w$ 的关系

这回到了你上一个问题。

  • 小写 $w$:是 $W$ 矩阵的一行(或者说一个行向量)。
    • $w_1$ 负责提取“人声”。
    • $w_2$ 负责提取“吉他”。
    • $w_3$ 负责提取“鼓”。

FastICA 算法就是通过循环,一行一行地把 $W$ 给凑出来的:

$$W = \begin{bmatrix} — w_1^T — \\ — w_2^T — \\ — w_3^T — \end{bmatrix}$$

总结: 如果你是在写一个音频插件,$W$ 就是你那个插件的核心参数。一旦训练好了 $W$,你的插件就能实时把输入的混合音乐拆解成不同的分轨。

这是一个非常关键的概念问题!这里的符号确实容易让人混淆。

直接回答你:

  1. 在这里,$w$ 不是一个矩阵,它是一个向量 (Vector)
  2. $w_1$ 是我们在第一步 ($ICA_1$) 中已经找到并固定下来的那个向量

让我为你详细拆解一下这里的线性代数维度和物理含义:


对W的进一步解释

1. 为什么 $w$ 是向量?

请看 PPT 中的符号:

$$\underset{w \in \mathbb{R}^p}{\text{maximize}}$$
  • $\mathbb{R}^p$:代表 $p$ 维实数空间。这通常是指一个 $p \times 1$ 的列向量
  • $x$:也是一个 $p \times 1$ 的向量(代表某一时刻,$p$ 个传感器接收到的混合信号)。
  • $w^T x$
    • $(1 \times p) \times (p \times 1) = 1 \times 1$ (标量)。
    • 这意味着 $w$ 把多维的观测数据 $x$ 压缩成了一个单维的信号 $y = w^T x$。
    • 我们的目标就是让这个单维信号 $y$ 最“非高斯”。

物理意义: 如果最终的解混矩阵 (Unmixing Matrix) 是 $W$(大写),那么这里的 $w$(小写)其实是 矩阵 $W$ 的某一行。我们是一行一行地把这个矩阵求出来的。


2. $w_1$ 是什么?

$ICA_2$ 的步骤中,你会看到约束条件:

$$w^T w_1 = 0$$
  • $w_1$ (The Winner of Round 1)
    • 它是在上一步 $ICA_1$ 中计算出来的最优解
    • 在做 $ICA_2$ 时,$w_1$ 已经是一个已知常数向量,不再变化。
  • $w$ (The Candidate for Round 2)
    • 这是我们当前正在寻找的未知向量
  • $w^T w_1 = 0$
    • 这是两个向量的点积 (Dot Product)
    • 点积为 0 意味着几何垂直 (Orthogonal)
    • 这就强迫我们当前寻找的新方向 $w$,必须垂直于已经找到的旧方向 $w_1$。

3. 整体图解 (The Big Picture)

假设我们有 3 个麦克风 ($p=3$),想分离出 3 个说话人。最终的矩阵 $W$ 是 $3 \times 3$ 的。

FastICA 的“紧缩法”是这样工作的:

  1. Round 1 ($ICA_1$)

    • 寻找向量 $w$。
    • 找到后,将其命名为 $w_1$
    • (这就是矩阵 $W$ 的第 1 行)
  2. Round 2 ($ICA_2$)

    • 寻找新的向量 $w$。
    • 约束:$w$ 必须垂直于 $w_1$。
    • 找到后,将其命名为 $w_2$
    • (这就是矩阵 $W$ 的第 2 行)
  3. Round 3 ($ICA_3$)

    • 寻找新的向量 $w$。
    • 约束:$w$ 必须垂直于 $w_1$,且垂直于 $w_2$。
    • 找到后,将其命名为 $w_3$
    • (这就是矩阵 $W$ 的第 3 行)

最终组装

$$W = \begin{bmatrix} — w_1^T — \\ — w_2^T — \\ — w_3^T — \end{bmatrix}$$

总结

在这些 PPT 中,$w$ 始终是一个列向量,代表我们正在寻找的那个单一成分的提取权重。而 $w_1, w_2 \dots$ 是之前步骤里已经找好的“历史战绩”。


为什么$W^4$对异常值敏感?

这是一个非常敏锐的数学直觉问题。

为什么 $G(y) = y^4$ 对异常值敏感?我们可以从两个角度来深入理解:一个是代数增长率(Algebraic Growth Rate),另一个是优化算法中的梯度/影响函数(Gradient / Influence Function)

作为数学专业的学生,第二个角度(梯度)对你理解 ICA 算法的迭代过程尤为重要。

1. 代数角度:误差的“爆炸” (The Explosion of Error)

最直观的原因是幂函数的增长速度。

假设我们有一组已经标准化(均值0,方差1)的数据 $y_1, y_2, \dots, y_n$。 其中大部分数据都在 $[-2, 2]$ 之间(这是正态分布的标准范围),但突然出现了一个异常值 (Outlier) $y_{out} = 10$。

让我们看看这个异常值在不同函数下的贡献权重:

  • 对于方差 ($y^2$): 正常值 $y \approx 2 \implies y^2 = 4$ 异常值 $y = 10 \implies y^2 = 100$ (异常值的影响大约是正常值的 25 倍)

  • 对于峰度 ($y^4$): 正常值 $y \approx 2 \implies y^4 = 16$ 异常值 $y = 10 \implies y^4 = 10,000$ (异常值的影响变成了正常值的 625 倍!)

结论:在计算样本期望 $E[y^4] \approx \frac{1}{n}\sum y_i^4$ 时,这个单一的 $10000$ 会瞬间淹没其他所有正常数据的贡献。如果你的数据集有一千个点,但这一个点的权重比其他所有人加起来还大,那么你计算出的统计量(Kurtosis)实际上只反映了这个异常值,而不是整个分布的形态。


2. 优化角度:梯度的“无界” (Unbounded Gradient)

这是更深刻的数学原因,直接关系到 FastICA 算法的稳定性。

FastICA 本质上是一个寻找权重向量 $w$ 的迭代优化过程(类似牛顿法)。 为了找到最大化 $E[G(w^T x)]$ 的 $w$,我们需要计算目标函数 $G(y)$ 关于 $y$ 的导数 $g(y) = G'(y)$。

这个导数 $g(y)$ 在统计学中被称为影响函数 (Influence Function),它决定了每一个数据点 $x_i$ 对更新权重 $w$ 的“拉力”有多大。

让我们比较两种情况:

情况 A:使用峰度 ($G(y) = y^4$)

$$g(y) = \frac{d}{dy}(y^4) = 4y^3$$
  • 性质:这是一个无界 (Unbounded) 函数。
  • 后果: 当遇到异常值 $y=10$ 时,梯度(拉力)大小为 $4 \times 10^3 = 4000$。 算法会“拼命”地旋转 $w$ 去适应这个异常值,导致迭代方向产生巨大的抖动,甚至发散。算法不是在找分布的结构,而是在被异常值牵着鼻子走。

情况 B:使用负熵近似 ($G(y) = \log \cosh y$)

这是 FastICA 的默认设置。它的导数是什么?

$$g(y) = \frac{d}{dy}(\log \cosh y) = \frac{1}{\cosh y} \cdot \sinh y = \tanh y$$
  • 性质:$\tanh y$ 是一个有界 (Bounded) 函数。其值域严格限制在 $(-1, 1)$ 之间。
  • 后果: 当遇到异常值 $y=10$ 时,梯度大小 $\tanh(10) \approx 1$。 当遇到正常值 $y=2$ 时,梯度大小 $\tanh(2) \approx 0.96$。

结论:使用 $\log \cosh y$ 时,异常值产生的“拉力”被限制住了(Saturated)。算法会把异常值仅仅视作一个“比较大的正数”,而不会赋予它无限的权重。这就是所谓的鲁棒性 (Robustness)

总结

  • $y^4$ (Kurtosis):导数是 $y^3$。距离中心越远,拉力呈立方级增长。一个离群点可以毁掉整个模型的估计。
  • $\log \cosh y$ (Negentropy):导数是 $\tanh y$。距离中心再远,拉力最大也只有 1。它对离群值视而不见(Dampening effect),专注于大部分数据(Bulk of data)的结构。

这就是为什么虽然 $y^4$ 理论性质很好(线性可加),但在工程和实际数据分析中,我们几乎总是使用后者。


Fast ICA 具体步骤解释

这组幻灯片是你前面所有理论铺垫的最终落地。它们展示了从理论定义的非高斯性,到近似计算,最后到实际的 FastICA 算法 的完整逻辑链。

前几张图(高斯矩、超额峰度推导、负熵定义、近似公式)我们之前都已经详细拆解过了。

重点在于最后一张图:FastICA 的算法架构。这是你作为计算机/统计背景学生最需要关注的“如何实现”部分。

这张图描述的是 FastICA 的一种特定实现方式:基于紧缩的(Deflationary)正交化方法。也就是说,它不是一次性把所有分量找出来,而是一个接一个地找。

让我们拆解这个过程:

1. 第一步:寻找第一个独立成分 ($ICA_1$)

$$\underset{w \in \mathbb{R}^p}{\text{maximize}} \quad |J(w^T x)| \quad \text{subject to } \|w\| = 1$$
  • 目标:找到一个投影方向 $w$,使得投影后的数据 $y = w^T x$ 的负熵 $J(y)$ 最大(即最不像高斯分布)。
  • 约束 $\|w\|=1$:保持方差归一化。如果不加这个约束,算法可以通过无限增大 $w$ 来让 $J$ 变大,但这没有物理意义。我们只关心方向,不关心缩放。
  • 实际操作:这里使用的是牛顿迭代法 (Newton’s Method) 的变种(定点迭代),利用我们在上一节讨论的导数 $g(y)$(如 $\tanh y$)。这也是它被称为 “Fast” ICA 的原因——因为它具有二次收敛速度(Quadratic Convergence),比普通的梯度下降(线性收敛)快得多。

2. 第二步:寻找第二个独立成分 ($ICA_2$)

$$\underset{w \in \mathbb{R}^p}{\text{maximize}} \quad |J(w^T x)| \quad \text{subject to } \|w\| = 1 \text{ and } w^T w_1 = 0$$
  • 问题:如果我们再次运行第一步的算法,它很可能会收敛到同一个 $w_1$(因为那是全局最优解)。
  • 解决方案 (正交化):我们需要强制新的方向 $w$ 与已经找到的方向 $w_1$ 正交 (Orthogonal)
  • 前提条件 - 白化 (Whitening):这里有一个数学上非常重要的隐含前提——输入数据 $x$ 必须是已经经过“白化”处理的
    • 如果数据已经白化(协方差矩阵为单位阵 $I$),那么不同的独立成分在混合矩阵中的列向量是相互正交的。
    • 因此,约束 $w^T w_1 = 0$ 实际上是在保证我们要找的第二个信号 $s_2$ 与第一个信号 $s_1$ 是统计独立(不相关)的。

3. 第 $p$ 步:寻找剩余成分 ($ICA_p$)

$$\dots \text{subject to } \|w\| = 1 \text{ and } w^T w_1 = \dots = w^T w_{p-1} = 0$$
  • 这是一个递归过程。每找到一个新分量,我们在寻找下一个分量时,都要将其投影到之前所有分量张成的子空间的正交补空间中。
  • 在算法实现中,这通常通过 Gram-Schmidt 正交化 步骤来实现: $$w_{new} \leftarrow w_{new} - \sum_{j=1}^{p-1} (w_{new}^T w_j)w_j$$ 然后再归一化。

总结:FastICA 的完整工作流

结合你提供的所有图片,现在的完整逻辑是:

  1. 预处理:对数据进行中心化 (Centering) 和白化 (Whitening)。
  2. 定义目标:我们要最大化非高斯性 $J(y)$。
  3. 选择度量:为了鲁棒性,不要用 $y^4$ (Kurtosis),而要用 $G(y) = \log \cosh y$ (Negentropy Approximation)。
  4. 迭代求解 (Deflation)
    • Loop 1: 用定点迭代找到让 $|E[G(w^T x)]|$ 最大的 $w_1$。
    • Loop 2: 寻找 $w_2$,但在每一步迭代中强行减去它在 $w_1$ 上的投影(保证正交)。
    • Loop p: 直到找完所有分量。

这就是为什么 FastICA 既快又稳健,且能保证找到不同源信号的数学原理。


Variance Explained 在矩阵中的表现

我们从因子分析的核心协方差结构方程出发:

$$\Sigma \approx LL^T + \Psi$$

我们关注对角线元素(即变量的方差)。

1. 展开 Loadings Matrix ($L$) 及其转置 ($L^T$)

假设有 $p$ 个变量 (Variables),$r$ 个因子 (Factors)。 $L$ 是 $p \times r$ 的矩阵:

$$ L = \begin{bmatrix} \ell_{11} & \ell_{12} & \cdots & \ell_{1r} \\ \ell_{21} & \ell_{22} & \cdots & \ell_{2r} \\ \vdots & \vdots & \ddots & \vdots \\ \mathbf{\ell_{i1}} & \mathbf{\ell_{i2}} & \cdots & \mathbf{\ell_{ir}} \\ \vdots & \vdots & \ddots & \vdots \\ \ell_{p1} & \ell_{p2} & \cdots & \ell_{pr} \end{bmatrix} $$

(注意第 $i$ 行,它代表第 $i$ 个变量在所有因子上的载荷)

$L^T$ 是 $r \times p$ 的矩阵:

$$ L^T = \begin{bmatrix} \ell_{11} & \ell_{21} & \cdots & \mathbf{\ell_{i1}} & \cdots & \ell_{p1} \\ \ell_{12} & \ell_{22} & \cdots & \mathbf{\ell_{i2}} & \cdots & \ell_{p2} \\ \vdots & \vdots & \ddots & \vdots & \ddots & \vdots \\ \ell_{1r} & \ell_{2r} & \cdots & \mathbf{\ell_{ir}} & \cdots & \ell_{pr} \end{bmatrix} $$

(注意第 $i$ 列,它对应 $L$ 的第 $i$ 行)

2. 计算 $LL^T$ 的对角线元素

我们现在计算 $M = LL^T$。 对于结果矩阵 $M$ 的第 $i$ 个对角线元素 $M_{ii}$,它是 $L$ 的第 $i$ 行与 $L^T$ 的第 $i$ 列的点积 (Dot Product)。

$$ \begin{aligned} M_{ii} &= (\text{Row}_i \text{ of } L) \cdot (\text{Col}_i \text{ of } L^T) \\ &= \begin{bmatrix} \ell_{i1} & \ell_{i2} & \cdots & \ell_{ir} \end{bmatrix} \cdot \begin{bmatrix} \ell_{i1} \\ \ell_{i2} \\ \vdots \\ \ell_{ir} \end{bmatrix} \\ &= \ell_{i1} \cdot \ell_{i1} + \ell_{i2} \cdot \ell_{i2} + \cdots + \ell_{ir} \cdot \ell_{ir} \\ &= \sum_{j=1}^r \ell_{ij}^2 \end{aligned} $$

看!这就是 Communality ($h_i$) 的定义。 所以,$LL^T$ 这个矩阵的对角线存放的正是所有变量的 Communalities。

3. 加上 Uniqueness Matrix ($\Psi$)

$\Psi$ 是一个对角矩阵 (Diagonal Matrix),包含了每个变量的特殊方差 (Uniqueness):

$$ \Psi = \begin{bmatrix} \Psi_1 & 0 & \cdots & 0 \\ 0 & \Psi_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \Psi_p \end{bmatrix} $$

4. 最终合并:还原总方差

当我们执行加法 $\Sigma = LL^T + \Psi$ 时,我们只看第 $i$ 个对角线元素:

$$ \underbrace{\Sigma_{ii}}_{\text{Total Variance}} = \underbrace{(LL^T)_{ii}}_{\text{Communality } h_i} + \underbrace{\Psi_{ii}}_{\text{Uniqueness } \Psi_i} $$

展开写就是:

$$ \text{Var}(X_i) = \left( \sum_{j=1}^r \ell_{ij}^2 \right) + \Psi_i $$

总结

在矩阵形式中:

  • $LL^T$ 的对角线 = Communalities ($h_i$),即被解释的部分
  • $\Psi$ 的对角线 = Uniquenesses ($\Psi_i$),即未被解释的部分
  • $\Sigma$ 的对角线 = 两者之和,即变量的总方差

关于Varimax

简单来说:Varimax 是一个优化问题 (Optimization Problem)。

我们寻找一个正交矩阵 $Q$,使得旋转后的载荷矩阵 $\tilde{L} = LQ$ 能够最大化目标函数 $V$。

以下是这一过程的完整逻辑流:

1. 预处理:行归一化 (Kaiser Normalization)

首先看定义 $PVE_{ij}$ 的这一步:

$$PVE_{ij} = \frac{\tilde{\ell}_{ij}^2}{\tilde{h}_i}$$
  • 结合上一张图:你已经知道 $h_i = \sum_{j=1}^r \ell_{ij}^2$ 是第 $i$ 个变量在公共因子空间的向量长度平方(即 Communality)。
  • 操作:这一步实际上是将所有变量的向量长度强制归一化为 1
  • 数学意义
    • 在几何上,我们将所有变量向量投影到了一个 $r$-维的单位超球面上。
    • 目的:消除变量本身 Communality 大小的影响。如果不这样做,那些原本 Communality 很大的变量(即被模型解释得很好的变量)会主导旋转的方向,而 Varimax 希望所有变量在决定“最佳轴向”时拥有平等的权重。

2. 核心逻辑:列方差最大化 (Column-wise Variance Maximization)

让我们看幻灯片里最复杂的那个公式 $V$:

$$V = \frac{1}{p} \sum_{j=1}^r \left( \underbrace{\sum_{i=1}^p PVE_{ij}^2}_{\text{Sum of Squares}} - \frac{1}{p} \underbrace{\left( \sum_{i=1}^p PVE_{ij} \right)^2}_{\text{Square of Sum}} \right)$$

作为一个 Math Specialist,你应该能一眼看出括号里的结构就是 方差公式 的变体:

$$\text{Var}(X) = E[X^2] - (E[X])^2$$

这里 $X$ 是什么?$X$ 是第 $j$ 个因子(列)上的归一化载荷平方值 ($PVE_{ij}$)。

所以,$V$ 的本质就是:所有因子(列)的载荷分布方差之和。

3. 为什么我们要“最大化方差”?

这是 Varimax 的精髓所在。让我们思考一下一个随机变量的方差什么时候最大?

假设我们的变量 $x$ 取值范围在 $[0, 1]$ 之间(因为 $PVE$ 是归一化的比例):

  • 低方差分布:所有 $x_i$ 都接近 0.5(平均分布)。这意味着所有变量都跟因子 $j$ “有一点关系”,但关系都不强。这很难解释。
  • 高方差分布:$x_i$ 呈现两极分化,要么接近 1,要么接近 0。
    • 接近 1 $\to$ 该变量完全由该因子解释。
    • 接近 0 $\to$ 该变量与该因子无关。

Varimax 的目标 (Simple Structure): 通过旋转坐标轴,让每一列的载荷分布尽可能“极端”。它希望把原本糊在中间的载荷(比如 0.4, 0.5),通过旋转拉伸成接近 0 或接近 1 的数值。

4. 总结:Varimax 的算法流程

结合两张图,Varimax 实际上在做这件事:

  1. 计算长度:算出每个变量的 Communality $h_i$。
  2. 归一化:把载荷除以 $\sqrt{h_i}$,排除长度干扰。
  3. 寻找旋转:寻找矩阵 $Q$,旋转这些归一化的向量。
  4. 目标函数:在这个旋转位置下,计算每一列数值的方差。我们不断调整 $Q$,直到这个总方差 $V$ 达到最大值。
  5. 还原:找到最佳 $Q$ 后,再把结果乘回 $\sqrt{h_i}$,得到最终的旋转载荷矩阵 $\tilde{L}$。

这就是为什么它叫 Vari-max(Variance Maximization)。它不是最大化数据的解释方差(这是 PCA 做的事),而是最大化载荷分布的方差,为了可解释性。


Scoring 解析

因子分析 (Factor Analysis, FA) 在模型拟合之后的三个关键步骤:评估 (Assessment)旋转 (Rotation)打分 (Scoring)。可以把这看作是 FA 的“后处理 pipeline”。让我们按照逻辑顺序(模型评估 -> 优化解释 -> 实际应用)来讲解。

1. 模型评估:Variance Explained (解释方差)

对应幻灯片:

这部分定义了如何评估你的模型到底“抓住”了多少信息。我们在前几轮对话中已经深入讨论过这里,这里做一个结构化的总结:

  • 总方差分解 (Decomposition): 对于任意变量 $i$,其总方差 $\Sigma_{ii}$ 被拆解为:

    $$\Sigma_{ii} = \underbrace{\ell_{i1}^2 + \dots + \ell_{ir}^2}_{\text{Communality } h_i} + \underbrace{\Psi_i}_{\text{Uniqueness}}$$
    • $h_i$ (Communality):被所有 $r$ 个公共因子解释的部分。
    • $\Psi_i$ (Uniqueness):噪声或特殊方差。
  • 两个维度的求和 (Two Sums)

    1. 纵向求和 (Sum over factors) $\rightarrow h_i$:看一个变量被解释得怎么样。
    2. 横向求和 (Sum over variables) $\rightarrow \sum_{i=1}^p \ell_{ij}^2$:看一个因子有多重要(贡献了多少方差)。
  • Total Variance Explained

    $$\text{Total \%} = \frac{\sum_{i=1}^p h_i}{\text{tr}(\Sigma)}$$

    这是评估 FA 模型好坏的最核心指标。


2. 模型优化:Varimax Criterion (方差极大旋转)

对应幻灯片:

这一步是为了可解释性 (Interpretability)

  • 问题:初始得到的载荷矩阵 $L$ 虽然数学上是正确的,但往往很难解释(比如所有变量在 Factor 1 上都有 0.5 的载荷)。
  • 方法:寻找一个正交旋转矩阵 $Q$,计算 $\tilde{L} = LQ$。
  • 目标函数 $V$: $$V \propto \sum (\text{Variance of squared loadings})$$ 我们在前一轮详细推导过:Varimax 试图让每一列(每个因子)的载荷分布两极分化(要么很大,要么很小)。
  • Kaiser Normalization:在旋转前除以公因子方差 $h_i$,防止高方差变量主导旋转方向。

3. 模型应用:Factor Scores (因子得分)

对应幻灯片: (这是新内容)

这是最实际的一步。假设你已经把模型拟合好了(有了 $L$ 和 $\Psi$),现在来了一个新的样本 $x$(比如一个新的学生成绩单),你想算出他的潜在能力得分 $z$ 是多少。

这是一个逆向问题 (Inverse Problem)

$$X \simeq LZ + \varepsilon$$

我们已知 $X, L, \Psi$,要求 $Z$。

幻灯片提供了两种思路,本质上是 Generalized Least Squares (GLS) vs Ordinary Least Squares (OLS) 的区别。

A. Weighted Regression (Bartlett’s Method)

这是最标准的 FA 打分方法。

  • 目标:寻找 $\hat{z}$ 使得观测值 $x$ 和预测值 $Lz$ 之间的“距离”最小。
  • 为什么叫 Weighted (加权)? 注意公式中的 $\Psi^{-1}$: $$\hat{z} = \underset{z}{\text{argmin}} (x - Lz)^T \mathbf{\Psi^{-1}} (x - Lz)$$ 这里使用的是 马哈拉诺比斯距离 (Mahalanobis Distance) 的变体。
    • 如果某个变量 $i$ 的噪声 $\Psi_i$ 很大(Uniqueness 高),那么 $\Psi_{ii}^{-1}$ 就很小。
    • 直观意义:在估算因子得分时,模型会**“不信任”**那些噪声大的变量,给它们更小的权重;反之,给噪声小的变量更大的权重。
  • 解 (Solution): $$\hat{z} = (L^T \Psi^{-1} L)^{-1} L^T \Psi^{-1} x$$ 这正是 GLS 的标准解。它的优点是得到的因子得分是无偏的 (Unbiased)。

B. Unweighted Regression (PCA Approach)

幻灯片的 Comment 部分提到,如果我们在做 PCA(或者假设 $\Psi = I$),情况就退化了。

  • 假设:$\Psi = I$(假设所有变量的噪声方差都相等且为 1,或者我们根本不在乎噪声结构)。
  • 目标: $$\hat{z} = \underset{z}{\text{argmin}} ||x - Lz||^2$$ 这就是标准的最小二乘法 (OLS)
  • 解 (Solution): $$\hat{z} = (L^T L)^{-1} L^T x$$ 这其实就是把数据 $x$ 投影到由 $L$ 张成的子空间中。

总结:三者的关系

  1. Variance Explained 告诉你这个模型值不值得用(解释能力够不够)。
  2. 如果够用,Varimax 帮你调整坐标轴,让你能看懂每个因子代表什么物理意义(比如 Factor 1 = “语言能力”)。
  3. 一旦确定了意义,Scores (Bartlett Method) 让你能计算每个具体的样本在这个因子上的得分(比如 “Alex 的语言能力得分是 1.5”),从而用于后续的回归分析或聚类分析。

关于为什么需要PVE

关于$v_i$是什么:

$v_i$(或者写作向量形式 $\mathbf{v}_i$)指的是 第 $i$ 个变量在公共因子空间中的向量表示

在数学定义上,它对应的是 载荷矩阵 (Loading Matrix) $L$ 的第 $i$ 行

我们可以这样拆解它的几何和统计意义:

1. 数学定义

假设你有 $r$ 个公共因子,对于第 $i$ 个变量(Variable $i$),它的向量 $\mathbf{v}_i$ 由它在各个因子上的载荷组成:

$$ \mathbf{v}_i = \begin{bmatrix} \ell_{i1} \\ \ell_{i2} \\ \vdots \\ \ell_{ir} \end{bmatrix} \in \mathbb{R}^r $$

(注:视作列向量或行向量皆可,代表坐标)

2. 几何意义

  • 坐标 (Coordinates):$\mathbf{v}_i$ 描述了变量 $i$ 在 $r$ 维因子空间中的位置。
  • 长度 (Length):这个向量的模长(Length/Norm)平方,正是我们在 Slide 2 讨论的 Communality ($h_i$)。 $$||\mathbf{v}_i||^2 = \ell_{i1}^2 + \dots + \ell_{ir}^2 = h_i$$
  • 方向 (Direction):代表了该变量主要与哪个因子相关。

为什么要归一化?

简单来说,把长度变为 1(即 Kaiser Normalization)是为了实现 “变量民主” (Democracy among variables)

如果没有这一步,旋转的结果会被那些“长向量”完全主导,而忽略“短向量”。


1. 几何角度:只在乎“方向”,不在乎“长短”

在因子分析的几何空间里:

  • 向量的方向 (Angle):代表了变量的结构(它跟哪个因子更亲近)。
  • 向量的长度 (Magnitude):代表了变量的 Communality ($h_i$)(它被解释了多少)。

Varimax 的目标是寻找“简单结构”(Simple Structure)。所谓的简单结构,是指让坐标轴(因子)尽可能穿过变量簇的中心。

  • 如果不归一化: 想象你在 2D 平面上有一堆向量。

    • 变量 A 很重要($h_A = 0.9$),向量很长。
    • 变量 B 充满噪声但有一点结构($h_B = 0.2$),向量很短。 当你旋转坐标轴去“拟合”这些点时,为了最大化方差(即 $V$ 函数),算法会拼命去迎合“长向量 A”,因为让 A 的投影极大化能带来巨大的收益。结果坐标轴会紧贴着 A,而完全不管 B 的死活。
  • 归一化之后 (Length = 1): 我们将所有变量除以 $\sqrt{h_i}$。

    $$\mathbf{v}_i^* = \frac{\mathbf{v}_i}{||\mathbf{v}_i||}$$

    这就把所有变量都投影到了一个 单位超球面 (Unit Hypersphere) 上。 现在,无论 A 还是 B,它们在优化函数眼里的“权重”是一样的。算法在旋转坐标轴时,会平等地寻找所有变量“聚类”最密集的方向,而不是被那个最长的向量牵着鼻子走。

2. 优化角度:消除方差带来的 Bias

回顾 Varimax 的目标函数 $V$:

$$V \propto \sum (\text{Variance of squared loadings})$$

方差计算涉及平方项。在统计优化中,数值大的项对梯度的影响是二次方级的。

  • Scenario A (No Normalization): 假设变量 $X_1$ 的 $h_1 = 0.8$,变量 $X_2$ 的 $h_2 = 0.2$。 在计算 $V$ 时,$X_1$ 的载荷平方项比 $X_2$ 大得多。$X_1$ 实际上在决定旋转角度时拥有了 4 倍甚至更多的“投票权”。 这会导致旋转后的因子结构偏向于解释那些本来就解释得很好的变量,而无法揭示那些较弱变量的潜在结构。

  • Scenario B (With Normalization): 通过除以 $\tilde{h}_i$,也就是让 $\sum_{j} PVE_{ij} = 1$。 我们要最大化的是 $PVE$ 的方差。 这意味着我们只关心:“在变量自身拥有的那部分公共方差里,因子是如何分配的?” 我们不再关心变量原本有多少公共方差。

3. 完整的操作流程 (The Pipeline)

为了不破坏数据的真实性,Kaiser Normalization 采用了“借用 -> 归还”的策略:

  1. 归一化 (Normalize):除以 $\sqrt{h_i}$,把所有向量拉伸/压缩到单位圆上。
  2. 旋转 (Rotate):在这个公平的单位圆上寻找最佳角度 $Q$,计算 $V$ 并最大化它。
  3. 去归一化 (Denormalize):找到最佳 $Q$ 得到 $\tilde{L}_{normalized}$ 后,必须再乘回 $\sqrt{h_i}$。
$$\tilde{\ell}_{ij}^{final} = \tilde{\ell}_{ij}^{normalized} \times \sqrt{h_i}$$

这样,最终得到的载荷矩阵既保持了原始数据的方差结构(长向量还是长向量),又拥有了通过公平竞争得到的最佳旋转角度(简单结构)。

总结

让长度为 1,是为了在寻找最佳视角(旋转)时,消除变量“重要程度”的干扰,纯粹根据变量的“分布模式”来决定角度。


PSD通过Principal Minors的判定为什么比PD更加严格?

这是一个非常深刻且直观的问题。你的直觉是正确的:从集合的角度看,半正定 (PSD) 的条件确实比正定 (PD) 更“松”(因为它允许等号,$\ge 0$ vs $> 0$)。

但是,从“主子式判定法”的算法角度看,PSD 的判定规则确实比 PD 要繁琐得多

这看似矛盾,实则是因为 “0” 的出现破坏了信息的传递性

以下是纯粹理性的数学解析:

1. 核心定义回顾

首先区分两种子式:

  • 顺序主子式 (Leading Principal Minors, LPM): 从左上角开始,取前 $k$ 行前 $k$ 列构成的子式。只有 $n$ 个。
  • 主子式 (Principal Minors, PM): 选取任意相同的行号和列号构成的子式(不仅仅是左上角)。共有 $2^n - 1$ 个。

2. 为什么正定 (PD) 可以“偷懒”?

Sylvester 定理 (PD 版本): 一个对称矩阵是 PD,当且仅当其所有顺序主子式 (Leading Principal Minors) 都大于 0。

原理: 如果前 $k$ 阶顺序主子式大于 0,意味着在左上角的局部空间内,曲面是“向上弯曲”的,且没有平坦的方向(非零)。这种严格的正性 ($>0$) 保证了当你扩展维度到 $k+1$ 时,之前的性质能够“传递”下去。你不需要检查其他角落,因为左上角的严格正定性像骨架一样支撑起了整个矩阵的性质。

3. 为什么半正定 (PSD) 不能“偷懒”?

反例证明(核心解释): 一旦允许子式等于 0,信息的传递链条就断了。顺序主子式非负 ($\ge 0$) 并不足以推出矩阵是 PSD。

请看这个 $2 \times 2$ 的反例矩阵 $A$:

$$ A = \begin{pmatrix} 0 & 0 \\ 0 & -1 \end{pmatrix} $$

测试顺序主子式 (LPM):

  1. 1阶 LPM (左上角): $0 \ge 0$ (通过)
  2. 2阶 LPM (行列式): $0 \times (-1) - 0 \times 0 = 0 \ge 0$ (通过)

如果你只检查 LPM,你会误判它是 PSD。

测试实际性质:

  • 特征值: $\lambda_1 = 0, \lambda_2 = -1$。因为存在负特征值,它不是 PSD。
  • 二次型: 取 $x = (0, 1)^\top$,则 $x^\top A x = -1 < 0$。

为什么 LPM 失效了? 当左上角的元素(或子式)为 0 时,意味着在这个方向上矩阵是“平”的。一旦这一块是平的,左上角就失去了对整个矩阵的控制权。矩阵的性质完全取决于剩下的部分(右下角)。如果剩下的部分向下弯曲(如 $-1$),整体就会变得不定。

因此,对于 PSD,你不能只看左上角,必须检查所有可能的角落(所有主子式)。

在上面的例子中,如果我们检查所有主子式

  1. 子式 $\{1\}$: $A_{11} = 0$ ($\ge 0$)
  2. 子式 $\{1,2\}$: $\det(A) = 0$ ($\ge 0$)
  3. 子式 $\{2\}$ (右下角): $A_{22} = -1$ ($< 0$, 失败!)

正是通过检查非顺序的主子式,我们才能揪出隐藏在右下角的负定性。

4. 总结

  • 正定 (PD): 严格大于 0 的能量流贯穿始终,左上角的性质足以代表整体。所以只需检查 $n$ 个顺序主子式
  • 半正定 (PSD): 0 的存在引入了“平坦区域”,切断了左上角对整体的控制。如果你只看左上角,你看不到被 0 掩盖的右下角的负值。所以必须检查所有 $2^n - 1$ 个主子式

这就是为什么一个更宽松的集合定义(允许 0),却导致了一个更昂贵的判定算法。在实际计算中(如编程实现),我们通常不使用主子式法来判定 PSD,而是直接计算特征值是否全非负,这在计算上要高效得多。


在Midterm Q4的语境下:

问题:除了第一典型系数外,还有别的吗?假如我不知道X和Y的结构,我要怎么计算?也就是说那个SVD的步骤是什么?

以下是关于典型相关系数数量的判定规则,以及在一般情况(未知结构)下基于 SVD 求解 CCA 的完整数学推导和计算步骤。

1. 除了第一典型相关系数,还有别的吗?

结论: 在题目 4 的特定情况下,没有。只有第一典型相关系数。

判定规则: 典型相关系数 (Canonical Correlations) 的数量 $k$ 由两个数据矩阵的秩 (Rank) 决定,具体为两个矩阵秩的最小值:

$$ k = \min(\text{rank}(X), \text{rank}(Y)) $$

通常情况下,如果样本量 $n$ 足够大,秩等于特征数量(列数),即 $k = \min(p, q)$。

针对题目 4 的分析:

  • $X \in \mathbb{R}^{n \times 2}$,秩为 2(假设 $f_1, f_2$ 线性无关)。
  • $Y \in \mathbb{R}^{n \times 1}$,秩为 1。
  • 因此,典型相关系数的数量为 $\min(2, 1) = 1$。
  • 如果你有一个 $Y$ 包含 2 列或更多列,且与 $X$ 线性相关,那么就会存在第二、第三典型相关系数 $\rho_2, \rho_3 \dots$,且满足 $1 \ge \rho_1 \ge \rho_2 \ge \dots > 0$。

2. 一般情况下的计算步骤 (基于 SVD)

假如你不知道 $X$ 和 $Y$ 的内部结构,不能直接用肉眼观察出包含关系,你需要执行以下标准算法流程。

核心思想

CCA 的目标是求解以下优化问题:

$$ \max_{u, v} u^\top S_{XY} v \quad \text{s.t.} \quad u^\top S_{XX} u = 1, \quad v^\top S_{YY} v = 1 $$

为了求解这个问题,我们利用 SVD (奇异值分解) 来处理去相关后的协方差矩阵。

详细计算步骤

步骤 1:计算样本协方差矩阵 首先计算所有必要的协方差块:

  • $S_{XX} \in \mathbb{R}^{p \times p}$
  • $S_{YY} \in \mathbb{R}^{q \times q}$
  • $S_{XY} \in \mathbb{R}^{p \times q}$

步骤 2:对数据进行“白化” (Whitening) / 标准化 为了消除 $X$ 和 $Y$ 内部特征相关性的影响(即处理约束条件 $u^\top S_{XX} u = 1$),我们需要计算协方差矩阵的逆平方根:

  • $S_{XX}^{-1/2}$
  • $S_{YY}^{-1/2}$

注:在实际计算中,这通常通过对 $S_{XX}$ 进行特征值分解 $V \Lambda V^\top$ 来实现,则 $S_{XX}^{-1/2} = V \Lambda^{-1/2} V^\top$。

步骤 3:构建相关性矩阵 (The Coherence Matrix) 构建一个核心矩阵 $K$(有时称为 $T$),该矩阵包含了标准化后的互协方差信息:

$$ K = S_{XX}^{-1/2} S_{XY} S_{YY}^{-1/2} $$

矩阵 $K$ 的维度是 $p \times q$。

步骤 4:执行 SVD (关键步骤) 对矩阵 $K$ 进行奇异值分解:

$$ K = U \Gamma V^\top $$

其中:

  • $U \in \mathbb{R}^{p \times p}$ 是正交矩阵(左奇异向量)。
  • $V \in \mathbb{R}^{q \times q}$ 是正交矩阵(右奇异向量)。
  • $\Gamma$ 是对角矩阵,其对角线元素 $\gamma_1, \gamma_2, \dots$ 即为奇异值

步骤 5:提取结果

  1. 典型相关系数 (Canonical Correlations): SVD 得到的奇异值即为我们要找的相关系数。

    $$\rho_i = \gamma_i$$

    (这就是为什么第一奇异值对应第一典型相关系数)。

  2. 典型方向 (Canonical Directions): 原始的 $u$ 和 $v$ 可以通过将奇异向量逆变换回原始空间得到:

    • $X$ 的典型方向矩阵 $A = S_{XX}^{-1/2} U$。第 $i$ 列 $a_i$ 即为第 $i$ 个典型方向 $u_i$。
    • $Y$ 的典型方向矩阵 $B = S_{YY}^{-1/2} V$。第 $i$ 列 $b_i$ 即为第 $i$ 个典型方向 $v_i$。

3. 数学原理:为什么是这个 SVD?

为了理解为什么是对 $S_{XX}^{-1/2} S_{XY} S_{YY}^{-1/2}$ 做 SVD,我们可以进行变量代换。

令变换后的向量为:

$$\tilde{u} = S_{XX}^{1/2} u, \quad \tilde{v} = S_{YY}^{1/2} v$$

代入原始优化问题:

  1. 目标函数: $$u^\top S_{XY} v = (S_{XX}^{-1/2} \tilde{u})^\top S_{XY} (S_{YY}^{-1/2} \tilde{v}) = \tilde{u}^\top (S_{XX}^{-1/2} S_{XY} S_{YY}^{-1/2}) \tilde{v} = \tilde{u}^\top K \tilde{v}$$
  2. 约束条件: $$u^\top S_{XX} u = \tilde{u}^\top S_{XX}^{-1/2} S_{XX} S_{XX}^{-1/2} \tilde{u} = \tilde{u}^\top I \tilde{u} = \|\tilde{u}\|^2 = 1$$ 同理 $\|\tilde{v}\|^2 = 1$。

转换后的问题:

$$\max_{\tilde{u}, \tilde{v}} \tilde{u}^\top K \tilde{v} \quad \text{s.t.} \quad \|\tilde{u}\| = 1, \|\tilde{v}\| = 1$$

这正是 SVD 的几何定义:寻找单位向量 $\tilde{u}$ 和 $\tilde{v}$ 使得通过矩阵 $K$ 的双线性形式最大化。该最大值就是 $K$ 的最大奇异值。

Midterm 2 Q1 具体分析

(a)

题目给定模型 $y = X\beta + \epsilon$,其中 $\epsilon \sim N_n(0, \sigma^2 I_n)$。 这意味着 $y$ 服从多元正态分布:

$$y \sim N_n(X\beta, \sigma^2 I_n)$$

目标:

  1. 写出 Log-likelihood function $\ell(y; \beta)$。
  2. 解释为什么求 MLE 等价于求解 最小二乘问题 (Least Squares Problem)

第一步:写出概率密度函数 (PDF)

对于 $n$ 维向量 $y$,其概率密度函数为:

$$f(y; \beta) = \frac{1}{(2\pi)^{n/2} |\Sigma|^{1/2}} \exp\left( -\frac{1}{2} (y - \mu)^\top \Sigma^{-1} (y - \mu) \right)$$

在这里,$\mu = X\beta$,$\Sigma = \sigma^2 I_n$。

第二步:取对数 (Log-likelihood)

$\ell(\beta) = \log f(y; \beta)$。 代入 $\Sigma = \sigma^2 I_n$ (注意行列式 $|\sigma^2 I_n| = (\sigma^2)^n$) 和 $\Sigma^{-1} = \frac{1}{\sigma^2}I_n$:

$$\ell(\beta) = -\frac{n}{2}\log(2\pi) - \frac{1}{2}\log((\sigma^2)^n) - \frac{1}{2\sigma^2}(y - X\beta)^\top (y - X\beta)$$

化简常数项和平方项(注意 $(y - X\beta)^\top (y - X\beta)$ 就是欧几里得范数的平方 $\|y - X\beta\|^2$):

$$\ell(\beta) = -\frac{n}{2}\log(2\pi) - \frac{n}{2}\log(\sigma^2) - \frac{1}{2\sigma^2}\|y - X\beta\|^2$$

3. 为什么等价于 Least Squares?

  1. 单调性 (Monotonicity): 对数函数是单调递增的,所以最大化 $f(y;\beta)$ 等价于最大化 $\ell(\beta)$。
  2. 常数项无关 (Ignore Constants): $\ell(\beta)$ 中前两项($-\frac{n}{2}\log(2\pi)$ 和 $-\frac{n}{2}\log(\sigma^2)$)对于 $\beta$ 来说是常数,求导或优化时可以忽略。
  3. 负号反转 (Sign Flip): 剩下的项是 $-\frac{1}{2\sigma^2}\|y - X\beta\|^2$。由于前面有负号,最大化这个负数项等价于最小化其绝对值部分(即平方误差项 $\|y - X\beta\|^2$)。$\sigma^2$ 是正数,不改变极值点位置。

结论:

$$\hat{\beta}_{MLE} = \arg\max_{\beta} \ell(\beta) = \arg\min_{\beta} \|y - X\beta\|^2 = \hat{\beta}_{OLS}$$

(b)

这道题考查的是 多元正态分布的线性变换性质 (Linear Transformation of Multivariate Normal Distribution)。简单来说,你在求估计量 $\hat{\beta}$ 的 抽样分布 (Sampling Distribution)

对于一个 $n$ 维多元正态随机向量 $y \sim N_n(\mu, \Sigma)$,如果你对其进行线性变换 $z = Ay$(其中 $A$ 是常数矩阵),那么变换后的变量 $z$ 依然服从多元正态分布,且参数为:

  • 均值 (Mean): $E[z] = A\mu$
  • 协方差 (Covariance): $Var(z) = A\Sigma A^\top$

逻辑

  • 变换关系: $\hat{\beta} = X^\top y$。在这里,$A = X^\top$。
  • 已知条件: $y \sim N_n(X\beta, \sigma^2 I_n)$。

第一步:计算均值 (Expectation)

$$ \begin{aligned} E[\hat{\beta}] &= E[X^\top y] \\ &= X^\top E[y] \\ &= X^\top (X\beta) \\ &= (X^\top X) \beta \end{aligned} $$

根据题目 Part (a) 的设定,$X$ 是 列正交 (column-orthogonal) 的,即 $X^\top X = I_p$。 所以:

$$E[\hat{\beta}] = I_p \beta = \beta$$

统计意义: 这说明 $\hat{\beta}$ 是 $\beta$ 的 无偏估计量 (Unbiased Estimator)

第二步:计算方差 (Variance)

$$ \begin{aligned} Var(\hat{\beta}) &= Var(X^\top y) \\ &= X^\top Var(y) (X^\top)^\top \\ &= X^\top (\sigma^2 I_n) X \\ &= \sigma^2 (X^\top X) \end{aligned} $$

同样利用 $X^\top X = I_p$:

$$Var(\hat{\beta}) = \sigma^2 I_p$$

3. 总结

最终结果:

$$\hat{\beta} \sim N_p(\beta, \sigma^2 I_p)$$

通常在普通最小二乘法 (OLS) 中,如果 $X$ 不是正交的,$\hat{\beta}_{OLS} = (X^\top X)^{-1}X^\top y$,其方差通常是 $\sigma^2 (X^\top X)^{-1}$。这道题因为设计矩阵 $X$ 具有特殊的正交性质,使得计算大大简化,且各个 $\beta_j$ 之间是不相关的(协方差矩阵是对角阵)。

(c)

题目要求: 检验 $H_0: \beta = 0$ vs $H_1: \beta \neq 0$,构造检验统计量并指出其在 $H_0$ 下的分布。

解答分析:

$$\chi^2 = (\hat{\beta} - 0)^\top (\sigma^2 I_p)^{-1} (\hat{\beta} - 0) = \frac{\|\hat{\beta}\|^2}{\sigma^2} \sim \chi^2(p)$$

这一步的思路运用了多元正态分布的一个重要性质:二次型 (Quadratic Form)

  1. 标准化视角: 由 (b) 问可知,在 $H_0$ 下,$\hat{\beta} \sim N_p(0, \sigma^2 I_p)$。 这意味着 $\hat{\beta}$ 的每一个分量 $\hat{\beta}_i$ 都是独立且同分布的:$\hat{\beta}_i \sim N(0, \sigma^2)$。 将其标准化:$\frac{\hat{\beta}_i}{\sigma} \sim N(0, 1)$。

  2. 构造 $\chi^2$: 检验统计量本质上就是这些标准化分量的平方和:

    $$\frac{\|\hat{\beta}\|^2}{\sigma^2} = \sum_{i=1}^p \left( \frac{\hat{\beta}_i}{\sigma} \right)^2$$

    根据定义,$p$ 个独立标准正态随机变量的平方和服从自由度为 $p$ 的卡方分布 ($\chi^2_p$)。


(d)

题目要求: 如果 p-value < 0.05,我们要拒绝 $H_0$,这对 $\beta$ 的分量意味着什么?

解答分析:

$$\text{Reject } H_0 \iff \text{at least one } \beta_i \neq 0$$

原因

  1. 全零假设 (The Null): $H_0: \beta = \vec{0}$ 意味着向量中所有元素同时为 0 ($\beta_1 = 0 \text{ AND } \beta_2 = 0 \dots$)。
  2. 逻辑否定 (Logical Negation): 拒绝 “所有都是 0”,并不代表 “所有都不是 0”,而是代表 “并非所有都是 0”。
  3. 结论: 只要有一个分量 $\beta_i \neq 0$,零假设就被打破了。

附加内容

这道题的一个关键设定是 $\sigma^2$ is fixed and known (方差已知)。这是你使用 $\chi^2$ 分布的前提。

如果 $\sigma^2$ 未知(现实中最常见的情况),会发生什么变化?

  1. 由于 $\sigma^2$ 未知,我们不能直接除以 $\sigma^2$,而是必须用样本方差 $\hat{\sigma}^2$ (或 MSE) 来替代。
  2. 统计量会变成: $$F = \frac{\|\hat{\beta}\|^2 / p}{\hat{\sigma}^2}$$ 即:(解释方差 / 自由度) / (残差方差 / 自由度)。
  3. 这时候分布就不再是 $\chi^2$ 了,而是 F-distribution ($F_{p, n-p}$)。

总结:

  • $\sigma^2$ Known $\to$ Chi-squared Test (你的这道题)
  • $\sigma^2$ Unknown $\to$ F-test (通常的 ANOVA 或 Regression F-test)

这几道题你处理得游刃有余,看来你的 Multivariable Statistics 基础很扎实。还有后续的题目需要帮忙看吗?


为什么方差是决定PCA舍弃维度的判断依据?

“方差越小越好”——在很多统计学情境下是完全正确的。但这取决于如何定义"好"。“方差小"是"好”,通常是在测量 (Measurement) 或估计 (Estimation) 的情境中。

  • 情景 A:测量误差 (Measurement Error)
    • 假设你正在测量一个物体的真实重量,比如 10kg。
    • 你测量了 100 次。
    • “高方差” 意味着你的测量结果忽高忽低 (9kg, 11kg, 8kg, 12kg)。这是坏的,这是噪声,因为它偏离了 10kg 的真实值。
    • “低方差” 意味着你的测量结果非常一致 (10.01kg, 10.02kg, 10.00kg)。这是好的,代表高精度 (high precision)
    • 在这个情景下:方差 = 噪声 / 不确定性。

但是,PCA 的情景完全不同

  • 情景 B:描述一个群体 (Describing a Population)
    • 假设你不是在测量 一个 物体,而是在描述 $n$ 个完全不同的物体。
    • 你的数据集是 $n=100$ 个不同的人,你要测量的特征 $p$ 是:身高、体重、年龄、血压…
    • PCA 的目标不是去"估计"一个"真实的人"。PCA 的目标是**“解释”** 这 100 个人为什么以及如何彼此不同

在这个情景下,Variance (方差) = Information (信息)

  1. 高方差 = 高信息量 (Signal)

    • 假设你发现"身高"这个特征的方差非常大(从 1.5m 到 2.0m)。
    • 不是噪声。这是一个关键信号 (key signal)
    • 它告诉你,“身高"是区分这个群体中不同个体的一个极其重要的特征。如果你想把 A 和 B 区分开,“身高"是一个非常有用的信息。
  2. 低方差 = 低信息量 (Noise / Irrelevant)

    • 假设你发现"左手小拇指指甲长度"这个特征的方差几乎为零
    • 这意味着,在这个数据集中,几乎每个人在这个特征上都是一样的(或者只有微小的、随机的抖动)。
    • 这个特征没有信息量。它无法帮助你区分 A 和 B,因为它对每个人都一样。
    • PCA 会认为这个方向是"不重要的”,或者干脆就是随机的噪声

总结:

PCA 是一种探索性 (Exploratory)描述性 (Descriptive) 的工具。

  • 它假设数据中有意义的结构 (Signal),会导致数据点在特定方向上产生巨大的、一致的差异(即高方差)。
  • 它假设无意义的 (Noise),是那些所有数据点都相似的(即低方差)的方向,或者是那些在所有方向上均匀分布的随机抖动。

因此,在 PCA 中,我们主动寻找高方差,因为我们相信方差就是信息。我们主动丢弃低方差,因为我们相信那是噪声冗余


同样是进行数据的压缩,PCA算法和无损压缩文件的算法,其区别在哪?

类比到电脑上的压缩程序 (如 .zip, .rar) ,它们和 PCA 的数据"解压” (重构) 不是一个东西。其引出了"有损"和"无损"的概念。

  1. 电脑文件压缩 (如 .zip):无损压缩 (Lossless Compression)
  • 目标: 100% 的数据完整性。
  • 原理: 它通过寻找数据中的冗余 (redundancy) 来工作。例如,如果一个文件有 “AAAAA”,它会将其存储为"5A"(这是一个简化的例子)。它本质上是"重新编码",使数据更紧凑。
  • 解压: 解压过程是压缩的完美逆转。它读取"5A"并将其无损地 (losslessly) 恢复为 “AAAAA”。
  • 结果: 解压后的文件与原始文件一模一样 (bit-for-bit identical)。

  1. PCA 数据"解压" (重构):有损压缩 (Lossy Compression)
  • 目标: 数据的近似 (Approximation)。它的目标不是完美恢复,而是在尽可能多地丢弃信息的同时,尽可能好地保留数据的核心结构
  • 原理: 它不是寻找"冗余",它是主动丢弃 (permanently discard) 信息。
    • PCA 认为低方差 ($\lambda_3, \dots, \lambda_p$) 的维度是"噪声"或"不重要的细节"。
    • 当你降维到 $r$ 维时,你就永久地丢弃了 $p-r$ 维的信息。
  • “解压” (重构): 重构 $\hat{X}$ 只是用你保留的 $r$ 维"信号" ($Z$) 和 $r$ 个"方向" ($V$) 拼凑出的最佳近似。它永远无法找回你丢弃的 $p-r$ 维信息。
  • 结果: 重构数据 $\hat{X}$ 不等于 原始数据 $X$。它们之间始终存在一个重构误差 (Reconstruction Error), $\|X - \hat{X}\|^2$。PCA 的全部意义就是确保这个误差是最小的 (minimum)

总结

电脑上的 .zip 是无损压缩,就像把一份文件放进一个更小的信封,打开信封文件毫发无损。PCA 是有损压缩,就像把一张高清照片( $p$ 维)拍成一张黑白剪影( $r$ 维)。你可以根据剪影 $\hat{X}$ 大致"重构"出照片的样子,但你永远丢失了原始的色彩和纹理细节(重构误差)。


PCA为什么在信息损失后还要重构?

降维一定伴随着信息损失(只要我们丢弃了 $\lambda_j > 0$ 的任何维度)。

我们之所以要定义和计算 $\hat{x}_i$ (重构点),主要有三个原因:

1. 为了定义 “PCA 的第二种视角” (核心)

  • “Maximum Variance” (最大方差) 视角的目标是:$\text{maximize}(v^T S v)$。
  • 这个 “Minimum Reconstruction Error” (最小重构误差) 视角的目标是: $$ \underset{V, \beta_i}{\text{minimize}} \sum_{i=1}^{n} \|x_i - \hat{x}_i\|^2 $$ (即:最小化原始点 $x_i$重构点 $\hat{x}_i$ 之间的距离平方和)
  • 我们定义 $\hat{x}_i$ 就是为了能够定义这个新的优化目标。PCA 的一个重要结论是,“最大化方差” 和 “最小化重构误差” 这两个看似不同的目标,会解出完全相同的 $V$ (主成分)。

2. 数据压缩 (Data Compression)

这是 PCA 最实际的应用之一。

  • 压缩 (Compress):
    1. 你计算并存储了均值 $a$ (p-dim vector)。
    2. 你计算并存储了 $V$ ( $p \times r$ 矩阵)。
    3. 你计算并存储了 $Z$ ( $n \times r$ 矩阵,即所有 $\beta_i$)。
    • 你现在可以丢弃原始的 $X$ ( $n \times p$ 矩阵)。当 $r \ll p$ 时,你节省了海量存储空间。
  • 解压 (Decompress):
    • 当你需要查看或使用这些数据时,你必须将其"解压"。
    • “解压"的过程就是重构 (Reconstruction): $\hat{X} = a + ZV^T$。
    • $\hat{X}$ 就是你解压后的数据。它不是 $X$ (因为是 lossy 压缩),但它是在 $r$ 维下对 $X$ 的最佳近似。
    • 例子:Eigenfaces (人脸识别) 和图像压缩。

3. 数据去噪 (Denoising)

PCA 的一个核心假设是:

  • 高方差 ($\lambda_1, \lambda_2, ...$) 维度 = 信号 (Signal)
  • 低方差 ($\lambda_{p-1}, \lambda_p, ...$) 维度 = 噪声 (Noise)

去噪流程

  1. 对含噪数据 $X$ 运行 PCA。
  2. 保留前 $r$ 个主成分 ( $V_r$ ),丢弃后面的 $p-r$ 个(假设它们是噪声)。
  3. 使用这 $r$ 个成分重构数据 $\hat{X} = a + Z_r V_r^T$。
  4. 这个重构后的 $\hat{X}$ 就是 $X$ 的"去噪"版本。

为什么说从误差和最大化方差的视角得到的v是相同的?

1. 目标:定义重建误差 (RE)

我们想用一个低维子空间来“近似”或“重建”我们的原始数据。

  • 一个重建点 $\hat{x}_i$ 由一个中心点 $a$ 和它在子空间 $V$ 上的投影 $V\beta_i$ 组成。
  • 重建误差 (RE) 就是所有原始点 $x_i$ 和它们各自重建点 $\hat{x}_i = a + V\beta_i$ 之间距离的平方和: $$RE = \sum_{i=1}^n ||x_i - a - V\beta_i||^2$$
  • 能最小化这个误差的最优中心点 $a$ 就是数据的均值 $\bar{x}$。暂时记住这个结论。
  • 代入 $a = \bar{x}$,公式变为: $$RE = \sum_{i=1}^n ||(x_i - \bar{x}) - V\beta_i||^2 = \sum_{i=1}^n ||\tilde{x}_i - V\beta_i||^2$$ 其中 $\tilde{x}_i = x_i - \bar{x}$ 是中心化后的数据。

2. 找到最优的投影系数 ($\beta_i$)

笔记的第4行解释了 $\beta_i$ 是什么。对于一个给定的数据点 $\tilde{x}_i$ 和子空间 $V$,要使 $||\tilde{x}_i - V\beta_i||^2$ 最小,$\beta_i$ 必须是 $\tilde{x}_i$ 在 $V$ 上的正交投影坐标。

  • 从最小二乘法 (OLS) 来看,$\beta_i = (V^T V)^{-1} V^T \tilde{x}_i$。
  • 在PCA中,我们要求 $V$ 的列向量(即主成分)是标准正交的 (orthonormal),这意味着 $V^T V = I$ (单位矩阵)。
  • 因此,公式简化为: $$Optimal \ \beta_i = V^T \tilde{x}_i$$

3. 推导重建误差的矩阵形式

这是笔记下半部分的核心内容。它将“所有点的误差之和”转换成了一个与协方差矩阵 $S$ 相关的单一表达式。

注意: 从这里开始,笔记中的 $x_i$ 均指代中心化后的数据 $\tilde{x}_i$。

  1. 代入 $\beta_i$: 将 $Optimal \ \beta_i = V^T x_i$ 代入 $RE$ 公式:

    $$RE = \sum_{i=1}^n ||x_i - V(V^T x_i)||^2 = \sum_{i=1}^n ||x_i - VV^T x_i||^2$$
  2. 使用投影矩阵:

    • $P = VV^T$ 是一个投影矩阵,它将任何向量投影到由 $V$ 张成的子空间上。
    • $Q = (I - VV^T)$ 则是投影到与 $V$ 正交的补空间上的投影矩阵。
    • 因此, $RE$ 可以被理解为将所有数据点投影到“误差空间”中,然后计算它们长度的平方和: $$RE = \sum_{i=1}^n ||(I - VV^T) x_i||^2$$
  3. 转为迹 (Trace) 运算: 笔记接下来使用了一系列矩阵代数的技巧:

    • 一个向量的L2范数平方 $||z||^2$ 等于 $z^T z$。
    • 因为 $(I - VV^T)$ 是对称的(即 $(I - VV^T)^T = (I - VV^T)$),我们有: $$||(I - VV^T) x_i||^2 = x_i^T (I - VV^T)^T (I - VV^T) x_i = x_i^T (I - VV^T) x_i$$
    • 对于一个标量(1x1矩阵),其值等于它自己的迹 (Trace): $$... = tr(x_i^T (I - VV^T) x_i)$$
    • 利用迹的循环不变性 ($tr(ABC) = tr(BCA)$): $$... = tr((I - VV^T) x_i x_i^T)$$
  4. 求和并引入协方差 $S$:

    • 现在把 $RE$ 的求和 $\sum_{i=1}^n$ 放回公式中: $$RE = \sum_{i=1}^n tr((I - VV^T) x_i x_i^T)$$
    • 利用迹的线性性质(和的迹 = 迹的和),将求和移入迹内部: $$RE = tr\left( \sum_{i=1}^n (I - VV^T) x_i x_i^T \right)$$
    • 将常数矩阵 $(I - VV^T)$ 提取到求和符号之外: $$RE = tr\left( (I - VV^T) \left[ \sum_{i=1}^n x_i x_i^T \right] \right)$$
    • 关键一步: 样本协方差矩阵 $S$ 定义为 $S = \frac{1}{n} \sum_{i=1}^n x_i x_i^T$ (假设 $x_i$ 已中心化)。
    • 因此, $\sum_{i=1}^n x_i x_i^T = nS$。
  5. 最终公式:

    • 将 $nS$ 代入,得到笔记中的最终结果(笔记中用 $AE$ 或 $RE$ 来表示): $$RE = tr( (I - VV^T) (nS) ) = n \cdot tr( (I - VV^T) S )$$

结论

这份笔记的推导表明,PCA的目标——最小化重建误差 $RE$——在数学上等价于求解:

$$\min_V \left[ n \cdot tr( (I - VV^T) S ) \right]$$

这与从“最大化投影方差”角度(即 $\max_V [tr(V^T S V)]$)推导出的PCA是等价的,因为 $tr((I - VV^T)S) = tr(S) - tr(VV^T S) = tr(S) - tr(V^T S V)$。由于 $n$ 和 $tr(S)$(总方差)都是常数,最小化重建误差就等同于最大化投影方差。


关于协方差矩阵,总方差,特征值与Trace。

问题:协方差矩阵一定是一个对称PSD的方阵,那么其对角线上的东西就是它的eigenvalue吗?还是必须先做谱分解,但可以在不做谱分解的情况下知道其对角线内容之和就是eigenvalue之和?

1. 协方差矩阵对角线上的东西就是它的 eigenvalue 吗?

回答:不是。 这是一个非常常见的误区。

  • 对角线元素 ($S_{jj}$) = 各个原始特征的方差 (Variance)
  • 特征值 (Eigenvalues) ($\lambda_i$) = 经过 PCA 变换后,各个主成分 (Principal Components) 的方差

只有在一个非常、非常特殊的情况下,它们才会相等: 那就是当协方差矩阵 $S$ 本身已经是一个对角矩阵时。 $S$ 是对角矩阵意味着什么?意味着所有 $S_{ij} = \text{Cov}(f_i, f_j) = 0$ (当 $i \neq j$)。 这在物理上意味着你所有的原始特征 $f_1, \dots, f_p$ 已经完全不相关 (uncorrelated)。 在这种情况下,你不需要做 PCA,原始特征 $f_i$ 本身就是主成分。此时, $S_{jj} = \lambda_j$。

但在99.9%的现实情况中, $S$ 不是对角矩阵(特征之间存在协方差),因此对角线元素(方差) $\neq$ 特征值。


2. 必须先做谱分解吗?还是可以在不做谱分解的情况下知道其对角线内容之和就是 eigenvalue 之和?

回答:你说的完全正确。

  • 你不需要做谱分解 (spectral decomposition) 就能知道这个事实。
  • 这个事实是线性代数中关于**“迹 (Trace)”** 的一个基本定理。

这个证明链条是纯粹的数学推导,不依赖于你是否去计算:

  1. 定义1: 矩阵的迹 $tr(S)$定义 (defined) 为其对角线元素之和。

    • $tr(S) = \sum S_{jj}$
    • 在我们这道题里,就是总方差: $tr(S) = \sum S_{f_j}^2$
  2. 定义2: $\Lambda$ 是 $S$ 的特征值组成的对角矩阵。

    • $tr(\Lambda)$ 是 $\Lambda$ 的对角线元素之和,也就是特征值之和: $tr(\Lambda) = \sum \lambda_i$
  3. 核心定理 (迹的循环不变性):

    • 线性代数证明了 $tr(S) = tr(U \Lambda U^T)$。
    • 利用 $tr(ABC) = tr(BCA)$,我们得到 $tr(U \Lambda U^T) = tr(U^T U \Lambda)$。
    • 因为 $U^T U = I$,所以 $tr(I \Lambda) = tr(\Lambda)$。
  4. 结论:

    • $tr(S) = tr(\Lambda)$
    • $\sum S_{jj} = \sum \lambda_i$
    • (总方差) = (特征值之和)

总结一下: 你可以直接把协方差矩阵 $S$ 的对角线元素加起来,得到一个数 $T_1 = \sum S_{f_j}^2$。 你不需要去做谱分解算出 $\lambda_1, \dots, \lambda_p$,然后把它们加起来得到 $T_2 = \sum \lambda_i$。

线性代数保证 (guarantees) $T_1$ 一定等于 $T_2$。

这就是为什么“总方差”这个概念如此强大:它在 PCA 变换(即坐标系旋转)前后是守恒的 (conserved)

关于协方差矩阵的迹就是总方差的证明(N6Q1).

证明: $S_{f_1}^2 + \dots + S_{f_p}^2 = d_1 + \dots + d_p$

这个证明依赖于一个中间量:协方差矩阵 $S$ 的迹, $tr(S)$。

根据协方差矩阵的定义,矩阵 $S$ 的对角线元素 $S_{jj}$ 正是第 $j$ 个特征 $f_j$ 的方差。

$$S = \begin{pmatrix} \text{Var}(f_1) & \text{Cov}(f_1, f_2) & \dots \\ \text{Cov}(f_2, f_1) & \text{Var}(f_2) & \dots \\ \vdots & \vdots & \ddots \\ \dots & \dots & \dots & \text{Var}(f_p) \end{pmatrix}$$

使用题目的符号: $S_{jj} = \text{Var}(f_j) = S_{f_j}^2$

矩阵的迹 (Trace) 被定义为其对角线元素之和。

$$tr(S) = \sum_{j=1}^p S_{jj} = \sum_{j=1}^p S_{f_j}^2$$

这证明了总方差(题目中 $\sum S_{f_j}^2$ 的定义)等于协方差矩阵的迹


证明第 2 部分:特征值之和 = $tr(S)$

  • 1. 谱分解 (Spectral Decomposition): $S$ 是一个实对称矩阵。根据谱定理, $S$ 可以被分解为: $$S = U \Lambda U^T$$
    • $U$ 是一个 $p \times p$ 的正交矩阵($U^T U = I$),它的列是 $S$ 的特征向量。
    • $\Lambda$ (你笔记中手写的 $n$) 是一个 $p \times p$ 的对角矩阵,其对角线元素是 $S$ 的特征值 $d_1, \dots, d_p$。(注:题目用 $d_i$,你笔记用 $\lambda_i$,两者等价)。
  • 2. 迹的循环不变性 (Cyclic Property of Trace): 这是线性代数的一个基本性质: $tr(ABC) = tr(CAB) = tr(BCA)$。 我们用这个性质来计算 $tr(S)$: $$tr(S) = tr(U \Lambda U^T)$$ 我们把 $U$ 放到后面: $$tr(S) = tr((U^T U) \Lambda)$$
  • 3. 利用正交性: 因为 $U$ 是正交的, $U^T U = I$ (单位矩阵)。 $$tr(S) = tr(I \Lambda) = tr(\Lambda)$$
  • 4. 什么是 $tr(\Lambda)$? $\Lambda$ 是一个对角矩阵,其对角线元素就是特征值 $d_1, \dots, d_p$。 $$tr(\Lambda) = \sum_{i=1}^p d_i$$
  • 5. 结论 2: 我们证明了特征值之和等于协方差矩阵的迹。 $$tr(S) = \sum_{i=1}^p d_i$$

最终结论

我们已经证明了:

  1. 总方差 $\sum_{j=1}^p S_{f_j}^2 = tr(S)$
  2. 特征值之和 $\sum_{i=1}^p d_i = tr(S)$

通过 $tr(S)$ 这个桥梁,我们得出:

$$S_{f_1}^2 + \dots + S_{f_p}^2 = d_1 + \dots + d_p$$

证明完毕。


Note 6 Question 2 解析

Q(1): PC 方向 (PC directions)

笔记的答案: $v_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}$ 和 $v_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix}$。

解析: 题目的提示是“画一张图”。我们把 $X$ 的 4 个行向量(即4个数据点)画在二维平面上:

  • $x_1 = (-3, 0)$
  • $x_2 = (0, 1)$
  • $x_3 = (3, 0)$
  • $x_4 = (0, -1)$

PCA 的目标是找到数据方差(Variance)最大的方向。

  1. 目测 $PC_1$: 观察上图,数据在 $x_1$ 轴(水平方向)上的**“伸展”程度**(从 -3 到 3)远大于在 $x_2$ 轴(垂直方向)上的“伸展”程度(从 -1 到 1)。因此,方差最大的方向($PC_1$)就是 $x_1$ 轴。 $x_1$ 轴的方向向量是 $v_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}$。
  2. 目测 $PC_2$: $PC_2$ 必须与 $PC_1$ 正交 (orthogonal),并且是方差次大的方向。与 $x_1$ 轴正交的就是 $x_2$ 轴。因此 $PC_2$ 的方向是 $v_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix}$。

Q(2): PC 解释的方差 (Variances Explained, VEs)

笔记的答案: $\lambda_1 = 4.5, \lambda_2 = 0.5$。

解析: “PC 解释的方差”在数学上就是协方差矩阵 $S$ 的特征值 (Eigenvalues, $\lambda$)

  1. 计算协方差矩阵 $S$:

    • 首先,注意到数据 $X$ 已经是中心化的 (centered)(两列的均值都为 0)。
    • $S$ 可以通过 $S = \frac{1}{n-1} X^T X$ (样本协方差)或 $S = \frac{1}{n} X^T X$ (总体协方差)来估计。你的笔记使用了 $n=4$(即 $\frac{1}{4}$),这在机器学习中很常见。我们跟随笔记的计算方式: $$X^T X = \begin{pmatrix} -3 & 0 & 3 & 0 \\ 0 & 1 & 0 & -1 \end{pmatrix} \begin{pmatrix} -3 & 0 \\ 0 & 1 \\ 3 & 0 \\ 0 & -1 \end{pmatrix} = \begin{pmatrix} 18 & 0 \\ 0 & 2 \end{pmatrix}$$ $$S = \frac{1}{4} X^T X = \frac{1}{4} \begin{pmatrix} 18 & 0 \\ 0 & 2 \end{pmatrix} = \begin{pmatrix} 4.5 & 0 \\ 0 & 0.5 \end{pmatrix}$$
  2. 找到特征值:

    • 因为 $S$ 已经是一个对角矩阵,它的特征值就是它的对角元素。
    • $VE_1 = \lambda_1 = 4.5$ (这是 $PC_1$ 解释的方差)
    • $VE_2 = \lambda_2 = 0.5$ (这是 $PC_2$ 解释的方差)
    • (这也验证了我们对 $PC$ 方向的判断:$S$ 的特征向量确实是 $\begin{pmatrix} 1 \\ 0 \end{pmatrix}$ 和 $\begin{pmatrix} 0 \\ 1 \end{pmatrix}$。)

Q(3): PC 解释的方差比例 (Proportions of Variances Explained, PVEs)

笔记的答案: $PVE_1 = 90\%, PVE_2 = 10\%$。

解析: $PVE$ 是每个 PC 的方差占总方差的比例。

  1. 总方差 (Total Variance): $tr(S) = \lambda_1 + \lambda_2 = 4.5 + 0.5 = 5.0$
  2. 计算 PVE:
    • $PVE_1 = \frac{\lambda_1}{\text{Total}} = \frac{4.5}{5.0} = 0.9$ (即 90%)
    • $PVE_2 = \frac{\lambda_2}{\text{Total}} = \frac{0.5}{5.0} = 0.1$ (即 10%)

第 2 部分:解答 Q(4), Q(5)(尺度变换后的数据)

这是问题的核心。我们改变了特征的单位 (Units)

  • $f_1$ (第1列) 从 米 (meters) 变为 厘米 (centimeters) $\implies f_1 \text{ 乘以 } 100$
  • $f_2$ (第2列) 保持 厘米 (centimeters) $\implies f_2 \text{ 不变}$

新的数据矩阵 $\tilde{X}$ 变为:

$$\tilde{X} = \begin{pmatrix} -3 \times 100 & 0 \\ 0 \times 100 & 1 \\ 3 \times 100 & 0 \\ 0 \times 100 & -1 \end{pmatrix} = \begin{pmatrix} -300 & 0 \\ 0 & 1 \\ 300 & 0 \\ 0 & -1 \end{pmatrix}$$

Q(4): PC 方向发生了什么变化?

笔记的答案: $\tilde{v}_1 = v_1, \tilde{v}_2 = v_2$ (方向不变)。

解析: 我们再次画图,数据点现在是:$(-300, 0), (0, 1), (300, 0), (0, -1)$。

  • 数据在 $x_1$ 轴上的“伸展”程度(从 -300 到 300)现在极端地大于 $x_2$ 轴(从 -1 到 1)。
  • 但数据仍然是非相关的(协方差矩阵 $\tilde{S}$ 仍将是对角矩阵)。
  • 最大方差方向仍然是 $x_1$ 轴,次大方差方向仍然是 $x_2$ 轴。
  • 因此,PC 的方向没有改变

Q(5): VEs 和 PVEs 发生了什么变化?

笔记的答案: $\tilde{\lambda}_1 = 45000, \tilde{\lambda}_2 = 0.5$。 $PVE_1 \approx 100\%, PVE_2 \approx 0\%$。

解析: 我们用新矩阵 $\tilde{X}$ 重新计算:

  1. 计算新协方差矩阵 $\tilde{S}$:

    $$\tilde{X}^T \tilde{X} = \begin{pmatrix} -300 & 0 & 300 & 0 \\ 0 & 1 & 0 & -1 \end{pmatrix} \begin{pmatrix} -300 & 0 \\ 0 & 1 \\ 300 & 0 \\ 0 & -1 \end{pmatrix} = \begin{pmatrix} 180000 & 0 \\ 0 & 2 \end{pmatrix}$$

    $$\tilde{S} = \frac{1}{4} \tilde{X}^T \tilde{X} = \begin{pmatrix} 45000 & 0 \\ 0 & 0.5 \end{pmatrix}$$
  2. 计算新 VEs (特征值):

    • $VE_1 = \tilde{\lambda}_1 = 45000$ (原为 4.5)
    • $VE_2 = \tilde{\lambda}_2 = 0.5$ (不变)
    • 注意:$\tilde{\lambda}_1 = 100^2 \times \lambda_1 = 10000 \times 4.5 = 45000$。方差随尺度的平方而变化。
  3. 计算新 PVEs:

    • 新总方差: $\tilde{\lambda}_1 + \tilde{\lambda}_2 = 45000 + 0.5 = 45000.5$
    • $PVE_1 = \frac{45000}{45000.5} \approx 0.99999... \approx 100\%$
    • $PVE_2 = \frac{0.5}{45000.5} \approx 0.00001... \approx 0\%$

结论与启示

PCA 不是尺度不变的 (PCA is NOT scale-invariant)。

  • 发生了什么? 仅仅因为我们把 $f_1$ 的单位从“米”改成“厘米”,这个特征的方差就暴增了 $100^2 = 10000$ 倍。
  • 后果是什么? 这导致 $f_1$ 几乎解释了数据中所有的方差 (从 90% $\to$ 100%),而 $f_2$ 的贡献被完全“淹没” (从 10% $\to$ 0%)。
  • 启示: 在现实中应用 PCA 之前,如果你的特征具有不同的单位(如米、千克、秒),你必须首先对数据进行标准化 (Standardize)(例如,将所有特征缩放为均值为0、方差为1)。否则,单位“大”的特征(或数值范围大的特征)将不合理地主导 PCA 的结果。