偏最小二乘回归分析:原理、算法与实现
内容摘要:
本文详细解析偏最小二乘回归(PLS)的核心原理与建模方法,对比其与主成分回归(PCR)、多元线性回归(MLR)的优势。从成分提取、协方差最大化、残差迭代到交叉有效性检验,逐步推导PLS算法流程,并给出简洁计算版本。结合矩阵运算公式与案例分析,阐明如何解决多重共线性和小样本问题,为高维数据分析提供实用指导。
关键词:偏最小二乘回归 成分提取 交叉验证 多重共线性 残差矩阵
1. PLS回归概述与应用场景
偏最小二乘回归(Partial Least Squares Regression, PLS)是一种多变量统计分析方法,适用于两组变量间依赖关系建模的场景。当自变量与因变量均存在多重相关性,且样本量较少时,PLS能有效克服传统回归方法的局限性,广泛应用于化学、经济学、生物信息学等领域。
PLS vs. PCR vs. MLR
- 多元线性回归(MLR):直接建立因变量与自变量的线性关系,但要求自变量独立且样本量充足,否则易过拟合。
- 主成分回归(PCR):通过提取自变量主成分降维,但未考虑因变量信息,可能导致信息损失。
- 偏最小二乘回归(PLS):同时提取自变量和因变量的成分,并最大化其协方差,兼顾降维与相关性,适合高维小样本数据。
2. PLS建模步骤详解
2.1 问题定义与数据标准化
设有ppp个因变量y1,y2,…,ypy_1, y_2, \dots, y_py1,y2,…,yp和mmm个自变量x1,x2,…,xmx_1, x_2, \dots, x_mx1,x2,…,xm,观测数据已标准化。标准化后的自变量矩阵E0E_0E0和因变量矩阵F0F_0F0分别为:
E0=[x11⋯x1m⋮⋱⋮xn1⋯xnm],F0=[y11⋯y1p⋮⋱⋮yn1⋯ynp] E_0 = \begin{bmatrix} x_{11} & \cdots & x_{1m} \\ \vdots & \ddots & \vdots \\ x_{n1} & \cdots & x_{nm} \end{bmatrix}, \quad F_0 = \begin{bmatrix} y_{11} & \cdots & y_{1p} \\ \vdots & \ddots & \vdots \\ y_{n1} & \cdots & y_{np} \end{bmatrix} E0=x11⋮xn1⋯⋱⋯x1m⋮xnm,F0=y11⋮yn1⋯⋱⋯y1p⋮ynp
2.2 成分提取与协方差最大化
第一步:提取第一对成分
- 自变量成分t1t_1t1:t1=w11x1+w12x2+⋯+w1mxm=w1TXt_1 = w_{11}x_1 + w_{12}x_2 + \cdots + w_{1m}x_m = \mathbf{w}_1^T Xt1=w11x1+w12x2+⋯+w1mxm=w1TX
- 因变量成分u1u_1u1:u1=v11y1+v12y2+⋯+v1pyp=v1TYu_1 = v_{11}y_1 + v_{12}y_2 + \cdots + v_{1p}y_p = \mathbf{v}_1^T Yu1=v11y1+v12y2+⋯+v1pyp=v1TY
目标为最大化t1t_1t1与u1u_1u1的协方差,并保证成分携带原变量组的最大变异信息。数学上转化为优化问题:
{maxw1TE0TF0v1s.t. ∥w1∥=1,∥v1∥=1 \begin{cases} \max \mathbf{w}_1^T E_0^T F_0 \mathbf{v}_1 \\ \text{s.t. } \|\mathbf{w}_1\| = 1, \|\mathbf{v}_1\| = 1 \end{cases} {maxw1TE0TF0v1s.t. ∥w1∥=1,∥v1∥=1
通过求解矩阵M=E0TF0F0TE0M = E_0^T F_0 F_0^T E_0M=E0TF0F0TE0的最大特征值对应的特征向量w1\mathbf{w}_1w1,并计算v1=1θ1F0TE0w1\mathbf{v}_1 = \frac{1}{\theta_1} F_0^T E_0 \mathbf{w}_1v1=θ11F0TE0w1,得到第一对成分。
第二步:建立回归模型
利用成分t1t_1t1,分别对自变量和因变量建立回归模型:
{E0=t^1α1T+E1F0=t^1β1T+F1 \begin{cases} E_0 = \hat{t}_1 \boldsymbol{\alpha}_1^T + E_1 \\ F_0 = \hat{t}_1 \boldsymbol{\beta}_1^T + F_1 \end{cases} {E0=t^1α1T+E1F0=t^1β1T+F1
其中,回归系数α1\boldsymbol{\alpha}_1α1和β1\boldsymbol{\beta}_1β1通过最小二乘估计:
α1=E0Tt^1∥t^1∥2,β1=F0Tt^1∥t^1∥2 \boldsymbol{\alpha}_1 = \frac{E_0^T \hat{t}_1}{\|\hat{t}_1\|^2}, \quad \boldsymbol{\beta}_1 = \frac{F_0^T \hat{t}_1}{\|\hat{t}_1\|^2} α1=∥t^1∥2E0Tt^1,β1=∥t^1∥2F0Tt^1
第三步:残差迭代
用残差矩阵E1E_1E1和F1F_1F1代替原矩阵,重复上述步骤提取后续成分t2,t3,…,trt_2, t_3, \dots, t_rt2,t3,…,tr,直到满足精度要求。
3. 交叉有效性检验
PLS需确定提取的成分个数lll,以避免过拟合。通过交叉验证计算预测误差平方和(PRESS)与误差平方和(SS):
- PRESS:剔除第iii个样本后建模的预测误差平方和。
- SS:全样本建模的误差平方和。
定义交叉有效性指标Qh2=1−PRESS(h)SS(h−1)Q_h^2 = 1 - \frac{\text{PRESS}(h)}{\text{SS}(h-1)}Qh2=1−SS(h−1)PRESS(h),若Qh2<0.0975Q_h^2 < 0.0975Qh2<0.0975,则停止提取成分。
4. 简洁算法:无需因变量成分提取
传统PLS需同时提取自变量和因变量成分,而简洁算法仅需在自变量残差矩阵中迭代提取成分,简化计算:
- 计算E0TF0F0TE0E_0^T F_0 F_0^T E_0E0TF0F0TE0的最大特征向量w1\mathbf{w}_1w1,得到t1=E0w1t_1 = E_0 \mathbf{w}_1t1=E0w1。
- 更新残差矩阵E1=E0−t1α1TE_1 = E_0 - t_1 \boldsymbol{\alpha}_1^TE1=E0−t1α1T。
- 重复步骤,提取后续成分t2,…,trt_2, \dots, t_rt2,…,tr。
最终回归方程为:
Y=t1β1+t2β2+⋯+trβr Y = t_1 \boldsymbol{\beta}_1 + t_2 \boldsymbol{\beta}_2 + \cdots + t_r \boldsymbol{\beta}_r Y=t1β1+t2β2+⋯+trβr
将成分tit_iti还原为原始自变量,即得PLS回归方程。
5. 关键公式总结
- 成分得分向量:
t^h=Eh−1wh,wh=argmaxwTEh−1TF0F0TEh−1w \hat{t}_h = E_{h-1} \mathbf{w}_h, \quad \mathbf{w}_h = \arg \max \mathbf{w}^T E_{h-1}^T F_0 F_0^T E_{h-1} \mathbf{w} t^h=Eh−1wh,wh=argmaxwTEh−1TF0F0TEh−1w - 回归系数:
βh=F0Tt^h∥t^h∥2 \boldsymbol{\beta}_h = \frac{F_0^T \hat{t}_h}{\|\hat{t}_h\|^2} βh=∥t^h∥2F0Tt^h - 交叉有效性条件:
Qh2≥0.0975⇒继续提取成分;否则终止。 Q_h^2 \geq 0.0975 \Rightarrow \text{继续提取成分;否则终止。} Qh2≥0.0975⇒继续提取成分;否则终止。
6. 结语
PLS通过成分提取与协方差最大化,巧妙解决了高维数据中的多重共线性和小样本问题。结合交叉验证,可灵活控制模型复杂度,是数据分析中的强有力工具。实际应用中需注意数据标准化、成分数选择及结果的可解释性优化。