什么是因子衰减#
因子衰减(Factor Decay)是指量化因子在被发现并广泛使用后,其超额收益逐渐被套利力量侵蚀的现象。
一个经典的例子是价值因子(Book-to-Market)。Fama-French 在1992年发表价值因子后,该因子的IC(信息系数)在随后的20年里持续下降。

衰减的三大力量#
1. 套利竞争#
当某个因子被学术论文或业界报告公开后,大量资金会涌入该策略,导致:
- 因子暴露于更拥挤的交易
- 买卖价差扩大
- 因子收益率被”预支”
2. 风险溢价再平衡#
如果因子收益本质上是某种风险溢价(如价值因子承担倒闭风险),那么当市场对该风险的认识发生变化时,溢价会重新定价。
3. 微观结构变化#
交易规则、市场参与者结构、监管环境的变化,都会导致因子与收益之间的统计关系断裂。
如何检测因子衰减#
IC衰减检验#
计算因子IC值在时间序列上的斜率:
import numpy as np
import pandas as pd
def calculate_ic_decay(factor_values, forward_returns, window=12):
"""计算因子IC的衰减趋势"""
dates = factor_values.index
ic_series = []
for i in range(window, len(dates)):
ic = spearmanr(
factor_values.iloc[i-window:i].values.flatten(),
forward_returns.iloc[i-window:i].values.flatten()
)[0]
ic_series.append(ic)
# 线性回归检测衰减趋势
X = np.arange(len(ic_series)).reshape(-1, 1)
slope = LinearRegression().fit(X, ic_series).coef_[0]
return slope # 负值表示衰减python多空组合收益衰减#
跟踪因子多空组合的累计净值,观察是否出现:
- 夏普比率下降
- 最大回撤加深
- 收益分布的偏度变化
应对因子衰减的策略#
1. 因子组合动态加权#
不采用固定权重,而是根据因子的近期IC表现动态调整:
def dynamic_factor_weighting(factor_ic_history, lookback=24):
"""基于近期IC表现动态调整因子权重"""
recent_ic = factor_ic_history.iloc[-lookback:]
# 指数加权IC
ew_ic = recent_ic.ewm(halflife=6).mean().iloc[-1]
# 转换为权重(IC越高权重越大)
weights = ew_ic / ew_ic.abs().sum()
return weights.clip(lower=0) # 剔除负IC因子python2. 引入另类数据#
当传统因子衰减时,另类数据可能提供新的Alpha来源:
- 卫星图像 → 零售停车场饱和度
- 信用卡数据 → 实时消费趋势
- 社交媒体情绪 → 散户情绪指标
3. 因子正交化#
将新因子与已衰减因子做正交化处理,剔除冗余信息:
from sklearn.linear_model import LinearRegression
def orthogonalize_factor(new_factor, decayed-factors):
"""将新因子与已衰减因子正交化"""
model = LinearRegression().fit(decayed-factors, new_factor)
residual = new-factor - model.predict(decayed-factors)
return residual # 纯净的新因子python实战案例:动量因子的衰减与复兴#
动量因子在2009-2019年间经历了显著衰减(尤其是2019年的”动量崩溃”),但通过在动量因子中引入:
- 残差动量(剔除行业暴露)
- 时间序列动量(跨资产类别)
- 衰减调整权重
动量策略在2020年后重新获得超额收益。
总结#
因子衰减是量化投资中的”红皇后效应”——必须不断奔跑才能留在原地。应对衰减的关键是:
- 持续研发新因子(尤其是另类数据因子)
- 动态监控因子IC衰减趋势
- 采用机器学习方法捕捉因子间的非线性关系
核心要点:因子衰减不是因子的终结,而是策略进化的起点。