halo 的技术博客

返回

协方差专题写到现在,所有方法都在同一个矩阵上死磕:收缩往目标拉(Ledoit-Wolf)、去噪剪特征值(Marchenko-Pastur)、稳健化换度量(Gerber 统计量)。这一篇换一个哲学:别把协方差当一个整体估计——把它拆成两块,分而治之。

POET(Principal Orthogonal complEment Thresholding,Fan, Liao & Mincheva 2013, JRSS-B)的拆法:

Σ=BΣFB低秩:K 个公共因子+Σu稀疏:残差协方差\Sigma = \underbrace{B \Sigma_F B'}_{\text{低秩:K 个公共因子}} + \underbrace{\Sigma_u}_{\text{稀疏:残差协方差}}

低秩部分用 PCA 硬提——市场、规模、价值这些公共因子制造了收益里绝大部分的共动;剩下的残差协方差假设稀疏——控制住公共因子后,两只随机股票之间应该没什么直接联系,有联系的只是少数同行业、同供应链的对子。稀疏的部分用阈值法处理,这套手艺我们在 Graphical Lasso 那篇见过近亲。

一句话:对角有结构的地方用低秩吃掉,剩下的当稀疏矩阵治。

一、为什么高维必须拆:N=100 时样本协方差的死法#

实验市场:N=100 只股票、10 个行业、3 个真实因子(市场 + 规模 + 价值),残差协方差是块对角的——行业内残差相关 0.25,跨行业为零。T=252,浓度比 c=N/T=0.4c = N/T = 0.4——这是货真价实的高维场景,不是 N=20 的玩具。

样本协方差在这里有 5050 个自由参数要从 25200 个观测里估,每个参数摊不到 5 个有效观测。看特征值谱:

特征值谱与因子数选择

左图:3 个因子特征值(尖峰)远离本体,与随机矩阵噪声带清晰分离——这是”尖峰协方差模型”(spiked covariance)的标准形状,也是 POET 能工作的结构前提。右图是特征值比值法选 K 的现场,注意一个实操陷阱:全局最大比值出现在 k=1(市场因子的特征值比第二名大太多,λ1/λ2\lambda_1/\lambda_2 霸屏),直接取 argmax 会选 K̂=1 漏掉两个弱因子。正确姿势是排除首峰后看次峰(k=3 处),或用 Bai-Ng 信息准则交叉验证。市场因子霸屏是股票数据的普遍现象,任何”取最大比值”的教科书伪代码在实盘数据上都要打这个补丁。

二、POET 两步走:PCA 提取 + 残差软阈值#

第二步是 POET 名字的来源(主正交补阈值)。阈值率 logN/T\sqrt{\log N / T} 来自高维统计的标准结论:稀疏矩阵中噪声元素的最大幅度以这个速率集中,超过它的才可信。“自适应”指阈值随元素自身的方差缩放(θij\sqrt{\theta_{ij}}),高波动股票对的残差协方差天然抖得凶,用统一阈值会误杀低波动对、放过高波动对。

阈值前后的残差相关矩阵长这样:

残差矩阵阈值前后对比

左:真实残差相关,干净的块对角(非零占比 9.1%)。中:PCA 残差的原始估计——块结构还在,但整个矩阵弥漫着采样噪声,非零占比 91.1%,噪声元素和信号元素的幅度犬牙交错。右:软阈值之后,非零占比压回 12.8%,行业块肉眼可见地浮出来。这一步和 Graphical Lasso 做的事同源——都是用稀疏性先验换取高维下的估计精度,区别是 GLasso 在精度矩阵上做 L1 优化(迭代、慢、有似然解释),POET 在协方差上做逐元素阈值(一步、快、纯非参数)。

三、最反直觉的实测:Frobenius 口径下各方法打平#

跑 30 次蒙特卡洛,四个 T 档位,比较五种估计器与真实协方差的距离。先看所有人都会先看的 Frobenius 误差:

T样本协方差纯因子(K=3,残差取对角)POET (K=3)POET (K=1)POET (K=8)
1260.680.680.660.630.68
2520.450.500.470.440.47
5040.340.440.380.360.37
10080.250.390.300.290.29

看到这张表的第一反应应该是:这也叫改进? 样本协方差在 T≥252 后反而是最好的,POET 的 K 选 1、3、8 几乎没差别,唯一明确掉队的是纯因子模型——它到 T=1008 还扛着 0.39 的误差不动,因为”残差无相关”的假设错了,行业内 0.25 的残差相关是它永远学不会的结构性偏差(和 CCM 那篇的偏差下限一个道理)。

但 Frobenius 距离由最大的那些元素主导,而协方差最大的元素是市场因子贡献的——所有方法都能估个大概。组合优化根本不消费 Σ\Sigma,它消费 Σ1\Sigma^{-1} 换精度矩阵口径(谱范数)再看同一批估计:

协方差口径 vs 精度矩阵口径

T样本协方差纯因子POET (K=3)
1262143.826.124.2
252197.025.122.1
50473.023.319.1
100838.322.217.3

灾难现场。T=126 时(c=0.79)样本协方差接近奇异,最小特征值趴在零附近,求逆把它放大成 2144 的误差——比 POET 差 89 倍。T=252 也还差 9 倍。而 POET 的逆矩阵天生良性:低秩 + 稀疏结构可以用 Sherman-Morrison-Woodbury 公式解析求逆,条件数被因子结构托住。

这是本文最想传递的一课:评估协方差估计器,Frobenius 距离是个误导性极强的指标。你的优化器消费的是逆矩阵,就用逆矩阵口径评估。 同一批估计,两个口径给出完全相反的排名。

四、GMV 判决#

老规矩,全局最小方差组合、真实协方差算实现波动率、30 次蒙特卡洛:

GMV 组合真实波动率

T样本协方差纯因子(残差对角)POET (K=3)真实协方差
12625.21%14.13%13.75%11.32%
25214.44%13.20%12.77%11.32%
50412.65%12.47%12.07%11.32%
100811.91%12.15%11.75%11.32%

三个读点:

其一,短窗口是屠杀。 T=126 时样本协方差 25.2% vs POET 13.8%——优化器在近奇异方向上加杠杆的老病(CCM 那篇的 456% 名场面的温和版),POET 靠结构约束直接免疫。

其二,纯因子模型的宿命是被反超。 T=126 时它和 POET 几乎打平(14.13% vs 13.75%)——短窗口下残差相关反正也估不准,扔掉无妨;但 T=1008 时它(12.15%)被样本协方差(11.91%)反超——数据多到样本协方差都能干活了,它还抱着错误的对角假设。POET 全程最优的原因恰恰是它的中庸:短窗口它像纯因子模型(阈值把大部分残差元素杀成零),长窗口它像样本协方差(阈值 logN/T\propto \sqrt{\log N/T} 随 T 自动放松,越来越多的真实残差相关被放行)。 这个自适应免调参,是 logN/T\sqrt{\log N / T} 这个速率送的。

其三,K 的容错性在组合口径尚可、在精度口径较差。 K=1 欠拟合把两个弱因子留在残差里,好在阈值步骤能部分接住(弱因子制造的残差相关是大面积的、能存活阈值);K=8 过拟合多提了 5 个噪声”因子”,每个都带进虚假结构。两者的 GMV 波动率比 K=3 差 0.2-0.5pp——不致命,但精度矩阵误差在短窗口差 10-25%。选 K 宁可稍微多也不要极端少,且永远别信”取特征值比值 argmax”的默认输出。

五、POET 与工具箱其他成员的关系#

方法结构先验干的活
LW 收缩无(往均匀目标拉)全矩阵压方差
MP 去噪谱结构(噪声带)剪噪声特征值、保留尖峰
GLasso精度矩阵稀疏L1 优化出条件依赖图
POET低秩 + 残差稀疏因子吃公共风险,阈值治残差

和 MP 去噪的关系最微妙:两者都保留尖峰特征值。区别在对”本体”的处理——MP 去噪把噪声带特征值压成常数(保迹),POET 对残差做的是逐元素阈值而不是谱操作,所以它能恢复残差里的块结构(行业相关),MP 去噪做不到(谱方法看不见元素位置)。如果残差真有稀疏结构,POET 严格更强;如果没有,MP 更稳。

和 GLasso 的正确配合方式在那篇文末已经预告过:真实市场的原始收益共享公共因子,条件依赖图根本不稀疏,必须先剥因子再对残差跑 GLasso——那个”先剥因子”的动作就是 POET 的第一步。POET 用软阈值处理残差,你完全可以把这一步换成 GLasso(拿到残差的精度矩阵和网络图),两个方法在这里合流。

六、诚实边界#

残差稀疏是假设,不是事实。 本文模拟里残差真的块对角,POET 赢是理所应当。真实市场里控制了 3-5 个统计因子后残差是否足够稀疏,没有保证——供应链、共同持股人、指数成员身份都制造着”因子外”的相关。好消息是阈值法对”近似稀疏”(大量小元素而非精确零)也有理论保证,坏消息是这个”近似”的程度没法事前验证。

阈值常数要调。 理论只给速率 logN/T\sqrt{\log N/T},常数 τmult\tau_{mult}(本文取 1.0)需要交叉验证。太小=噪声漏网,太大=误杀真实相关退化成纯因子模型。它和 GLasso 的 α 一样,是稀疏方法的公共税。

因子是统计的,不是经济的。 PCA 因子是方差最大化的数学产物,和 Barra 式基本面因子(行业、风格暴露已知)不同。如果你已经有可靠的基本面因子模型,用它的残差做阈值(POET 的思想、显式因子的实现)通常更稳——PCA 版 POET 的优势是不需要任何外部信息。

波动率非平稳没治。 POET 假设 Σ\Sigma 在窗口内恒定。真实波动率聚集的问题要靠 DCC-GARCHEWMA 那条时变路线,与 POET 的高维路线正交——Fan 后续工作里有两者结合的版本(时变因子载荷),工程上最简单的近似是对残差用 EWMA 加权后再阈值。

参考文献#

  1. Fan, J., Liao, Y., & Mincheva, M. (2013). Large Covariance Estimation by Thresholding Principal Orthogonal Complements. Journal of the Royal Statistical Society: Series B, 75(4).
  2. Bai, J., & Ng, S. (2002). Determining the Number of Factors in Approximate Factor Models. Econometrica, 70(1).
  3. Fan, J., Fan, Y., & Lv, J. (2008). High Dimensional Covariance Matrix Estimation Using a Factor Model. Journal of Econometrics, 147(1).
因子结构协方差 POET:用主成分加稀疏残差拼出高维协方差
https://blog.halo26812.eu.org/blog/factor-covariance-poet
Author halo
Published at 2026年7月28日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