偏最小二乘回归

**偏最小二乘回归（， PLS回归）**是一种统计学方法，与主成分回归有关系，但不是寻找响应和独立变量之间最小方差的超平面，而是通过投影预测变量和观测变量到一个新空间来寻找一个线性回归模型。因为数据*X*和*Y*都会投影到新空间，PLS系列的方法都被称为双线性因子模型。當Y是分类數據時有「偏最小二乘判别分析（， PLS-DA）」，是PLS的一个变形。

偏最小二乘用于查找两个矩阵（*X*和*Y*）的基本关系，即一个在这两个空间对协方差结构建模的隐变量方法。偏最小二乘模型将试图找到*X*空间的多维方向来解释*Y*空间方差最大的多维方向。偏最小二乘回归特别适合当预测矩阵比观测的有更多变量，以及*X*的值中有多重共线性的时候。相比之下，标准的回归在这些情况下不见效（除非它是吉洪诺夫正则化）。

偏最小二乘算法被用在偏最小二乘路径建模中， 一个建立隐变量（原因不能没有实验和拟实验来确定，但一个典型的模型会基于之前理论假设（隐变量影响衡量指标的表现）的隐变量模型）这种技术是结构方程模型的一种形式，与经典方法不同的是基于组件而不是基于协方差。

偏最小二乘来源于瑞典统计学家Herman Wold，然后由他的儿子Svante Wold发展。偏最小二乘的另一个词（根据Svante Wold）是*投影到潜在结构*，但偏最小二乘法依然在许多领域占据着主导地位。尽管最初的应用是在社会科学中，偏最小二乘回归今天被广泛用于化学计量学和相关领域。它也被用于生物信息学，sensometrics，神经科学和人类学。而相比之下，偏最小二乘回歸最常用于社会科学、计量经济学、市场营销和战略管理。

## 底层模型

偏最小二乘的一般多元底层模型是

:X = T P^{\top} + E
:Y = U Q^{\top} + F

其中X是一个n \times m的预测矩阵，Y是一个n \times p的响应矩阵；T和U是n \times l的矩阵，分别为X的投影（“X分数”、“组件”或“因子”矩阵）和Y的投影（“Y分数”）；P和Q分别是m \times l和p \times l的正交*载荷*矩阵，以及矩阵E和F是错误项，假设是独立同分布的随机正态变量。对X和Y分解来最大化T和U之间的协方差。

## 算法

偏最小二乘的许多变量是为了估计因子和载荷矩阵T, U, P和Q。它们中大多数构造了X和Y之间线性回归的估计Y = X \tilde{B} + \tilde{B}_0。一些偏最小二乘算法只适合Y是一个列向量的情况，而其它的算法则处理了Y是一个矩阵的一般情况。算法也根据他们是否估计因子矩阵T为一个正交矩阵而不同。 
最后的预测在所有不同最小二乘算法中都是一样的，但组件是不同的。

### PLS1

PLS1是一个Y是向量时广泛使用的算法。它估计T是一个正交矩阵。以下是伪代码（大写字母是矩阵，带上标的小写字母是向量，带下标的小写字母和单独的小写字母都是标量）：

  1  **function** PLS1(X, y, l)
  2  X^{(0)} \gets X
  3  w^{(0)} \gets X^T y/||X^Ty||, an initial estimate of w.
  4  t^{(0)} \gets X w^{(0)} 
  5  **for** k = 0 **to** l
  6      t_k \gets {t^{(k)}}^T t^{(k)} (note this is a scalar)
  7      t^{(k)} \gets t^{(k)} / t_k
  8      p^{(k)} \gets {X^{(k)}}^T t^{(k)}
  9      q_k \gets {y}^T t^{(k)} (note this is a scalar)
 10      **if** q_k = 0
 11          l \gets k, **break** the **for loop**
 12      **if** k 
 13          X^{(k+1)} \gets X^{(k)} - t_k t^{(k)} {p^{(k)}}^T
 14          w^{(k+1)} \gets {X^{(k+1)}}^T y 
 15          t^{(k+1)} \gets X^{(k+1)}w^{(k+1)}
 16  end **for**
 17  **define** W to be the matrix with columns w^{(0)},w^{(1)},...,w^{(l-1)}.
     Do the same to form the P matrix and q vector.
 18  B \gets W {(P^T W)}^{-1} q
 19  B_0 \gets q_0 - {P^{(0)}}^T B
 20  **return** B, B_0

