← 返回模块
Q2.6.4.2beta 可读 · 未来付费校验通过内容版本 2026-05-26

降维与表示学习

2.6.4 · 无监督学习与强化学习 · 数学与统计能力

Hook:没有 Barra 许可证的统计风险模型

周二早上,某中型多空对冲私募给初级量化研究员的任务:周五交一套「统计风险模型」——把沪深300 成分股最近 1000 个交易日的日度收益拆成几个共同因子加特异噪声,做成数据驱动的因子模型(factor model)。没有 Barra 模型(Barra model)授权,基本面数据要月底涨价,只有 1000×300 的收益面板。周三下午她对 300×300 样本协方差矩阵(covariance matrix)做特征分解(eigendecomposition),第一特征值约是第二的 17 倍,对应特征向量在每支股票上都是正分量。她撞上了每个量化人都会撞一次的事实:股票收益面板上,第一主成分就是市场模式。本课要把这个意外变成纪律。

上一课分群,本课换坐标系

上一课把样本 {x1,,xn}\{x_1, \ldots, x_n\} 看作云团,问哪些观测应该聚到一起;k-均值与高斯混合做的是分群。本课换问题:云团在 Rd\mathbb{R}^d 沿哪些方向延展?主成分分析(principal component analysis, PCA)是线性解答,t-SNE、UMAP 与自编码器是它的非线性后继。

PCA 视角一:最大方差投影

XRn×dX \in \mathbb{R}^{n \times d} 各列去均值,记 Σ^=1nXX\widehat{\Sigma} = \tfrac{1}{n} X^\top X 为样本协方差。在所有单位方向里,投影后方差最大的方向是

w1  =  argmaxw=1  wΣ^w,Σ^  =  1nXX.w_1 \;=\; \arg\max_{\|w\| = 1} \; w^\top \widehat{\Sigma} \, w, \qquad \widehat{\Sigma} \;=\; \frac{1}{n} X^\top X.

写拉格朗日 L(w,μ)=wΣ^wμ(ww1)\mathcal{L}(w, \mu) = w^\top \widehat{\Sigma} w - \mu(w^\top w - 1),令 wL=0\nabla_w \mathcal{L} = 0,得 Σ^w1=μw1\widehat{\Sigma} w_1 = \mu w_1w1w_1 是特征向量,目标值就是对应特征值——取最大那个。第 kk 主成分是 Σ^\widehat{\Sigma}w1,,wk1w_1, \ldots, w_{k-1} 正交补上的最大特征向量。实对称半正定矩阵的特征分解保证特征值非负、特征向量两两正交。

PCA 视角二:最小重构误差

在所有秩-KK 正交投影 WWW W^\top 中(其中 WRd×KW \in \mathbb{R}^{d \times K}WW=IKW^\top W = I_K),哪一个把信息损失压到最小?

minWRd×K,WW=IK  i=1nxiWWxi2.\min_{W \in \mathbb{R}^{d \times K},\, W^\top W = I_K} \; \sum_{i=1}^n \| x_i - W W^\top x_i \|^2.

展开平方、用 WW=IKW^\top W = I_K,原问题化为 maxtr(WΣ^W)\max\, \mathrm{tr}(W^\top \widehat{\Sigma} W)。Ky Fan 迹定理直接给答案:WW 装的是 Σ^\widehat{\Sigma} 的前 KK 个特征向量。两个视角落到同一子空间——这是 Pearson (1901) 与 Hotelling (1933) 给出的原始等价。

SVD 把两个视角拼到一起

dd 不大时直接对 Σ^\widehat{\Sigma} 做特征分解;nndd 都大时对 XX 做奇异值分解(singular value decomposition, SVD):

X  =  USV,Σ^  =  1nVS2V,λk  =  sk2n.X \;=\; U S V^\top, \qquad \widehat{\Sigma} \;=\; \frac{1}{n} V S^2 V^\top, \qquad \lambda_k \;=\; \frac{s_k^2}{n}.

VV 的列就是主成分方向,USU S 是主成分得分。PCA 在数值上就是中心化数据矩阵的截断 SVD——sklearn 的 randomized_svd 走的就是这条路,比先组装 XXX^\top X 再做特征分解稳定。

方差贡献率与「PC1 = 市场模式」

特征值排序 λ1λd0\lambda_1 \geq \cdots \geq \lambda_d \geq 0,总和即总方差 tr(Σ^)\mathrm{tr}(\widehat{\Sigma})。前 KK 个分量解释的方差比例是

VE(K)  =  k=1Kλkj=1dλj.\mathrm{VE}(K) \;=\; \frac{\sum_{k=1}^K \lambda_k}{\sum_{j=1}^d \lambda_j}.

λk\lambda_k 画成碎石图(scree plot)找肘点,或截到 VE(K)\mathrm{VE}(K) 越过 80%;Bai-Ng (2002)、Onatski (2010) 有更严谨判据,但桌面先用的总是肘点。沪深300 一千天面板上 VE(1)\mathrm{VE}(1) 通常落在 40%–50%,v1v_1 在几乎每支股票上都是正分量——这就是 Connor-Korajczyk (1986) 统计因子模型的数据驱动复本,与 Fama-French / Barra 模型互为基本面与统计两套对照。PC2、PC3 把周期股(银行、地产)与防御股(消费、医药)分开,每条特征向量的分量就是各股票对该统计因子的因子暴露(factor loading)。

R2\mathbb{R}^2 中,若特征值是 λ1,λ2\lambda_1, \lambda_2,沿与 PC1 夹角 θ\theta 的单位方向投影方差为 cos2θλ1+sin2θλ2\cos^2\theta \cdot \lambda_1 + \sin^2\theta \cdot \lambda_2。拖动 θ\theta 看视角一的动态:

