归因分析概述:什么是策略归因?为什么需要归因?
大家好,我是你们的老朋友。今天咱们聊聊策略归因。
说实话,我刚入行那会儿,对归因这事挺不屑的。觉得策略能赚钱就行,管它为什么赚呢?后来被市场狠狠教育了几次,才明白——不知道钱怎么赚来的,就不知道钱会怎么亏回去。
什么是策略归因?
简单说,策略归因就是拆解策略的收益来源。
你写了一个多因子模型,每天跑交易。月底一看,赚了5%。这时候你该问自己:这5%到底从哪来的?是选股选得好?还是择时踩对了?还是纯粹运气好?
归因分析,就是回答这些问题的工具。
核心定义:策略归因是将策略的总收益,按照不同的因子、行业、风格或交易行为进行分解,量化每个组成部分的贡献度。
我习惯把归因分成两类:
- 业绩归因:解释收益的来源(因子、行业、个股选择)
- 风险归因:解释风险的来源(波动率、回撤、因子暴露)
两者相辅相成。只看收益不看风险,容易翻车。
为什么需要归因?
这个问题我问过很多新人。答案五花八门,但核心就三点:
- 验证策略逻辑:你的策略到底有没有alpha?还是只是运气?
- 诊断策略问题:亏钱了,是因子失效了?还是模型过拟合了?
- 优化策略配置:哪些因子该加权重?哪些该砍掉?
我在项目中遇到过一件事,印象特别深。有个策略回测曲线漂亮得不行,年化30%,回撤不到5%。结果实盘三个月就开始亏钱。一归因才发现——回测里80%的收益来自小市值因子,而实盘时小市值正好在杀估值。你说这归因重不重要?
避坑指南:我曾经见过一个团队,策略亏了20%还不做归因,硬扛了半年。最后发现是行业暴露出了问题——重仓了某个周期性行业,而那个行业正好在走下坡路。如果早点做归因,至少能及时止损。
多因子归因的核心思想
多因子归因,说白了就是回答一个问题:每个因子赚了多少钱?
它的核心思想其实很简单:
- 把策略的持仓,拆解到各个因子上的暴露
- 计算每个因子带来的收益贡献
- 汇总得到总收益的分解
举个例子。假设你有一个三因子模型:价值、动量、质量。某个月策略赚了5%。归因后可能发现:
| 因子 | 因子暴露 | 因子收益 | 贡献收益 |
|---|---|---|---|
| 价值 | 0.8 | 2% | 1.6% |
| 动量 | 0.5 | 3% | 1.5% |
| 质量 | 0.3 | 1% | 0.3% |
| 总贡献 | 3.4% |
剩下的1.6%哪去了?可能是行业暴露、个股选择、或者残差项。这就是归因的价值——把模糊的收益,变成清晰的账本。
个人经验:我建议新手先从简单的单期归因做起。别一上来就搞复杂的多期归因。先把一个时间切片搞清楚,再考虑时间序列上的变化。否则容易陷入细节,反而看不清大局。
多因子归因的数学框架
嗯,这里要稍微上点硬菜了。但别怕,我会用大白话讲。
多因子归因的数学基础,其实就是线性回归。你想想看:
R_p = Σ(β_i × f_i) + ε
其中:
- R_p 是策略收益
- β_i 是策略在第 i 个因子上的暴露
- f_i 是第 i 个因子的收益
- ε 是残差(无法被因子解释的部分)
说白了,就是把策略收益拆成两部分:因子能解释的和因子解释不了的。因子解释不了的,要么是alpha,要么是噪声。
我习惯用Python做归因,代码大概长这样:
import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression
# 假设我们有因子暴露矩阵和因子收益序列
# factor_exposures: 策略在各因子上的暴露 (n_factors,)
# factor_returns: 各因子的收益序列 (n_periods, n_factors)
def factor_attribution(factor_exposures, factor_returns):
"""
多因子归因分析
"""
# 计算因子贡献
factor_contribution = factor_exposures * factor_returns
# 总因子贡献
total_factor_return = np.sum(factor_contribution, axis=1)
# 残差 = 策略收益 - 因子贡献
residual = strategy_return - total_factor_return
return factor_contribution, residual
这段代码虽然简单,但核心逻辑都在里面了。实际项目中,你还需要处理因子之间的相关性、多重共线性等问题。嗯,这些后面章节会细讲。
归因分析的常见误区
做了这么多年归因,我总结几个常见坑:
- 过度依赖R²:R²高不代表归因准,可能是因子太多过拟合了
- 忽略因子相关性:因子之间高度相关时,归因结果会不稳定
- 只看收益不看风险:归因不仅要看赚了多少,还要看承担了多少风险
我曾经踩过的坑:有一次做归因,发现某个因子贡献特别大,兴奋得不行。后来仔细一看,那个因子和另一个因子相关性高达0.9。说白了,两个因子在解释同一件事。这种时候,归因结果就不可靠了。
本章小结
好了,咱们来捋一捋这章的核心:
- 策略归因就是拆解收益来源
- 归因能帮你验证逻辑、诊断问题、优化配置
- 多因子归因的核心是线性分解,把收益拆到每个因子上
- 注意因子相关性和风险调整,别被表面数字骗了
我个人觉得,归因分析是量化策略里最容易被忽视,但也是最值得花时间研究的环节。你想想看,一个策略能不能持续赚钱,关键不在于它赚了多少,而在于你知不知道它为什么赚。
下一章,咱们会深入讲归因的具体方法。今天先到这,消化一下。