← 返回目录

Chapter 17: 主成分分析与回归

PCA & Regression

📖 本章概要

本章介绍基于PCA的回归方法,包括正交回归(TLS)、主成分回归(PCR)和偏最小二乘回归(PLSR)。 这些方法在处理多重共线性和高维数据时具有独特优势。

17.1 正交回归概念:OLS vs TLS

📐 OLS vs TLS

普通最小二乘法(OLS)仅考虑因变量y的误差,而全最小二乘法(TLS)同时考虑自变量X和因变量y的误差。 TLS通过最小化观测点到回归线的正交距离(垂直距离)来确定回归系数。

  • • OLS:最小化y方向残差平方和
  • • TLS:最小化正交距离平方和
  • • TLS适用于X和y都存在测量误差的情况
  • • TLS回归线与PCA第一主成分方向一致
📐

图1-4:OLS vs TLS 交互式回归对比

拖动数据点、调整噪声、观察残差变化

调整噪声观察OLS与TLS斜率差异变化
🎬 优化过程演示
🎯 显示选项

OLS:仅考虑纵向误差

最小化 Σ(y - ŷ)²

6.34.110.58.23.06.90.63.34.65.7xy
回归方程:y = 1.2476x + 0.00026
R²:0.9729
特点:仅最小化y方向残差,假设x无误差
✅ 适用于:x为自变量且无测量误差

TLS:考虑正交距离

最小化 Σd²(垂直距离)

3.83.612.18.61.25.93.22.33.212.4xy
回归方程:y = 0.9866x + -0.00105
与PCA关系:TLS = PCA第二主成分方向
特点:最小化正交距离,x和y都有误差
✅ 适用于:x和y都存在测量误差(如股票收益率)
📏 斜率差异
1.2476
vs
0.9866
TLS斜率更陡(-20.9% 差异)
🎯 平均误差
OLS: 5.34
TLS: 5.64
单位:×10⁻³
🔑 关键区别
• OLS假设x无误差
• TLS认为x、y都有误差
• TLS与PCA主成分相关

💡 核心洞察:当x存在测量误差时,OLS会低估真实斜率。 TLS通过PCA找到数据的主方向,更适合x、y都有误差的情况(如股票收益率分析)。

🎮 交互提示:• 拖动数据点观察回归线实时变化 • 调整噪声强度观察OLS与TLS差异 • 点击"播放优化动画"查看残差最小化过程 • 残差数值实时显示在数据点旁(单位:×10⁻³)

17.2 一元正交回归:优化推导

🔬 公式推导与几何意义

一元正交回归通过最小化目标函数f(b₀,b₁) = ||d||²求解回归系数。 对b₀和b₁分别求偏导并令其为0,得到二次方程,最终解与PCA特征值密切相关。

关键公式:
  • • 公式(4): f(b₀,b₁) = dᵀd
  • • 公式(5-7): 对b₀偏导求解
  • • 公式(9-14): b₁的二次方程
  • • 公式(15-17): PCA特征值连接
几何意义:
  • • 正交距离d:点到线的垂直距离
  • • 最小化Σd²:目标函数
  • • b₁两个解:主成分方向
  • • 选择λ₂对应方向作为回归线

图5:一元正交回归几何与推导

交互式探索正交距离最小化过程和公式推导

🎬 推导动画
从目标函数到最终解的8步推导
🎯 手动调整斜率
当前: 1.3265 (TLS最优)
📊 目标函数
0.000002
f(b₁) = Σd²
✅ 已达到最小值

正交距离几何示意(点击数据点查看详情)

xyO
📐 几何意义:TLS最小化数据点到回归线的正交距离(垂直距离), 而非OLS的纵向距离。点击数据点查看其正交距离d。

公式推导过程(共8步)

