主成分回归

统计学中，主成分回归（PCR）是一种基于主成分分析（PCA）的回归分析方法。更确切地说，PCR用于估计标准线性回归模型中的未知参数。

PCR不是直接将因变量与解释变量进行回归，而是将解释变量的主成分作为回归量。一般只使用所有主成分的一个子集用于回归，因此PCR是一种正则化过程，也是一种收缩估计量。

方差更高的主成分（基于解释变量样本方差-协方差矩阵对应更大特征值的特征向量）被选为回归量。不过，要预测结果，低方差的主成分可能也很重要，在某些情况下甚至更重要。

PCR的主要用途之一是克服多重共线性问题，这是说多个解释变量接近共线。PCR可在回归步骤中排除一些低方差主成分，从而恰当地处理这种情况。另外，由于通常只对所有主成分的一个子集进行回归，PCR可大幅降低基础模型的参数数，从而降维。这在使用高维协变量时尤为有用。通过适当选择用于回归的主成分，PCR还可根据假定模型有效地预测输出。

## 原理

PCR法可总结为三步：

- $\;\;$对解释变量的测得设计矩阵进行PCA，得到主成分，然后（通常）根据一些适当标准，从获得的主成分中选择子集，供进一步使用。

- $\;\;$用普通最小二乘法，在选定主成分上线性回归输出的测得向量，得到估计回归系数向量（维数等于选定的主成分数）。

- $\;\;$用PCA负载（与选定主成分对应的特征向量）将该向量变换回实际协变量标量，得到最终PCR估计量（维数等于协变量总数），以估计表征原始模型的回归系数。

## 方法细节

数据表示：令$\mathbf{Y}_{n \times 1} = \left(y_1,\ldots,y_n\right)^T$表示观测的输出，$\mathbf{X}_{n \times p} = \left(\mathbf{x}_1,\ldots,\mathbf{x}_n\right)^T$表示测得协变量对应的设计矩阵，其中$n$、$p\ (n \geq p)$表示测得样本的大小和协变量数量。$\mathbf{X}$的每行$n$表示$p$维协变量的一组观测值，$\mathbf{Y}$的相应项表示相应的观测结果。

数据预处理：假设$\mathbf{Y}$及$\mathbf{X}$的$p$列已经中心化，经验均值均为0。中心化这步至关重要（至少对$\mathbf{X}$的列而言），因为PCR将对$\mathbf{X}$使用的PCA on $\mathbf{X}$对数据是否中心化十分敏感。

基础模型：在中心化之后，对$\mathbf{X}$上的$\mathbf{Y}$的标准高斯-马尔可夫线性回归模型可表为：$\mathbf{Y} = \mathbf{X}\boldsymbol{\beta} + \boldsymbol{\varepsilon}, \;$其中$\boldsymbol{\beta} \in \mathbb{R}^p$表示回归系数的未知参数向量，$\boldsymbol{\varepsilon}$表示随机误差向量，$\operatorname{E}\left(\boldsymbol{\varepsilon}\right) = \mathbf{0} \;$、$\; \operatorname{Var}\left(\boldsymbol{\varepsilon}\right) = \sigma^2I_{n \times n}$则表示未知方差参数$\sigma^2 > 0 \;\;$

目标：主要目标是根据数据，为参数$\boldsymbol\beta$获得有效估计量$\widehat{\boldsymbol\beta}$。一种常用方法是普通最小二乘法，假设$\mathbf{X}$的列满秩，从而有$\boldsymbol{\beta}$的无偏估计量：$\widehat{\boldsymbol\beta}_\mathrm{ols} = (\mathbf{X}^{T}\mathbf{X})^{-1} \mathbf{X}^{T}\mathbf{Y}$。PCR是另一种估计$\boldsymbol{\beta}$的方法。

PCA步骤：PCR首先要对中心化矩阵$\mathbf{X}$进行PCA。为此，令$\mathbf{X} = U \Delta V^{T}$表示$\mathbf{X}$的奇异值分解，其中$\Delta_{p \times p} = \operatorname{diag}\left[\delta_1,\ldots,\delta_p\right] \ ( \delta_1 \geq \cdots \geq \delta_p \geq 0 )$表示$\mathbf{X}$的非负奇异值，$U_{n \times p} = [\mathbf{u}_1,\ldots,\mathbf{u}_p]$、$V_{p \times p} = [\mathbf{v}_1,\ldots,\mathbf{v}_p]$都是正交规范集向量，列向量分别表示$\mathbf{X}$的左右奇异向量。