这种形式的算法不需要输入X和Y定中心，因为算法隐式处理了。这个算法的特点是收缩于X （减去t_k t^{(k)} {p^{(k)}}^T），但向量y不收缩，因为没有必要（可以证明收缩y和不收缩的结果是一样的）。用户提供的变量l是回归中隐藏因子数量的限制；如果它等于矩阵X的秩，算法将产生B和B_0的最小二乘回归估计。

### 举例

10个变量（V1-V10）解释身高，PLS取前三个成分（C1-C3），数据集N=100。

#取得第一个成分C1：对10个变量赋予“内部权重”，既能解释10个变量，又能解释身高（最大协方差）。C1 = w1_v1*V1 + w1_v2*V2 + ... + w1_v10*V10（C1就是这100人每人一个值）
#移除（deflate）第一个成分C1对因变量的解释，重复此过程。获得C2、C3。
#用回归（如OLS）得出这三组值对身高的解释系数（系数_C1-C3）：预测身高 ≈ 截距_中间 + (系数_C1 * C1) + (系数_C2 * C2) + (系数_C3 * C3)
#预测身高 ≈ 截距_中间 + 系数_C1 * (w1_v1*V1 + ... + w1_v10*V10) + 系数_C2 * (w2_v1*V1 + ... + w2_v10*V10) + 系数_C3 * (w3_v1*V1 + ... + w3_v10*V10)把这个式子展开，然后把所有包含 V1 的项合并，所有包含 V2 的项合并，以此类推：预测身高 ≈ 截距_中间 + (系数_C1*w1_v1 + 系数_C2*w2_v1 + 系数_C3*w3_v1) * V1 + (系数_C1*w1_v2 + 系数_C2*w2_v2 + 系数_C3*w3_v2) * V2 + ... + (系数_C1*w1_v10 + 系数_C2*w2_v10 + 系数_C3*w3_v10) * V10V1 前面的括号 (系数_C1*w1_v1 + 系数_C2*w2_v1 + 系数_C3*w3_v1) 就是最终得到的 V1 的最终权重，以此类推。

PLS模型的结果是一套权重（每个变量分别对应1个权重，共10个数字），外加截距。在预测时，使用它们对观察到的加权进行预测。

## 扩展

2002年，一个叫做正交投影（， OPLS）的方法提出。在OPLS中，连续变量数据被分为预测的和不相关的信息。这有利于改进诊断，以及更容易解释可视化。然而，这些变化只是改善模型的可解释性，不是预测能力。 L-PLS通过3个连接数据块扩展了偏最小二乘回归。 同样，OPLS-DA（， 判别分析）可能被应用在处理离散变量，如分类和生物标志物的研究。

## 软件实现

大多数统计软件包都提供偏最小二乘回归。
R中的‘pls’包提供了一系列算法。

## 参见
*特征提取
*数据挖掘
*机器学习
*回归分析
*典型相关
*Deming regression
*多线性子空间学习
*主成分分析
*总平方和

## 扩展阅读
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*Wan Mohamad Asyraf  Bin Wan Afthanorhan. (2013). A Comparison Of Partial Least Square Structural Equation Modeling (PLS-SEM) and Covariance Based Structural EquationModeling (CB-SEM) for Confirmatory Factor Analysis International Journal of Engineering Science and Innovative Technology (IJESIT), 2(5), 9.

## 参考文献

## 外部链接
*imDEV  free Excel add-in for PLS and PLS-DA
*PLS in Brain Imaging
*on-line PLS  regression (PLSR) at Virtual Computational Chemistry Laboratory
*Uncertainty estimation for PLS 
*A short introduction to PLS regression and its history