- 稳健 PCA 与异常因子剥离:用主成分把离群股票的影响压下来
标准 PCA 对极端离群点几乎零容忍——一只复牌补跌或业绩暴雷的股票,就能把整个截面因子结构拽偏。本文 numpy 从零实现稳健 PCA(主成分追踪 PCP),在 N=60/T=250、3% 离群污染的合成数据上把低秩恢复相关从 0.968 拉回 0.998,离群点 100% 召回且不误报,还给出完整 Python 与三张真实计算图。
12 min Chinese - Discord 异常子序列:用最不像别处的片段捕捉市场异常
Discord 是 Matrix Profile 的另一半:MP 曲线的低谷是模体(有孪生兄弟的重复形态),最高峰就是 discord——全序列里最找不到相似者的子序列,天然的无监督异常检测器,不需要定义『什么是异常』,只需要回答『哪段最不像别处』。但本文最重要的发现是一个刻意保留的失败案例:discord 的对比度完全取决于『正常段有多相似』。60 天 × 50 bar 共享日内模板的结构化本底上,三种植入异常(闪崩回补/波动冻结/锯齿振荡)全部被 top-3 discord 精确命中,对比度 2.1×;同样的异常搬到 IID 随机游走本底上,命中 0/3——因为 IID 世界里每一段都独一无二,MP 中位数 7.22 与峰值 7.83 挤在一起,异常淹没在『处处都是异常』的本底里。这解释了为什么 discord 在日内高频数据上是利器、在日线收益上近乎无用。消融实验补齐工程细节:排除区不设则模体端先失效(谷值 3.05→2.13)而 discord 端相对鲁棒;窗口长度 m<异常尺度一半时命中率归零;无异常对照世界的 MP 峰值也有 5.06——discord 分数没有天然阈值,必须用对照分布校准。最无争议的落地:数据质量监控(坏 tick/卡死/拼接错误的形状都独一无二)与流动性冻结检测。
13 min Chinese - Matrix Profile 模体发现:线性时间找出价格序列里的重复形态
Matrix Profile 是 Keogh 团队 2016 年提出的时间序列挖掘框架:对每个长度为 m 的子序列,记录它到全序列最近邻(排除自身邻域)的 z-normalized 欧氏距离。这一条曲线同时给出两样东西——低谷是模体(有孪生兄弟的重复形态),高峰是 Discord(独一无二的异常段)。3000 日合成价格实验完整复现:5 处植入的三重震荡模体被 MP 精确定位(top-1 对距离 1.06,位置 599/1899 对上植入点 600/1900),闪崩+chirp 扫频异常被 MP 最大值一击命中;MASS 算法用 FFT 把单条查询距离压到 O(n log n),全对距离矩阵热图直观展示『MP = 每行最小值』。事件研究部分把模体匹配当交易信号跑了 60 日前向路径对比随机基线,并诚实交代三个坑:z-norm 会抹掉幅度信息、平凡匹配需要排除区、以及『历史形态重复出现』与『形态有预测力』是两个完全不同的命题。
14 min Chinese - 孤立森林异常检测:用随机孤立路径给极端行情打分
传统异常检测先给『正常』建模——估个分布、算个距离,再看谁离得远。孤立森林反着来:异常点本来就少、本来就偏,随机切几刀就能把它单独隔出来,正常点则要切很多刀。于是『被孤立所需的平均路径长度』直接变成异常分数,不需要距离度量、不需要分布假设。合成实验:1000 个交易日、4 维特征(绝对收益、5 日已实现波动、成交量 z、相关性尖峰 z),注入 25 个崩盘日。孤立森林 AUC 0.984,只看收益 z-score 的单变量基线 AUC 0.782——差距来自多维联动:单独看每一维都不算极端、但『量价相关性同时抬升』的日子,只有多维方法抓得住。top-25 命中精度 60% vs 基线 44%。森林规模敏感性:5 棵树 AUC 0.964,50 棵 0.986,100 棵之后彻底平台化——路径长度平均的收敛速度快得惊人。纯 numpy 实现(随机特征+随机分割点递归建树、c(n) 修正项、2^(-h/c) 分数归一化),拆穿分数有绝对阈值/无监督=不用验证/维度越多越好/能检测=能预测/训练集必须干净五类陷阱(中阶)。
12 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 - GARCH 跳跃模型:把跳跃成分从连续波动里剥离开来
标准 GARCH(1,1) 把收益方差当成一条连续的、同质的过程, 可真实市场的波动是『连续扩散 + 偶发跳跃』两层叠起来的。跳跃一发生, 方差里就多出 p·σ_j² 一项, 普通 GARCH 会把这部分错算进连续波动, 在跳跃日把条件波动高估 21.1%。本文用 ARMA(1,1)-GARCH(1,1)+高斯跳跃(jump-GARCH)把两层拆开: 过滤得到『连续波动』、用 ±2.5σ 残差阈值检测跳跃(召回 40.3%、精确 65.8%)、并量化跳跃方差占日度总方差的 20.7%。3000 日合成样本实证, 附完整 Python 与六类真实陷阱(中阶)。
12 min Chinese - Beneish M-Score 财务操纵识别:用 8 个比率给财报打假分
财报是法律文本不是真相——当利润表和现金流量表背离时,往往有人在修饰数字。Beneish(1999) 用 8 个相邻两年的财务比率写一个概率式打假分 M,M>−1.78 即高操纵嫌疑。附完整 Python 与六类真实陷阱(高阶)。
11 min Chinese
返回