主成分：$V \Lambda V^T$给出了$\mathbf{X}^T \mathbf{X}$的谱分解，其中$\Lambda_{p \times p} = \operatorname{diag}\left[\lambda_1,\ldots,\lambda_p\right] = \operatorname{diag}\left[\delta_1^2,\ldots,\delta_p^2\right] = \Delta^2 \ ( \lambda_1 \geq \cdots \geq \lambda_p \geq 0)$表示$\mathbf{X}^T \mathbf{X}$的非负特征值（也叫做主值），$V$的列则表示对应的特征向量的正交规范集。接着，$\mathbf{X}\mathbf{v}_j$、$\mathbf{v}_j$分别表示第$j$个主成分与跟第$j$大的主成分值$\forall j \in \{1,\ldots,p\} \lambda_j$ 相对应的第$j$个主成分方向（或PCA负载）。

衍生协变量：$\forall k \in \{1,\ldots,p\}$，记$V_{k}$为$p \times k$矩阵，其正交列包含$V$的前$k$列。记$W_k = \mathbf{X}V_{k} = [\mathbf{X}\mathbf{v}_1,\ldots,\mathbf{X}\mathbf{v}_k]$为以前$k$个主成分为列的$n \times k$矩阵。$W$可看做是用变换后的协变量$\mathbf{x}_i^k = V_k^T \mathbf{x}_i \in \mathbb{R}^{k}$得到的设计矩阵，而非原始协变量$\mathbf{x}_i \in \mathbb{R}^p \;\; \forall \;\; 1 \leq i \leq n$。

PCR估计量：记$\widehat{\gamma}_k = (W_k^T W_k)^{-1} W_k^T \mathbf{Y} \in \mathbb{R}^k$表示 响应向量$\mathbf{Y}$在设计矩阵$W_{k}$上用普通最小二乘法得到的估计回归系数向量。那么，$\forall k \in \{1,\ldots,p\}$都有基于前$k$个主成分的$\boldsymbol{\beta}$的最终PCR估计量：$\widehat{\boldsymbol{\beta}}_k = V_k \widehat{\gamma}_k \in \mathbb{R}^p$

## PCR估计量的基本特征与应用

### 两个基本性质

得到PCR估计量的拟合过程包括将响应向量在导出设计矩阵$W_{k}$上回归。后者$\forall k \in \{1,\ldots,p\}$都有正交列，因为主成分互相正交。因此在回归中，对作为协变量的$k$个选定主成分联合进行多元线性回归，相当于对作为协变量的$k$个选定主成分分别进行独立单变量线性回归。

当选择所有主成分回归（$k = p$），PCR估计量便等同于普通最小二乘法估计量。因此$\widehat{\boldsymbol{\beta}}_{p} = \widehat{\boldsymbol{\beta}}_\mathrm{ols}$。从$W_{p} = \mathbf{X}V_{p} = \mathbf{X}V$和$V$是正交矩阵的观测事实，不难看出这点。

### 方差降低

$\forall k \in \{1,\ldots,p\}$，$\widehat{\boldsymbol{\beta}}_{k}$的方差由下式给出：

$$\operatorname{Var}(\widehat{\boldsymbol{\beta}}_k) = \sigma^2 \; V_k (W_k^T W_k)^{-1} V_k^T = \sigma^2 \; V_k \; \operatorname{diag}\left(\lambda_1^{-1},\ldots,\lambda_k^{-1}\right) V_k^{T} = \sigma^2 \sideset{}{}\sum_{j = 1}^k \frac{\mathbf{v}_j\mathbf{v}_j^T}{\lambda_j}.$$

特别地：

$$\operatorname{Var}(\widehat{\boldsymbol{\beta}}_{p}) = \operatorname{Var}(\widehat{\boldsymbol{\beta}}_\mathrm{ols}) = \sigma^2 \sideset{}{}\sum_{j = 1}^{p}\frac{\mathbf{v}_j\mathbf{v}_j^{T}}{\lambda_j}.$$

因此$\forall k \in \{1,\ldots, p-1\}$都有：

$$\operatorname{Var}(\widehat{\boldsymbol{\beta}}_\mathrm{ols}) - \operatorname{Var}(\widehat{\boldsymbol{\beta}}_{k}) = \sigma^2 \sideset{}{}\sum_{j = k+1}^p\frac{\mathbf{v}_j\mathbf{v}_j^T}{\lambda_j}.$$

因此$\forall k \in \{1,\ldots, p\}$都有：

$$\operatorname{Var}(\widehat{\boldsymbol{\beta}}_\mathrm{ols}) - \operatorname{Var}(\widehat{\boldsymbol{\beta}}_k) \succeq 0$$

其中$A \succeq 0$，表明对称方阵$A$是非负定的。于是，与普通最小二乘估计的线性形式相比，任何给定PCR估计量的线性形式都有更低的方差。

### 解决多重共线性问题

多重共线性条件下，指多个协变量高度相关，因此可从其他协变量以非平凡的精度进行线性预测。因此，设计矩阵$\mathbf{X}$与这些协变量对应的列趋于线性相关，于是$\mathbf{X}$趋于秩亏，失去列满秩结构。更定量地讲，这时$\mathbf{X}^{T}\mathbf{X}$的较小特征值会非常接近$0$。上述方差表达式表明，极小特征值对最小二乘估计量产生最大的方差扩大效应，因此在接近0时会严重破坏估计量的稳定性。这可以通过排除极小特征值对应的主成分得到的PCR估计，得到有效解决。

### 降维

PCR也可用于降维：记$L_k$为任意列正交的$p \times k (\forall k \in \{1,\ldots,p\})$矩阵。假设现在我们想通过秩$k$线性变换$L_k \mathbf{z}_i$（$\mathbf{z}_i \in \mathbb{R}^{k} (1 \leq i \leq n)$）来近似每个协变量观测值$\mathbf{x}_i$，那么可以证明

$$\sum_{i=1}^{n} \left \|\mathbf{x}_i - L_{k}\mathbf{z}_i \right \|^2$$

在$L_k = V_k$（前$k$个主成分方向为列组成的矩阵）和$\mathbf{z}_i = \mathbf{x}_{i}^{k} = V_{k}^{T}\mathbf{x}_i$（对应的$k$维衍生协变量）时取最小值。因此$k$维主成分提供了观测设计矩阵$\mathbf{X}$的秩为$k$的最佳线性近似，对应的重建误差为

$$\sum_{i=1}^{n} \left \|\mathbf{x}_i - V_{k}\mathbf{x}_{i}^{k} \right \|^2 = \begin{cases} \sum_{j = k+1}^{n} \lambda_j & 1 \leqslant k < p \\ 0 & k = p \end{cases}$$

因此，可通过选择$k$值（即要使用的主成分数），通过对$\mathbf{X}^{T}\mathbf{X}$的特征值累积和进行适当阈值处理，实现降维。由于较小特征值对累积和的贡献并不大，因此只要不超过所需的阈值限制，便可放弃相应的主成分。同样标准也可用于解决多重共线性问题：只要保持阈值限制，就可忽略较小特征值对应的主成分。

### 正则化效应

由于PCR估计量通常只使用一部分主成分进行回归，因此可视作某种正则化。更具体地说，$\forall 1 \leqslant k < p$，PCR估计量$\widehat{\boldsymbol{\beta}}_k$都可表示以下约束最小化问题的正则化解：

$$\min_{\boldsymbol{\beta}_{*} \in \mathbb{R}^{p}} \left \|\mathbf{Y} - \mathbf{X}\boldsymbol{\beta}_* \right \|^2 \quad \text{ subject to } \quad \boldsymbol{\beta}_* \perp \{\mathbf{v}_{k+1}, \ldots, \mathbf{v}_p\}.$$

约束可等价写作

$$V_{(p-k)}^{T}\boldsymbol{\beta}_* = \mathbf{0},$$

其中

$$V_{(p-k)} = \left[\mathbf{v}_{k+1},\ldots,\mathbf{v}_p\right]_{p\times (p-k)}.$$

因此，当择一部分主成分回归时，所得PCR估计量是基于硬形式的正则化，将所得解约束在选定主成分方向的列空间，因此限制其与被排除方向正交。

### 一类正则化估计量中PCR的最优性

给定如上述的约束最小化问题，考虑下面的推广：

$$\min_{\boldsymbol{\beta}_{*} \in \mathbb{R}^{p}} \|\mathbf{Y} - \mathbf{X}\boldsymbol{\beta}_*\|^2 \quad \text{ subject to } \quad L_{(p-k)}^{T}\boldsymbol{\beta}_* = \mathbf{0}$$

其中$L_{(p-k)}$表示任何阶为$p \times (p-k)\ (1 \leqslant k < p)$的列满秩矩阵。令$\widehat{\boldsymbol{\beta}}_L$表示对应的解，则

$$\widehat{\boldsymbol{\beta}}_L = \arg \min_{\boldsymbol{\beta}_{*} \in \mathbb{R}^{p}} \|\mathbf{Y} - \mathbf{X}\boldsymbol{\beta}_*\|^2 \quad \text{ subject to } \quad L_{(p-k)}^{T}\boldsymbol{\beta}_* = \mathbf{0}.$$

则约束矩阵$L_{(p-k)}$的最优选择就是相应估计量$\widehat{\boldsymbol{\beta}}_{L}$达到最小预测误差：

$$L^{*}_{(p-k)} = V_{(p-k)} \Lambda_{(p-k)}^{1/2},$$

其中

$$\Lambda_{(p-k)}^{1/2} = \operatorname{diag} \left(\lambda_{k+1}^{1/2},\ldots,\lambda_p^{1/2}\right).$$

很明显，由此得到的最优估计量$\widehat{\boldsymbol{\beta}}_{L^{*}}$就是基于前$k$个主成分的PCR估计量$\widehat{\boldsymbol{\beta}}_{k}$。

### 效率

由于普通最小二乘估计量对$\boldsymbol{\beta}$无偏，所以有

$$\operatorname{Var}(\widehat{\boldsymbol{\beta}}_\mathrm{ols}) = \operatorname{MSE} (\widehat{\boldsymbol{\beta}}_\mathrm{ols}),$$

其中MSE表示均方误差。现在，若对某个$k \in \{1,\ldots,p\}$，我们还有$V_{(p-k)}^T\boldsymbol{\beta} = \mathbf{0}$，那么对应的$\widehat{\boldsymbol{\beta}}_k$也将是$\boldsymbol{\beta}$的无偏估计量，就有

$$\operatorname{Var}(\widehat{\boldsymbol{\beta}}_k) = \operatorname{MSE} (\widehat{\boldsymbol{\beta}}_k).$$

我们已经知道

$$\forall j \in \{ 1, \ldots, p\}: \quad \operatorname{Var}(\widehat{\boldsymbol{\beta}}_\mathrm{ols}) - \operatorname{Var}(\widehat{\boldsymbol{\beta}}_j) \succeq 0,$$

这就意味着对特定的$k$有：

$$\operatorname{MSE} (\widehat{\boldsymbol{\beta}}_\mathrm{ols}) - \operatorname{MSE} (\widehat{\boldsymbol{\beta}}_k) \succeq 0$$

所以，用均方误差为标准的话，对应的$\widehat{\boldsymbol{\beta}}_{k}$是比$\widehat{\boldsymbol{\beta}}_\mathrm{ols}$更有效的$\boldsymbol{\beta}$的估计量。另外，与$\widehat{\boldsymbol{\beta}}_\mathrm{ols}$的相同线性形式相比，对应$\widehat{\boldsymbol{\beta}}_{k}$的任何给定线性形式的均方误差也更小。

现在假设，对给定的$k \in \{1,\ldots,p\}, V_{(p-k)}^{\boldsymbol{\beta}} \neq \mathbf{0}$，那么对应的$\widehat{\boldsymbol{\beta}}_k$对$\boldsymbol{\beta}$就是有偏的。但由于

$$\forall k \in \{ 1, \ldots, p\}: \quad \operatorname{Var}(\widehat{\boldsymbol{\beta}}_\mathrm{ols}) - \operatorname{Var}(\widehat{\boldsymbol{\beta}}_k) \succeq 0,$$

$\operatorname{MSE}(\widehat{\boldsymbol{\beta}}_\mathrm{ols}) - \operatorname{MSE}(\widehat{\boldsymbol{\beta}}_k) \succeq 0$仍然是可能的，尤其是当$k$使被排除主成分对应较小特征值时，从而导致较小的偏。

为确保PCR作为$\boldsymbol{\beta}$估计值的效率与性能，Park (1981) 提出了以下用于回归的主成分选择标准：当且仅当$\lambda_j < (p\sigma^2)/ \boldsymbol{\beta}^T \boldsymbol{\beta}$时，排除第$j$个主成分。在实际应用中，还需要估计未知的模型参数$\sigma^2$与$\boldsymbol{\beta}$。总的来说，可以用从原始完整模型得到的无约束最小二乘法进行估计。Park (1981)提供了一套稍加修改的估计值，可能更适合这一目的。

与基于$\mathbf{X}^T\mathbf{X}$特征值累积和的标准不同，上述标准可能更适合解决多重共线性问题与降维，实际上是试图让输出和协变量都参与到回归的主成分选择之中，以提高PCR估计值的预测与估计效率。其他目的相似的选择主成分方法基于交叉验证，或马洛斯CP值等。通常，主成分的选择还基于其与输出的相关程度。

### PCR的收缩效应

总的来说，PCR本质上是收缩估计量，通常保留了高方差主成分（对应$\mathbf{X}^T\mathbf{X}$的较大特征值）作为模型中的协变量，并舍弃剩余的低方差成分（对应$\mathbf{X}^T\mathbf{X}$的较小特征值）。这就对低方差成分产生了分离收缩，清除了其在原始模型中的贡献。相对地，岭回归估计量则通过其构造中固有的正则化参数，产生平滑收缩。虽然它不会舍弃任何一个成分，但会以连续的方式对所有成分产生收缩效应，因此低方差成分的收缩程度高于高方差成分。Frank & Friedman (1993)认为，就预测本身而言，与具有离散收缩效应的PCR估计量相比，岭估计量具有平滑收缩效应，可能是更好的选择。

此外，主成分是从$\mathbf{X}$的特征分解中得到的，只涉及解释变量的观测值。因此，以这些主成分为协变量得到的PCR估计量不一定具有令人满意的预测性能。偏最小二乘回归（PLS）估计量与之比较相似，试图通过自身的构造解决这问题。PLS也用低维的衍生协变量，但是在输出和协变量中获得的。PCR在协变量空间中寻找高方差方向，而PLS则寻找对预测结果最有用的方向。

2006年，有人提出了经典PCR的一种变体，即监督PCR。这种方法的精神与PLS类似，试图根据结果和协变量标准，获得低维衍生协变量。首先进行简单线性回归（单变量回归），其中结果向量分别对$p$个协变量逐一回归。然后，对某个$m \in \{1,\ldots, p\}$，选择与结果最相关的$m$个协变量（基于对应估计回归系数的显著程度）供进一步使用。然后进行上述传统PCR，但只基于与选定协变量观测值对应的$n \times m$设计矩阵。使用的协变量数：$m \in \{1,\ldots, p\}$及随后使用的主成分数：$k \in \{1,\ldots, m\}$一般通过交叉验证选择。

## 核设置的推广

上述经典PCR法基于经典PCA，并考虑了根据协变量的线性回归结果预测模型。这方法可以很容易地推广到核机设置，即回归函数不一定是协变量的线性函数，而可以属于与任意（可以非线性）对称正定核有关的再⽣核希尔伯特空间。核函数选为线性核时便有线性回归模型，是这种设置的特例。

总的来说，在核机设置下，协变量向量首先被映射到所选核函数的高维（可能是无限维）特征空间中。这样得到的映射叫做特征映射，每个坐标（也叫做特征元）对应协变量的一个特征（无所谓线性与否）。然后，假设回归函数是这些特征元的线性组合，则核机设置依赖的回归模型本质上是线性的，但前提是预测量不再是原始协变量集，而由特征映射所得协变量的特征元的向量（可能是无限维）给出。

但核技巧实际上可以让我们在特征空间中操作，而无需明确计算特征映射。事实证明，只需计算观测协变量向量的特征映射之间的逐对内积即可，是由在相应协变量向量对上估值的核函数值简单给出的。因此，得到的逐对内积可用$n \times n$对称非负定矩阵（也称为核矩阵）表示。

核机设置中的PCR现在可用以下方式实现：首先将核矩阵（如K）相对于特征空间适当中心化，再对中心化核矩阵（如K'）进行核主成分分析，得到K'的特征分解。然后，核PCR（通常）会从获得的所有特征向量中（一般通过交叉验证）选择一子集，在其上进行结果向量的标准线性回归。估计的回归系数（维度与选定特征向量数相同）与响应所选特征向量一起用于预测未来的观测结果。机器学习中，这技巧也被称为“谱回归”。

显然，核PCR对K'的特征向量具有离散收缩，与前面讨论过的经典PCR对主成分的离散收缩十分相似。然而，与核相关的特征映射可能是无限维的，因此相应的主成分及其方向也可能是无限维的。所以，在核机设置下，这些量实际上往往难以处理。核PCR基本上是基于相关核矩阵的谱分解，以考虑等效的对偶表述，来解决这一问题。在线性回归模型下（对应于选择核函数为线性核），这相当于考虑对应的$n \times n$核矩阵$\mathbf{X}\mathbf{X}^T$的谱分解，然后将结果向量回归到得到的$\mathbf{X}\mathbf{X}^T$的选定特征向量子集上。很容易看出，这等同于将结果向量回归到相应主成分上（这时是有限维），正如经典PCR定义的那样。因此，对线性核，基于对偶表示的核PCR完全等同于基于原始公式的经典PCR。然而，对任意（可能非线性）核，由于相关特征映射可能的无限维，这种原始公式可能会变得难以处理。因此，这时经典PCR实际上不可行，但基于对偶表示的核PCR仍有效，且在计算上可推广。