因子投资-19-风险模型组合优化与归因

QUANT RESEARCH NOTE LESSON 19

信号给出想买什么,风险模型与优化决定买多少。机构组合需要控制行业、风格、个股、换手和相对基准风险,并解释收益来自因子暴露还是选股。本讲从 Barra 风格横截面模型到均值—方差目标和归因。

类型核心课程
模块研究工程
阅读约 5 分钟
材料10 节 · 1 段代码

本节解决什么问题

信号给出想买什么,风险模型与优化决定买多少。机构组合需要控制行业、风格、个股、换手和相对基准风险,并解释收益来自因子暴露还是选股。本讲从 Barra 风格横截面模型到均值—方差目标和归因。

前置知识与学习目标

需要第 02、05、10、17、18 讲。学完后能写出因子协方差与特质风险,理解纯因子组合、风险厌恶和约束,区分风险/收益归因与 Smart Beta,并说明预期收益误差为何通常比协方差误差更危险。

直觉与手算

三个股票预期月收益 1%、0.8%、0.6%。若只最大化预期收益,会把全部资金投第一只;但第一只估计误差只要 -0.3%,排序就改变。优化器会把微小均值差当确定事实并形成极端权重。

协方差虽也有误差,但它利用波动和共同运动的二阶信息,通常比均值更容易估。实践中常对 Alpha 强缩减、对权重加约束、对风险模型做结构化估计。

定义与公式

横截面风险模型

每天或每期:

B 是 N×K 行业与风格暴露,f 是 K×1 因子收益,ε 是 N×1 特质收益。加权横截面回归估 f 时,需要行业基准约束避免完全共线。

纯因子组合

纯因子组合对目标因子暴露为 1,对其他因子和市场约束为 0。它是由股票权重复制的理论组合,结果依赖权重矩阵、约束和可交易性;“纯”只针对模型中的线性暴露。

协方差分解

F 是 K×K 因子协方差,D 常取特质方差对角矩阵。因子结构用较少参数描述 N×N 股票协方差,但遗漏因子和特质相关仍会低估风险。

均值—方差与成本目标

μ 是预期收益,γ 是风险厌恶系数,w(0) 是当前漂移后持仓,C 是交易成本。γ 不是可随意调到回测最佳的按钮;应映射到风险预算或跟踪误差目标。

常见约束:

分别控制资金、个股、相对基准行业/风格和换手。无法成交股票还需冻结或限制交易方向。

风险与收益归因

收益归因可拆为基准、行业、风格、选股和交易贡献;风险归因拆为因子与特质方差/边际风险。两者不能混用:某因子贡献正收益不等于贡献了最多风险。

Smart Beta

Smart Beta 用透明规则系统暴露价值、质量、低波等因子,介于市值指数与主动管理。规则透明不意味着被动或无模型:股票池、权重、再平衡、缓冲、容量和因子定义仍是主动选择。

Python 最小实验

PYTHON 可复现实验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import numpy as np
from scipy.optimize import minimize

mu = np.array([0.010, 0.008, 0.006])
cov = np.array([
[0.040, 0.010, 0.008],
[0.010, 0.025, 0.006],
[0.008, 0.006, 0.016],
])
gamma = 4.0

def objective(w):
return -(mu @ w - 0.5 * gamma * (w @ cov @ w))

result = minimize(
objective,
x0=np.repeat(1 / 3, 3),
method="SLSQP",
bounds=[(0.0, 0.6)] * 3,
constraints=[{"type": "eq", "fun": lambda w: w.sum() - 1}],
)
weights = result.x

assert result.success
assert np.isclose(weights.sum(), 1.0, atol=1e-8)
assert np.all(weights >= -1e-8)
assert np.all(weights <= 0.6 + 1e-8)
print(weights, mu @ weights, np.sqrt(weights @ cov @ weights))

A 股实现注意事项

行业分类和风格暴露必须用历史版本;停牌与涨跌停股票要冻结或设置方向约束。市值、非线性规模、Beta、波动和流动性暴露需点时估计。交易单位、整手、现金、申赎与指数跟踪会让连续权重解不可直接成交。风险模型应在 2015 类压力期和板块制度变化中做回测外压力测试。

常见错误与边界

  • 直接把历史平均收益当精确 μ,得到极端权重。
  • 用全样本协方差回到过去。
  • 暴露高度共线却不设基准约束。
  • 优化只验证权重和为一,不复核行业、风格、换手。
  • 目标成本与实际成交成本口径不同。
  • 把归因残差自动解释为选股能力。
  • Smart Beta 名称掩盖微盘、行业或不可交易暴露。

预期收益误差常比协方差误差危险,因为最优化会主动追逐最高估计值。稳健做法包括信号缩减、排名化、权重上限、跟踪误差预算、成本惩罚和多情景优化。

原书与论文

原书第 4、5 章(PDF 文件页 158–223)对应因子组合、择时与实践。GRS 原文提醒模型评价要看联合定价误差:DOI。BAB 展示融资约束进入组合构造:DOI。

练习

  1. 将 μ 第一项减 0.3%,观察权重敏感性。
  2. 从 B、F、D 重建 Σ,并检查半正定性。
  3. 加行业偏离±5%、换手上限 20%。
  4. 比较收益贡献、方差贡献和边际风险贡献。
  5. 为一个价值 Smart Beta 指数写出缓冲和容量规则。

小结与下一步

风险模型用少量行业/风格因子和特质风险描述协方差,优化在预期收益、风险、成本与约束间权衡,归因解释事后来源。最危险的输入通常是被过度相信的预期收益。接下来的实验将直接制造偏差、加入约束并完成端到端报告。


因子投资-19-风险模型组合优化与归因
https://www.polarishaw.top/2026/07/17/因子投资-19-风险模型组合优化与归因/
作者
Polaris
发布于
2026年7月17日
许可协议