From Principal Component Regression (PCR) to Partial Least Squares (PLS)

Hyacehila

本文核心观点和部分内容参考自谢益辉的文章:主成分回归与偏最小二乘回归

从主成分回归 (PCR) 到偏最小二乘 (PLS)

在多元线性回归(Multiple Linear Regression, MLR)中,最小二乘法(OLS)是常用的参数估计方法。然而,当数据集中存在多重共线性(Multicollinearity),或者自变量的数量多于样本量(p>np > n)时,OLS 估计量会变得不稳定,甚至无法计算(因为设计矩阵 XTXX^TX 不可逆或接近奇异)。

为了解决这个问题,降维(Dimensionality Reduction)成为一条常见思路。**主成分回归(PCR)偏最小二乘回归(PLSR)**正是这类方法的两个代表。它们都通过构建新的“潜在变量”(Latent Variables)来代替原始变量进行回归,但两者构建潜在变量的逻辑不同,因此使用时应当谨慎。

1. 主成分回归 (Principal Component Regression, PCR)

1.1 数学原理

PCR 的思路可以概括为:先做 PCA(主成分分析),再做 OLS

假设我们有中心化后的自变量矩阵 XRn×pX \in \mathbb{R}^{n \times p} 和因变量 YRn×1Y \in \mathbb{R}^{n \times 1}

  1. 谱分解:对 XX 进行奇异值分解(SVD)或对其协方差矩阵 XTXX^TX 进行特征分解。

    X=UΣVT X = U \Sigma V^T

    其中 VV 的列向量是载荷向量(Loadings),也就是主成分的方向。

  2. 构造主成分:计算得分矩阵(Scores)ZZ

    Z=XV Z = XV

    由于主成分之间是正交的,即 ZTZZ^TZ 是对角矩阵,这就消除了多重共线性的问题。

  3. 截断与回归:通常我们只取前 kk 个特征值最大(解释方差最大)的主成分 ZkZ_k。做 YY 关于 ZkZ_k 的最小二乘回归:

    Y^=Zkγ^ \hat{Y} = Z_k \hat{\gamma} γ^=(ZkTZk)1ZkTY \hat{\gamma} = (Z_k^T Z_k)^{-1} Z_k^T Y
  4. 还原参数:将回归系数映射回原始空间:

    β^PCR=Vkγ^ \hat{\beta}_{PCR} = V_k \hat{\gamma}

1.2 方法论的缺陷

PCR 听起来很诱人:它消除了共线性,保留了 XX 中的主要变异信息。但是,它存在一个逻辑上的致命伤:

主成分提取的过程仅仅依赖于自变量 XX 的协方差结构,完全无视了因变量 YY

在 PCA 中,我们选择主成分的标准是“方差最大化”。但方差大并不意味着跟 YY 相关。可能存在这样一种情况:XX 的某个方向方差极小(因此在 PCR 中被丢弃),但该方向却包含了 YY 的绝大部分信息。

正如 Ali S. Hadi 和 Robert F. Ling (1998) 在 The American Statistician 上指出的,如果解释变量的主成分与响应变量无关,PCR 的效果甚至可能不如直接丢弃变量。文章给出了一个例子:前p-1个PC跟因变量一点关系都没有,而最后一个PC解释了因变量所有的变异。原因在于PCA仅仅依赖于X的协方差结构,而忽略了Y的信息。

2. 偏最小二乘回归 (Partial Least Squares Regression, PLSR)

为了解决 PCR “只看 X 不看 Y” 的问题,偏最小二乘回归(PLSR)应运而生。它的核心思想是:在寻找潜在变量时,既要让它尽可能解释 XX 的变异,又要让它尽可能解释 YY 的变异

2.1 优化目标

假设我们要寻找一个权重向量 ww(满足 w=1\|w\|=1),构造潜在变量 t=Xwt = Xw。PLSR 的目标函数是最大化 ttYY 的协方差:

maxwCov(Xw,Y)2=maxwVar(Xw)Corr(Xw,Y)2Var(Y) \max_{w} \text{Cov}(Xw, Y)^2 = \max_{w} \text{Var}(Xw) \cdot \text{Corr}(Xw, Y)^2 \cdot \text{Var}(Y)

对比 PCR 和 PLSR:

  • PCR:最大化 Var(Xw)\text{Var}(Xw)
  • PLSR:最大化 Var(Xw)×Corr(Xw,Y)2\text{Var}(Xw) \times \text{Corr}(Xw, Y)^2。(注:Var(Y)\text{Var}(Y) 是常数)

这就比较直观了:PLSR 试图寻找一个平衡点,它找出来的成分既包含 XX 的主要结构(方差大),又与 YY 高度相关。PLSR 带来的 主要变化是:提取成分时不只看自变量方差,也看它和因变量的相关性

2.2 算法简述 (NIPALS 算法思想)

PLSR 的求解通常使用 NIPALS 算法或 SIMPLS 算法。对于单因变量 YY,其迭代过程大致如下:

  1. 计算 XXYY 的协方差向量 w=XTYw = X^T Y
  2. 归一化 ww/ww \leftarrow w / \|w\|
  3. 计算得分向量(Score Vector)t=Xwt = Xw
  4. 计算 YYtt 的载荷 c=YTt/(tTt)c = Y^T t / (t^T t)
  5. 计算 XXtt 的载荷 p=XTt/(tTt)p = X^T t / (t^T t)
  6. 剥离(Deflation):从 XXYY 中减去该成分解释的部分:Xnew=XtpT X_{new} = X - t p^T Ynew=YtcT Y_{new} = Y - t c^T
  7. 利用残差矩阵重复上述步骤,直到提取足够的成分。

最终,我们建立的模型形式为:

X=TPT+E X = TP^T + E Y=TQT+F Y = TQ^T + F

(其中 QQ 往往直接关联回归系数)。

2.3 几何解释

  • OLS 寻找的是在 XX 列空间中离 YY 最近的投影。
  • PCR 先在这个空间里找一个方差最大的子空间,然后在子空间里找投影。
  • PLSR 则是旋转坐标轴,让新的轴既指向数据分布延伸最长的方向,又偏向于 YY 梯度最大的方向。

3. 总结与比较

维度 主成分回归 (PCR) 偏最小二乘回归 (PLSR)
成分提取依据 仅依赖 XX 的方差 (Var(X)\text{Var}(X)) 考虑 XX 方差与 X,YX,Y 相关性 (Cov(X,Y)\text{Cov}(X,Y))
监督学习 否(第一步无监督) 是(利用了目标变量 Y)
变量选择 实际上是一种硬截断 相当于一种软加权
适用场景 噪音主要在 XXYY 关联 XX 的主要变异时 预测为导向,XX 内部存在多重共线性时

在大多数实际应用中(尤其是化学计量学、光谱分析),PLSR 的表现往往优于或持平于 PCR。通过引入因变量的信息,PLSR 往往能用更少的成分达到相同的预测精度,从而得到一个更简约(Parsimonious)的模型。

我们建议使用PLSR来代替PCR,原因很直接:前者在统计学上具备更优的性质,它同时利用了X和Y的信息,而不是只使用自变量自己的协方差结构。PCR的优点是能处理多重共线性,但在统计学上,PCR的统计性质并不可靠。

实际使用时,PCR不一定容易出现前面描述的情况(前p-1个成分与Y无关、最后一个成分相关)。主成分在许多情况下(尤其是化学数据)能解释自变量的某种内在结构,而这种结构往往与因变量有关。但从理论上说,PCR缺少回归的逻辑。PLSR保留了PCR的“优点”(原理类似),同时照顾了因变量,这与回归的目的更一致。

  • Title: From Principal Component Regression (PCR) to Partial Least Squares (PLS)
  • Author: Hyacehila
  • Created at : 2026-02-05 04:00:00
  • Link: https://hyacehila.github.io//blog/2026/02/05/from-principal-component-regression-to-plsr/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments