- 非线性 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 - Set Transformer 金融表征:用诱导点注意力聚合多资产
组合是集合不是序列,但 DeepSets 的「逐资产编码+对称池化」有个盲区:池化前每个资产互相看不见,成对交互(拥挤度、相似持仓共振)只能靠编码器隐式凑。Set Transformer(ICML 2019)把交互焊进结构:SAB 让集合内元素两两做注意力,PMA 用可学习种子向量做注意力池化,ISAB 用 m 个诱导点把 O(K²) 注意力砍成 O(K·m)。纯 numpy 从零实现 SAB+PMA(手写 einsum 反向传播,梯度校验 1e-9 级),在组合拥挤度聚合任务上实测:SetTransformer R²=0.843 > DeepSets-mean 0.831 ≈ 统计聚合+Ridge 0.830——成对交互任务上有真实但温和的优势;注意力矩阵与真实相似度结构吻合,置换偏移 1.4e-15;ISAB 实测 K=2048 时提速 55 倍。但诚实翻车:n=300 小样本下 SetTransformer 过拟合(train 0.92 / test 0.53),被 DeepSets(0.80)反杀——注意力参数多,先吃数据。拆穿注意力必胜/池化都一样/诱导点无损/交互自动学会/直接上实盘五类陷阱(中阶)。
14 min Chinese
返回
博客
第 13 页 · 显示 8 / 1096 篇文章
按年份查看 →