1
步骤1:定义目标函数
f(b₀,b₁) = ||d||² = dᵀd
最小化所有数据点到回归线的正交距离平方和
2
步骤2:对b₀求偏导
∂f/∂b₀ = 2n·b₀ + 2b₁·Σx - 2Σy = 0
令偏导数为0,求解b₀
3
步骤3:解出b₀
b₀ = E(y) - b₁·E(x)
b₀由b₁和均值确定(与OLS相同)
4
步骤4:对b₁求偏导
∂f/∂b₁ = 2(b₁·Σx² + b₀·Σx - Σxy) = 0
代入b₀,得到关于b₁的方程
5
步骤5:构造二次方程
k·b₁² - 2σ_xy·b₁ + k = 0
k = σ_y² - σ_x²
6
步骤6:求解b₁(两个根)
b₁ = 1.3265 或 0.7539
选择第一主成分方向(较大特征值)
7
步骤7:与PCA的关系
b₁ = v₁方向 = 第一主成分
λ₁=0.00145, λ₂=0.00000
8
步骤8:最终回归线
y = 1.3265x + 0.00062
TLS回归线通过数据中心,沿第一主成分方向
🔢 协方差矩阵
σ_x² = 0.00053
σ_y² = 0.00092
σ_xy = 0.00070
🎯 PCA特征值
λ₁ = 0.00145 (最大)
λ₂ = 0.00000
b₁对应λ₂方向(次要主成分)
📈 TLS回归方程
y = 1.3265x + 0.00062
通过中心,沿第一主成分

💡 核心洞察:一元TLS回归等价于PCA的第二主成分方向。回归线垂直于数据散布的主方向(第一主成分), 最小化正交距离等价于最大化沿次要方向的方差。

🎮 交互提示:• 点击"播放推导过程"观看8步公式推导动画 • 拖动斜率滑块观察目标函数变化 • 点击数据点查看其正交距离 • 对比手动调整和TLS最优解的差异

17.3 几何角度看正交回归

🎯 从几何到代数

从几何角度理解TLS:平面方程F(x,y) = b₀ + b₁x - y, 法向量n = [b₁, -1]ᵀ平行于PCA第二主成分。通过构建协方差矩阵Σ, 利用特征值方程Σn = λ₂n求解回归系数。

关键步骤:
  • • 公式(19-20): 平面方程与法向量
  • • 公式(21-22): 数据中心化与协方差矩阵
  • • 公式(23-25): 特征值方程与TLS求解
  • • 公式(26-28): OLS对比与截距
几何意义:
  • • 中心化:平移数据到原点
  • • 协方差矩阵:数据的二阶统计
  • • 特征值λ₂:最小方差方向
  • • TLS vs OLS:考虑X误差的影响

图6-9:几何角度看正交回归

中心化过程、协方差矩阵构建、TLS vs OLS对比

🎬 公式推导演示(9步)
1
步骤1:平面方程定义
公式(19)
F(x,y) = b₀ + b₁x - y
构造二元一次函数,定义回归平面
2
步骤2:法向量
公式(20)
n = [∂F/∂x, ∂F/∂y]ᵀ = [b₁, -1]ᵀ
n方向即PCA分解第二主元方向
3
步骤3:数据中心化
公式(21)
x̃ = x - E(x), ỹ = y - E(y)
中心化向量,协方差矩阵可通过下式运算得到
4
步骤4:协方差矩阵
公式(22)
Σ = [x̃ ỹ]ᵀ[x̃ ỹ] = [[x̃ᵀx̃, x̃ᵀỹ], [ỹᵀx̃, ỹᵀỹ]]
2×2对称正定矩阵
5
步骤5:特征值方程
公式(23)
Σn = λ₂n ⟹ [[x̃ᵀx̃, x̃ᵀỹ], [ỹᵀx̃, ỹᵀỹ]]n = λ₂n
n平行于Σ矩阵PCA分解特征值最小特征向量
6
步骤6:联立方程
公式(24)
(x̃ᵀx̃ - λ₂)b₁ + x̃ᵀỹ = λ₂b₁
整理得到如下两个等式
7
步骤7:TLS斜率求解
公式(25)
b₁_TLS = (x̃ᵀx̃ - λ₂I)⁻¹x̃ᵀỹ
当前值: 2.0641
8
步骤8:OLS对比
公式(26)
b₁_OLS = (x̃ᵀx̃)⁻¹x̃ᵀỹ
当前值: 1.0131,差异: 103.7%
9
步骤9:截距求解
公式(28)
b₀ = E(y) - b₁E(x)
中心化之后,回归直线梯度向量不变

💡 核心洞察:几何角度看,正交回归找到数据的主方向(第一主成分v₁), 回归线垂直于此方向。代数角度看,通过协方差矩阵Σ的特征值分解, 最小特征值λ₂对应的特征向量即为法向量n = [b₁, -1]ᵀ。

🎮 交互提示:• 点击"公式推导"观看9步完整推导动画 • 切换到"OLS vs TLS"查看斜率差异和中心化效果 • 查看"协方差矩阵"理解Σ的构建和特征值方程

17.4 二元正交回归

🌐 从2D到3D

二元正交回归将问题扩展到三维空间。回归平面y = b₁x₁ + b₂x₂通过原点(中心化后), 法向量n = [b₁, b₂, -1]ᵀ垂直于该平面,对应3×3协方差矩阵Σ的最小特征向量。

关键步骤:
  • • 公式(30): 三变量数据中心化
  • • 公式(31): 构造3×3协方差矩阵Σ
  • • 公式(32-34): 平面方程与法向量
  • • 公式(35): 特征值方程Σn = λ₃n
几何意义:
  • • 回归平面:最佳拟合数据点
  • • 法向量n:垂直于平面
  • • λ₃:最小特征值(残差方差)
  • • 扩展模式:D元→(D+1)维空间

二元正交回归:从2D到3D

三维空间中的回归平面、法向量与PCA特征值分解

三维散点图与回归平面

n = [1.10, 0.83, -1]ᵀx₁yx₂
🎯 几何意义:法向量n = [b₁, b₂, -1]ᵀ垂直于回归平面,对应协方差矩阵Σ的最小特征向量。 拖动旋转滑块可从不同角度观察3D结构。
📈 回归方程
y = 1.1000x₁ + 0.8340x₂
🔺 法向量
n = [1.1000, 0.8340, -1]ᵀ
⚡ 特征值λ₃
0.002061

💡 核心洞察:二元正交回归将一元情况扩展到3D空间。法向量n = [b₁, b₂, -1]ᵀ垂直于回归平面, 对应3×3协方差矩阵Σ的最小特征值λ₃的特征向量。多元情况类似:D元回归对应D+1维空间中的超平面。

🎮 交互提示:• 在"3D可视化"中拖动旋转滑块观察不同角度 • 切换到"协方差矩阵"查看9个元素的对称结构 • 点击"公式推导"观看7步完整推导动画 • 对比一元(2×2矩阵)和二元(3×3矩阵)的扩展模式

17.5 多元正交回归

🚀 推广到D维矩阵

多元正交回归将思路推广到D维自变量矩阵X。通过构造增广矩阵[X̃, ỹ], 计算(D+1)×(D+1)协方差矩阵Σ,特征值分解后得到D+1个正交向量。 最小特征值λ_(D+1)对应的特征向量即为法向量n = [b₁, ..., b_D, -1]ᵀ。

关键公式:
  • • 公式(48): 中心化X_(∞×D)和y
  • • 公式(50): Σ_(D+1)×(D+1) = [X̃,ỹ]ᵀ[X̃,ỹ]
  • • 公式(51-52): 特征值分解Σ = VΛV⁻¹
  • • 公式(56-57): b_tls = (XᵀX - λ_(D+1)I)⁻¹Xᵀy
实际应用:
  • • 股票回归:用市场指数预测个股收益
  • • λ_(D+1) ≈ 0:X和y完全线性相关
  • • λ_(D+1)较大:X存在测量误差
  • • 对比OLS和TLS系数差异

17.5 多元正交回归

将正交回归推广到D维自变量矩阵X,构造(D+1)维超平面

🎬 矩阵运算流程(8步)

图14:协方差矩阵与特征值分解

[X̃, ỹ]
n×(D+1)
Compute
covariance matrix
→
Σ
■
■
■
■
■
■
■
■
■
■
■
■
■
■
■
■
(D+1)×(D+1)
Eigen
decomposition
→
V
v_(D+1)
📌 关键步骤:增广矩阵[X̃,ỹ]经过协方差运算得到(D+1)×(D+1)矩阵Σ, 特征值分解后,最小特征值λ_(D+1)对应的特征向量v_(D+1)即为法向量n的方向。
1
步骤1:数据中心化
公式(48)
X̃ = X - E(X), ỹ = y - E(y)
D维自变量和因变量全部中心化
2
步骤2:构造增广矩阵
公式(49)
[X̃, ỹ] → n×(D+1)矩阵
将X和y合并为增广数据矩阵
3
步骤3:计算协方差矩阵
公式(50)
Σ_(D+1)×(D+1) = [X̃,ỹ]ᵀ[X̃,ỹ]
(D+1)×(D+1)对称正定矩阵
4
步骤4:特征值分解
公式(51-52)
Σ = VΛV⁻¹
λ₁ ≥ λ₂ ≥ ... ≥ λ_(D+1)
5
步骤5:选择最小特征向量
公式(54)
v_(D+1) 对应 λ_(D+1)
n平行于v_(D+1),垂直于超平面
6
步骤6:提取法向量
公式(54)
n = [b₁, b₂, ..., b_D, -1]ᵀ
法向量的D+1个分量
7
步骤7:求解回归系数
公式(56-57)
b_tls = (XᵀX - λ_(D+1)I)⁻¹Xᵀy
当λ_(D+1)≠0时,X和y共线性强
8
步骤8:计算截距
公式(61)
b₀ = E(y) - [E(x₁),...,E(x_D)]b
回归超平面通过数据中心

💡 核心洞察:多元正交回归是一元和二元的自然推广。增广矩阵[X̃,ỹ]的维度为n×(D+1), 协方差矩阵Σ的维度为(D+1)×(D+1),法向量n = [b₁,...,b_D,-1]ᵀ平行于最小特征向量v_(D+1)。 当λ_(D+1)→0时,TLS趋近OLS,说明X和y完全线性相关。

🎮 交互提示:• 在"矩阵运算"中播放8步推导动画,理解从数据到系数的完整流程 • 切换到"几何角度"观察D维超平面的正交化过程 • 查看"运算流程"了解中心化→正交化→推导的数据变换 • 对比"OLS vs TLS"系数差异,理解X误差对回归结果的影响

正交回归通用框架总结

🔄 PCA与正交回归的关系

正交回归通过PCA分解数据矩阵[X, y],获得正交化的主成分向量。最后一个主成分(最小特征值对应)垂直于数据分布的主要方向, 其他D个主成分构成回归超平面。

一元回归:
  • • 数据点分布在2D平面
  • • v₁:第一主成分(回归线方向)
  • • v₂:第二主成分(垂直方向)
多元回归:
  • • 数据点分布在高维空间
  • • v₁,...,vD:构成回归超平面
  • • vD+1:垂直于超平面
📐

正交回归几何原理

通过PCA主成分分析构造正交空间

图2&6:正交回归与PCA分解关系

v₁v₂n(E(x), E(y))xy
🎯 v₁(第一主成分)
• 特征值最大的方向
• 平行于回归直线切线
• 数据变化最大的方向
📐 v₂(第二主成分)
• 特征值次小的方向
• 平行于回归直线法向量
• v₂ ⊥ v₁(正交关系)
⊥ n(法向量)
• n = [-1, b₁]ᵀ
• n // v₂(平行关系)
• 用于求解斜率b₁

💡 关键关系:回归直线通过数据中心(E(x), E(y)), 方向与第一主成分v₁平行,垂直于第二主成分v₂。 因此可以用v₂作为法向量求解回归系数。

17.6 主成分回归 PCR

🎯 PCR核心思想

主成分回归(PCR)是一种降维回归方法。与TLS不同,PCR中y不参与PCA分解, 仅对自变量X进行PCA,获得D个正交主成分,然后选择前P个(P<D)主成分构造超平面, 最后用OLS将y投影到这个主成分空间。

步骤1:PCA分解

对X进行PCA,获得主成分V

步骤2:降维投影

Z = X·V,投影到前P个主成分

步骤3:OLS回归

在Z空间对y进行OLS回归

📊

主元回归 PCR

Principal Components Regression

图18:PCR完整流程