Formula Explorer

cos(theta)*cos(theta)*lambda1 + sin(theta)*sin(theta)*lambda2

非线性表亲:t-SNE 与 UMAP

PCA 是线性方法——做风险模型刚好,做高维分群可视化就力不从心。Van der Maaten 与 Hinton 的 t-SNE (2008) 在输入空间用高斯相似度 pjiexp(xixj2/2σi2)p_{j|i} \propto \exp(-\|x_i - x_j\|^2 / 2\sigma_i^2),2D 输出用 Student-tt 相似度 qijq_{ij},最小化 ijpijlog(pij/qij)\sum_{ij} p_{ij} \log (p_{ij} / q_{ij})。带宽 σi\sigma_i 按困惑度(perplexity,常取 5–50)逐点定。McInnes 等 (2018) 的 UMAP 把 KL 换成模糊单纯复形交叉熵,速度快一个数量级。

两者都是​​可视化​​工具。图上的簇大小与簇间距没有几何意义,只反映局部邻域目标;引用时只能说「这里看出四个簇」,不能说「A 离 B 比离 C 远两倍」——这是 A 股因子研究里反复踩的坑。

自编码器与表示学习的桥梁

把线性投影换成可学的非线性映射对。自编码器是一对编码器 fϕ:RdRKf_\phi : \mathbb{R}^d \to \mathbb{R}^K 与解码器 gψ:RKRdg_\psi : \mathbb{R}^K \to \mathbb{R}^d,联合最小化

L(ϕ,ψ)  =  1ni=1nxigψ(fϕ(xi))2.L(\phi, \psi) \;=\; \frac{1}{n} \sum_{i=1}^n \| x_i - g_\psi(f_\phi(x_i)) \|^2.

若两端都是线性——fϕ(x)=Axf_\phi(x) = A xgψ(z)=Bzg_\psi(z) = B z——Baldi 与 Hornik (1989) 证明:最优 BB 的列空间恰好张成 Σ^\widehat{\Sigma} 的前 KK 个特征方向,即 PCA 子空间(AABB 相差一个可逆线性变换)。把两端换成深度网络(复用 2.6.3 的前馈架构与反向传播),就放弃闭式解,换来对弯曲流形的拟合。去噪自编码器(Vincent et al. 2008)、VAE(Kingma & Welling 2014)以及现代自监督方法(SimCLR、MoCo、何恺明的 MAE)都是这一线索的后继,正式推导属于后续模块。

三视图合并

算例:R3\mathbb{R}^3 中四个点的 PCA

x1=(2,0,0)x_1 = (2, 0, 0)^\topx2=(0,2,0)x_2 = (0, 2, 0)^\topx3=(2,0,0)x_3 = (-2, 0, 0)^\topx4=(0,2,0)x_4 = (0, -2, 0)^\top。列均值为零,XX 已中心化。

Exercise

(i) 算 Σ^=14XX\widehat{\Sigma} = \tfrac{1}{4} X^\top X,凭对称性读出特征值与一组标准正交特征基,给出一种 (w1,w2)(w_1, w_2) 选择。

(ii) 把每个 xix_i 投影到 w1w_1w2w_2,验证投影坐标精确重构原样本。

(iii) 确认 VE(1)=0.5\mathrm{VE}(1) = 0.5VE(2)=1\mathrm{VE}(2) = 1,并解释为什么重特征值 λ1=λ2\lambda_1 = \lambda_2 使 (x,y)(x, y) 平面内 w1w_1 的选取是任意的,而秩-2 子空间本身唯一。

提示
XXX^\top X 是对角阵:第 1、2 列在行空间互相正交,第 3 列恒为零。除以 4 后特征值是 (2,2,0)(2, 2, 0)
提示
(iii):λ1=λ2=2\lambda_1 = \lambda_2 = 2 是二重特征值,所以 (x,y)(x, y) 平面任一组标准正交基都是合法 PC 选择;方差贡献率只看特征值之和,与具体基向量无关。

实务陷阱

三类失败反复出现。​​协方差非平稳​​:沪深300 在 2015 年股灾、2018 年 Q4、2022 年 Q2 这些涨跌停成片的日子里 PC1 能吞掉 60% 以上方差,整段历史一锅煮会抹平不同 regime;实务用滚动窗口(常 252 天)或指数加权,配 Ledoit-Wolf 收缩。​​符号歧义​​:vkv_kvk-v_k 都满足特征值方程,朴素再拟合会让因子序列突然翻号;实务一般强制 vkv_k 在某只权重股上的分量为正。​​前视偏差​​:整段历史一次拟合再回测是初学者最常踩的坑——正确做法是每个再平衡点只用截至 tt 的样本估 Σ^t\widehat{\Sigma}_t 再向前预测;详见 López de Prado《金融机器学习进阶》第 8 章。

通向下一课

PCA、t-SNE、UMAP、自编码器、k-均值与 GMM 都在一批静态样本上跑,没有反馈回路——学习器读完数据出一个摘要,环境不会回头推你一把。但量化里的核心问题大多不是这样:CFFEX 的 IF 主力合约最优执行、SSE 50ETF 与 300ETF 期权的动态对冲、做市报价的库存控制,都是智能体动作、市场反应、下一状态与奖励由刚才动作决定的序列决策。下一课把这套结构形式化为马尔可夫决策过程,推贝尔曼方程,导出价值迭代、策略迭代与 Q 学习——这是把「优化目标」改写为「长期回报」的关键一步,也是 T+1 行情下把策略压成代码的算法骨架。