2. 风险归因基础理论:因子模型简介
风险归因的核心在于将投资组合的总风险拆解为可解释的组成部分。因子模型(Factor Model)提供了这一拆解的理论框架,它假设资产收益率受一组共同因子(Common Factors)和资产特异性扰动的影响。理解 CAPM 与 Fama-French 多因子模型,是掌握后续 Spark 归因计算的前提。
2.1 单因子模型:CAPM
资本资产定价模型(CAPM)是最早、最简洁的因子模型。它将资产收益率与市场组合收益率之间的线性关系作为唯一解释变量。
| 概念 | 符号 | 含义 |
|---|---|---|
| 无风险利率 | \(R_f\) | 通常取短期国债收益率 |
| 市场收益率 | \(R_m\) | 市场组合(如沪深300)的收益率 |
| 市场风险溢价 | \(R_m - R_f\) | 承担市场风险获得的超额回报 |
| Beta 系数 | \(\beta\) | 资产对市场因子的敏感度 |
| Alpha | \(\alpha\) | 模型无法解释的超额收益 |
CAPM 的回归方程:
R_i - R_f = α_i + β_i * (R_m - R_f) + ε_i
其中,\(\beta_i\) 衡量系统性风险,\(\varepsilon_i\) 代表特质风险。CAPM 的局限性在于仅用一个市场因子解释所有资产收益,实证中常出现无法解释的截面差异。
2.2 多因子模型:Fama-French 三因子
Fama 和 French 在 CAPM 基础上增加了两个与公司特征相关的因子,显著提升了模型对股票收益率截面差异的解释力。
- 市场因子(MKT):与 CAPM 的市场风险溢价相同。
- 规模因子(SMB):做多小市值股票、做空大市值股票的收益率差。
- 价值因子(HML):做多高账面市值比(价值股)、做空低账面市值比(成长股)的收益率差。
三因子模型回归方程:
R_i - R_f = α_i + β_mkt * (R_m - R_f) + β_smb * SMB + β_hml * HML + ε_i
后续还衍生出 Carhart 四因子(加入动量因子 WML)和 Fama-French 五因子(加入盈利因子 RMW 和投资因子 CMA),但三因子仍是业界最常用的基准模型。
实务提示: 在金融风控场景中,多因子模型不仅用于收益归因,更用于风险归因。通过因子载荷(Factor Loading)的波动性,可以量化组合对特定风格因子的暴露风险。
2.3 风险分解:系统风险 vs 特质风险
基于因子模型,组合的总风险(方差)可以分解为两个正交部分:
| 风险成分 | 定义 | 来源 | 是否可分散 |
|---|---|---|---|
| 系统风险 | 由共同因子波动引起的风险 | 市场、规模、价值等宏观/风格因子 | 不可分散 |
| 特质风险 | 由资产特异性扰动引起的风险 | 公司事件、行业微观冲击 | 可通过分散化降低 |
数学表达(以三因子为例):
总风险 = 系统风险 + 特质风险
Var(R_i) = β_mkt² * Var(MKT) + β_smb² * Var(SMB) + β_hml² * Var(HML) + 2 * 协方差项 + Var(ε_i)
系统风险 = β_mkt² * Var(MKT) + β_smb² * Var(SMB) + β_hml² * Var(HML) + 交叉项
特质风险 = Var(ε_i)
在组合层面,特质风险随持仓数量增加而衰减,而系统风险保持不变。这正是投资组合分散化的理论基础。
Spark 计算视角: 系统风险的计算需要因子协方差矩阵与载荷向量的矩阵乘法,适合用 DataFrame 的
crossJoin 和 agg 实现;特质风险则直接对残差序列求方差,可并行处理。
2.4 因子模型风险归因流程
下图展示了从因子模型到风险归因的完整数据流:
2.5 因子模型在风控中的关键作用
- 风险预算:通过因子风险贡献(Factor Risk Contribution, FRC)确定组合对每个因子的暴露上限。
- 压力测试:模拟因子收益率极端波动时组合的损失。
- 绩效归因:区分 Alpha(选股能力)与 Beta(市场暴露)的收益来源。
- 组合优化:在因子层面进行均值-方差优化,而非资产层面。
注意: 因子模型假设因子收益率与残差不相关,且残差之间不相关。实际数据中可能存在因子择时、残差截面相关等问题,需要在 Spark 建模时进行诊断(如 Durbin-Watson 检验、残差相关性矩阵检查)。