2. 因子漂移的数学定义:均值漂移、方差漂移、分布形态漂移
因子漂移(Factor Drift)是指量化因子在时间序列上的统计分布特征发生显著变化的现象。在量化风控中,准确识别漂移类型是设置有效告警阈值的前提。本章从数学定义出发,系统阐述三种核心漂移形态:均值漂移、方差漂移和分布形态漂移,并给出对应的检验方法。
2.1 均值漂移(Mean Shift)
均值漂移是最直观的漂移形式,指因子序列的期望值在某个时间点后发生结构性改变。数学上,若因子序列 \( X_t \) 在时间 \( t_0 \) 前后满足:
E[X_t] = μ₁, t < t₀
E[X_t] = μ₂, t ≥ t₀
且 |μ₂ - μ₁| > δ(δ为告警阈值)
则判定发生均值漂移。常用检测方法包括:
- 累积和(CUSUM)检验:对序列累积偏差进行监控,适合在线实时检测。
- 滑动t检验:比较滑动窗口内均值差异,适合离线分析。
- 贝叶斯变点检测:通过后验概率推断变点位置,适合低频因子。
实践提示:均值漂移告警阈值 δ 通常设为因子历史标准差的 0.5~2 倍。对于高波动因子(如动量因子),建议使用相对阈值(如百分比变化)而非绝对阈值。
2.2 方差漂移(Variance Shift)
方差漂移关注因子波动率的结构性变化。当因子序列的方差在某个时间点后显著增大或减小时,即使均值未变,也会导致风险模型失效。数学定义如下:
Var[X_t] = σ₁², t < t₀
Var[X_t] = σ₂², t ≥ t₀
且 |σ₂² - σ₁²| / σ₁² > γ(γ为告警阈值)
常用检测方法:
| 方法 | 原理 | 适用场景 |
|---|---|---|
| F检验 | 比较两个独立样本的方差比 | 离线、有明确分割点 |
| Levene检验 | 对非正态分布更稳健 | 因子分布偏斜时首选 |
| 滑动标准差监控 | 实时计算窗口内标准差 | 在线告警系统 |
注意:方差漂移常被均值漂移掩盖。建议先对因子序列进行去均值处理(如中心化),再单独检测方差变化,避免误报。
2.3 分布形态漂移:KS检验与JS散度
分布形态漂移是最全面的漂移度量,它不局限于均值或方差,而是检测整个概率分布的变化。本节重点介绍两种主流方法:KS检验和JS散度。
2.3.1 KS检验(Kolmogorov-Smirnov Test)
KS检验通过比较两个经验分布函数的最大垂直距离来判断分布是否相同。对于参考分布 \( F_1(x) \) 和当前分布 \( F_2(x) \),KS统计量定义为:
D = sup_x |F₁(x) - F₂(x)|
其中:
- D ∈ [0, 1],值越大表示分布差异越大
- 当 D > D_critical(临界值)时,拒绝分布相同的原假设
KS检验的优缺点:
- 优点:非参数方法,无需假设分布形态;对位置和形状变化都敏感。
- 缺点:对尾部差异不敏感;在大样本下容易过度敏感。
2.3.2 JS散度(Jensen-Shannon Divergence)
JS散度是基于信息熵的分布距离度量,是KL散度的对称化改进版本。对于两个概率分布 \( P \) 和 \( Q \),JS散度定义为:
JS(P || Q) = ½ KL(P || M) + ½ KL(Q || M)
其中 M = ½ (P + Q)
KL(P || Q) = Σ P(x) log(P(x) / Q(x))
JS散度的特性:
| 特性 | 说明 |
|---|---|
| 对称性 | JS(P||Q) = JS(Q||P),比KL散度更公平 |
| 有界性 | 取值范围 [0, log2],便于设定统一阈值 |
| 平滑性 | 对分布重叠区域敏感,适合连续监控 |
工程建议:KS检验适合作为快速筛查工具(计算复杂度 O(n log n)),JS散度适合作为精细度量工具(需要先估计概率密度)。在量化因子漂移告警系统中,建议将两者结合使用:先用KS检验做粗筛,再用JS散度做精确定量。
2.4 三种漂移的数学关系与选择策略
在实际应用中,三种漂移并非互斥,而是存在层级关系:
- 均值漂移是分布位置的变化,属于一阶矩漂移。
- 方差漂移是分布离散度的变化,属于二阶矩漂移。
- 分布形态漂移涵盖所有阶矩的变化(包括偏度、峰度等),是最全面的度量。
选择策略建议:
| 场景 | 推荐漂移类型 | 理由 |
|---|---|---|
| 高频因子、低延迟告警 | 均值漂移 | 计算简单,响应快 |
| 风险因子、波动率敏感策略 | 方差漂移 | 直接反映风险变化 |
| 低频因子、模型重训练触发 | 分布形态漂移 | 全面检测,减少误报 |
| 多因子组合监控 | KS检验 + JS散度 | 兼顾敏感性与稳定性 |