主元回归(PCR)通过PCA对自变量X降维,再用主成分Z进行OLS回归。 关键:y不参与PCA,只对X进行降维。

完整流程概览
1
① X标准化 → X̃
2
② PCA分解:X̃ᵀX̃ = VΛVᵀ
3
③ 选择前P个主成分
4
④ 投影:Z = X̃V
5
⑤ OLS回归:y = Zbz + ε
6
⑥ 系数转换:bx = Vbz

🔑 PCR关键特性:(1) y不参与PCA,仅X正交化; (2) 选择前P个主成分降维; (3) 在主成分空间Z进行OLS回归; (4) 通过bx=Vbz转换回原空间。 PCR适合处理自变量间高度相关的情况。

17.7 偏最小二乘回归 PLSR

🔄 PLSR核心算法

偏最小二乘回归(PLSR)是对PCR的改进。与PCR不同,PLSR在降维过程中同时考虑X和y的信息, 利用y与X列向量的相关性构造权重,通过迭代算法逐步生成主元。每个主元都包含了X和y的协方差信息。

迭代算法(7步循环):
  1. 1. 中心化X和y
  2. 2. 计算权重w = (X(i))Ty(i)(y参与)
  3. 3. 构造主元z = X(i)w
  4. 4. X在z上投影得v
  5. 5. 更新X残差:X(i+1) = X(i) - zvT
  6. 6. y在z上投影得b
  7. 7. 更新y残差:y(i+1) = y(i) - bz
🔄

偏最小二乘回归 PLSR

Partial Least Squares Regression

PLSR迭代算法流程

步骤1: 中心化X⁽⁰⁾, y⁽⁰⁾迭代循环步骤2-7步骤2: 计算ww = (X⁽ⁱ⁾)ᵀy⁽ⁱ⁾步骤3: 构造zz = X⁽ⁱ⁾w步骤4: X投影v = (X⁽ⁱ⁾)ᵀz/(zᵀz)步骤5: 更新XX⁽ⁱ⁺¹⁾ = X⁽ⁱ⁾ - zvᵀ迭代X步骤6: y投影b = zᵀy/(zᵀz)步骤7: 更新yy⁽ⁱ⁺¹⁾ = y⁽ⁱ⁾ - bz迭代yy参与
🔑 核心特点
• y参与权重计算
• 迭代算法(步骤2-7循环)
• 同时考虑X和y的方差
• 每次迭代生成一个主元
📊 权重w计算
• w = (X⁽ⁱ⁾)ᵀy⁽ⁱ⁾
• 衡量y与X列向量相关性
• 相关性高的列权重大
• 单位化处理
🎯 主元z构造
• z = X⁽ⁱ⁾w
• X列向量加权组合
• 等价于投影过程
• 包含X和y的信息

🔑 PLSR核心要点:(1) y参与权重w计算; (2) 迭代算法,每次生成一个主元; (3) 同时考虑X的方差和X-y的协方差; (4) 主元z包含X和y的信息; (5) 适合高维、多重共线性数据。

方法对比与总结

📊 TLS vs OLS

OLS:仅y有误差,最小化y方向残差
TLS:X和y都有误差,最小化正交距离
关系:TLS回归线 = PCA第一主成分
应用:测量误差存在于X和y时用TLS

🎯 PCR vs PLSR

PCR:仅X做PCA,y不参与,一次性完成
PLSR:X和y同时参与,迭代算法
优势:PLSR预测性能通常更好
应用:高维稀疏数据、多重共线性

🔑 核心要点

  • • TLS(正交回归):[X, y]一起PCA,最后一个主成分垂直于回归超平面
  • • PCR(主成分回归):仅X做PCA,选前P个主成分,在主成分空间OLS回归
  • • PLSR(偏最小二乘):y参与权重计算,迭代生成主元,同时考虑X和y的协方差
  • • 共同目标:处理多重共线性、降维、提高回归稳定性和预测性能

✅ 本章完成

本章通过4个交互式组件详细展示了基于PCA的三种回归方法:正交回归(TLS)、主成分回归(PCR)和偏最小二乘回归(PLSR)的原理、算法和应用场景。