- 非负矩阵分解 NMF:把资产收益矩阵压成可解释的基与权重
PCA 的成分有正有负,你没法把 PC1 读成『40% 科技 + 30% 消费』——因为它允许负载荷,本质是方差最大的正交方向,不是构成。NMF 强制 W、H 全非负,分解出的每个基就是一个可加的『主题』,每个资产是这些主题的非负叠加,读起来像占比。合成实验:12 个资产由 3 个非负时间主题混合而成,NMF 乘法更新 400 次把重构误差从随机初值压到 2.536,还原的时间基激活与真实基相关 0.82~0.92、权重矩阵相关 0.80~0.91;PCA 拿同样数据,58.3% 的载荷是负的,PC1 根本没法解释成资产构成。秩选择靠误差肘部:K 从 1→2→3 时误差 17.48→10.98→2.52 断崖下跌,K=3 之后拐平(2.52→2.51→2.30)精确对上真实秩。纯 numpy 实现 Lee-Seung 乘法更新,拆穿 NMF 唯一解/成分自动对齐/负值数据也能用/秩越大越好/基一定有金融意义五类陷阱(中阶)。
12 min Chinese - 非线性 Granger 因果:用神经网络把『谁预测谁』的单向箭头放宽
线性 Granger 因果检验只问一个问题:x 的滞后项能否线性地改善对 y 的预测。但如果 x 通过 x² 驱动 y——波动传导、恐慌放大这类金融常见机制——线性 F 检验会完全漏检。合成实验实测:y 被 0.6·x²(t-1) 强驱动,线性 F 统计量只有 0.17(临界值 3.0),检验结论『无因果』;换成 16 隐单元的小 MLP,加入 x 滞后让样本外 MSE 从 2.72 降到 1.35(改善 50.5%),而线性回归加同样的 x 滞后只改善 1%。显著性用置换检验解决:打乱 x 滞后重训 30 次,最大伪改善仅 3.9%,真实改善 50.5% 的 p 值 < 0.033。方向准确率 74.2%,简单择时把日均收益从 0.10 抬到 0.51。诚实说明:NN Granger 的检验功效换来了解释性损失;置换检验计算量是线性检验的百倍;非线性因果在真实数据中远比合成数据微弱,且极易与波动聚集混淆。拆穿『相关为零=无关系』『NN 改善=真因果』『因果=可交易』等误区(中高阶)。
14 min Chinese - One-Class SVM 异常检测:用高维边界圈出『不正常』的交易日
高斯类方法(马氏距离)默认『正常』只有一个中心,偏离中心越远越异常。但真实市场的正常状态往往是多峰的——平静区制和承压区制是两团各自正常的云。麻烦就藏在两团之间的『山谷』:那些既不像平静、也不像承压的交易日,恰恰是最危险的,而马氏距离会把山谷判成中心(AUC 仅 0.080,方向都反了)。One-Class SVM 用 RBF 核学一条非凸的支撑边界,把两团正常各自圈住、山谷留在外面:合成实验 1000 个正常日(两区制)+ 30 个山谷异常日,OC-SVM AUC 0.961、top-30 命中 33%,而马氏距离几乎为零。纯 numpy 实现带盒约束单纯形投影的对偶求解器,附 ν / γ 双参数敏感性曲线与五类真实陷阱(中阶)。
14 min Chinese - 置换不变集合建模:用 DeepSets 处理无序资产集合
组合层面的建模有个被普遍忽视的结构问题:一篮子资产是『集合』不是『序列』——把 8 只股票的特征按任意顺序摊平喂给 MLP,同一个组合换个排列顺序,模型输出就变。DeepSets(Zaheer et al., NeurIPS 2017)给出通用解:先对每只资产独立编码 φ(x_i),再做对称池化(sum/mean),最后 ρ 读出——数学上可表达一切置换不变函数。本文用纯 numpy 从零实现 DeepSets(含手写反向传播),在组合尾部风险聚合任务上诚实实测:DeepSets R²=0.90 优于摊平 MLP 的 0.79 与手工聚合特征的 0.78,置换后输出偏移 1.8e-15(数值零)而 MLP 偏移达目标标准差的 39%;但变集合大小泛化诚实翻车——训练只见 K=8,测试 K=12 时 sum-pooling R² 崩到 -6.2。并拆穿池化随便选/摊平加增广就行/万能逼近=实际可学/变 K 免费泛化/组合建模必用集合网络五类真实陷阱(中阶)。
17 min Chinese - 量化开发者的 Python 技术栈:从数据处理到机器学习的完整工具链
量化开发者的 Python 技术栈 - halo的技术博客
11 min Chinese - 分位数 RNN 风险预测:用分位损失给出收益区间
点预测答不出「明天最坏跌多少」。分位数 RNN(QRNN)把 RNN 的隐状态接 5 个输出头,用 pinball 损失同时学 τ=0.05/0.25/0.5/0.75/0.95 五条条件分位数——隐状态自动记住波动聚集,区间随市场松紧收放。纯 numpy 从零实现 Elman RNN + 截断 BPTT + 分位损失(手推 pinball 次梯度),在 GARCH(1,1)+t(5) 合成收益上样本外 1000 步实测:QRNN pinball=0.2720 逼近 Oracle(真实 σ+t 分位)的 0.2694,90% 区间覆盖 88.5%,区间宽度与真实波动相关 0.861——碾压滚动历史分位的 0.137;但诚实告败:EWMA-高斯(RiskMetrics,2 个参数)pinball=0.2717 与 QRNN 打平,因为数据生成过程恰好是它的主场。真实翻车实测:独立训练 5 个分位数模型 → 1.9% 时间步分位数交叉(q̂₀.₀₅ > q̂₀.₂₅),联合训练+单调重排才干净;高波动 regime 覆盖率掉到 86.8%。拆穿区间=分布/覆盖率达标=校准/深度必胜EWMA/交叉不重要/合成赢=实盘赢五类陷阱(中阶)。
14 min Chinese - 稳健协方差 MCD 估计:用最小协方差行列式抗住极端值污染
协方差矩阵是组合优化、风险模型、配对交易的地基,但样本协方差有个致命弱点——单点崩溃:只要几个极端值,整个相关结构就被拖歪。合成实验(真实相关 0.7,10% 样本被反向污染):经典相关系数直接崩到 −0.068(连符号都错了),MCD 稳健估计还原到 0.611。距离-距离图上 MCD 把 40 个污染点里的 27 个甩到右上方(FP 仅 1),经典马氏距离只抓到 11 个。最扎心的是组合权重:真实最小方差权重是 (1.04, −0.04),经典协方差给出 (0.62, 0.38)——把该做空的资产配成了 38% 多头,MCD 给出 (0.95, 0.05) 基本还原。核心机制:在所有样本子集里找行列式最小(最紧致)的那 h 个点估协方差,极端值天然行列式大、被排除在外。附一致性校正因子、C-step 迭代、以及『稳健≠无脑抗噪,h 选太大照样被污染拉偏』的反面教材(中高阶)。
17 min Chinese - 得分匹配生成金融序列:用去噪分数匹配合成行情
生成式模型要学分布 p(x) 却卡在归一化常数 Z 上。得分匹配(Hyvärinen 2005)绕开 Z——只学分数 s(x)=∇log p(x),它与 Z 无关。去噪分数匹配 DSM(Vincent 2011)更妙:给数据加噪 x̃=x+σε,让网络学预测 (x−x̃)/σ²,等价于「从噪声指回干净数据的方向」;采样用 Langevin 动力学沿分数场爬向高密度区。这正是当今扩散模型(Diffusion)的数学地基。纯 numpy 从零实现 DSM 闭式最优解(Parzen/Tweedie 去噪器)+ Langevin 采样,在「平静态+危机态」混合的重尾金融收益上实测:生成样本还原资产相关 ρ=0.49(真实 0.54)、下尾联动 P(B跌|A跌)=0.45(真实 0.47),重尾与左偏形状 QQ 图基本对齐;但诚实翻车——Langevin 步长 δ 太大方差爆炸(δ=0.2 时 std 误差 9.7)、太小混合慢覆盖不足,且低密度区分数估计误差随距离线性上升(斜率 7.1),采样进不去稀有危机区。拆穿分数匹配免归一化就免费/单尺度够用/Langevin 随便调/生成即真实/直接造行情五类陷阱(中阶)。
12 min Chinese
返回
博客
第 21 页 · 显示 8 / 1161 篇文章
按年份查看 →