2. 风险因子体系:系统性因子与特质性因子的识别与分类
风险因子是组合风险归因的原子单元。一个因子的定义质量直接决定了归因结果的可解释性与稳定性。本章将因子体系拆解为系统性因子与特质性因子两大类别,并给出可操作的识别与分类标准。
2.1 因子分类总览
从风险来源的广度与可分散性出发,所有因子可归入以下两类:
| 类别 | 定义 | 可分散性 | 典型数量 | 归因用途 |
|---|---|---|---|---|
| 系统性因子 | 影响全市场或大部分资产的共同风险源 | 不可分散 | 3–10 个 | 解释组合与基准的主动回报 |
| 特质性因子 | 仅影响单个资产或极小群体的特有风险 | 可分散(理论上) | 数百至数千个 | 残差风险监控与压力测试 |
实践提示:在 API 设计中,系统性因子通常作为必选参数传入;特质性因子则通过可选参数或独立端点暴露,避免请求体过于臃肿。
2.2 四大经典系统性因子
现代投资组合理论中,以下四个因子构成了最常用的系统性因子集:
- 市场因子(Market):代表整体股票市场的超额收益,通常以宽基指数(如沪深 300、标普 500)为代理变量。是所有多因子模型的基准因子。
- 规模因子(Size):小市值股票相对于大市值股票的超额收益。Fama-French 三因子模型的核心扩展因子。
- 价值因子(Value):高账面市值比(低估值)股票相对于低账面市值比(高估值)股票的超额收益。常以 PB、PE 或 EP 排序构建。
- 动量因子(Momentum):过去 6–12 个月表现优异的股票在未来短期内的延续效应。Carhart 四因子模型的标志性因子。
API 字段映射建议:在风险归因 API 的
factor_exposure 对象中,建议使用 mkt、size、value、mom 作为因子标识符,并附带 loading(暴露度)与 return_contribution(收益贡献)两个子字段。
2.3 系统性因子与特质性因子的识别边界
识别一个因子属于系统性还是特质性,需通过以下三个维度进行判定:
- 截面覆盖度:该因子是否对超过 80% 的资产有显著暴露?若是,倾向系统性。
- 时间稳定性:因子收益的符号与幅度在 3 年以上是否保持统计显著?若是,倾向系统性。
- 经济解释力:是否存在公认的经济学或行为金融学解释?若是,倾向系统性。
以下表格展示了常见因子的分类归属:
| 因子名称 | 截面覆盖度 | 时间稳定性 | 经济解释力 | 最终分类 |
|---|---|---|---|---|
| 市场因子 | 高(>95%) | 高 | 强(CAPM) | 系统性 |
| 行业因子 | 中(30–70%) | 中 | 中(行业轮动) | 系统性 |
| 个股特质波动 | 低(<5%) | 低 | 弱(残差) | 特质性 |
| 流动性冲击 | 中(20–50%) | 低 | 中(市场微观结构) | 特质性 |
2.4 因子体系架构图
下图展示了从原始数据到因子暴露的完整链路,以及系统性因子与特质性因子在归因流程中的位置:
2.5 特质性因子的处理策略
特质性因子虽然数量庞大,但在 API 设计中可通过以下策略高效管理:
- 聚合为残差项:在标准归因 API 中,特质性因子不单独返回,而是合并为
residual_risk字段。 - 按风险预算拆分:对于需要深度归因的场景,提供
specific_risk_breakdown端点,按行业或风格分组展示特质风险。 - 阈值过滤:仅当特质性因子暴露超过预设阈值(如 |t| > 2)时,才在归因报告中单独列出。
常见误区:不要将所有统计显著的因子都归为系统性因子。一个因子可能在历史回测中显著,但缺乏经济解释力,此时应归为特质性因子,避免过度拟合。
2.6 因子分类的 API 实现示例
以下代码展示了如何在风险归因 API 中定义因子分类结构:
{
"factor_classification": {
"systematic": {
"factors": ["mkt", "size", "value", "mom"],
"description": "四大经典系统性因子",
"covariance_method": "shrinkage"
},
"idiosyncratic": {
"factors": ["residual"],
"description": "特质性因子聚合为残差项",
"estimation_method": "sample_cov"
}
},
"exposure_matrix": {
"asset_1": {"mkt": 1.05, "size": -0.23, "value": 0.45, "mom": 0.12, "residual": 0.34},
"asset_2": {"mkt": 0.98, "size": 0.56, "value": -0.11, "mom": -0.08, "residual": 0.21}
}
}
2.7 因子分类决策流程图
当需要判断一个新因子应归入哪一类时,可参考以下决策流程:
2.8 因子分类清单(快速参考)
以下清单可作为日常因子分类的快速参考:
| 因子名称 | 分类 | 典型代理变量 | API 标识符 |
|---|---|---|---|
| 市场因子 | 系统性 | 沪深 300 超额收益 | mkt |
| 规模因子 | 系统性 | 小市值 - 大市值 | size |
| 价值因子 | 系统性 | 高 BM - 低 BM | value |
| 动量因子 | 系统性 | 过去 12 个月收益 | mom |
| 行业因子 | 系统性 | 申万一级行业哑变量 | ind_xx |
| 个股特质波动 | 特质性 | 残差标准差 | residual |
| 流动性冲击 | 特质性 | Amihud 非流动性指标 | liq |
API 设计建议:在
/v1/factors/classification 端点中,返回一个包含 systematic 与 idiosyncratic 两个数组的 JSON 对象,每个数组内包含因子名称、描述、代理变量及历史统计量,方便前端直接渲染分类表格。