1. 风险归因基础
1.1 风险归因的定义
风险归因(Risk Attribution)是将投资组合的总风险分解到不同维度(如资产类别、行业、因子、个股或决策层),量化每个组成部分对总风险的贡献度。其核心公式可表达为:
总风险 = Σ(各成分风险贡献) + 交叉项(协方差贡献)
在量化实现中,最常用的风险归因模型基于边际风险贡献(Marginal Contribution to Risk, MCR)和成分风险贡献(Component Contribution to Risk, CCR):
- 边际风险贡献(MCR):持仓权重微小变动引起的组合风险变化量。
- 成分风险贡献(CCR):各资产对组合总风险的绝对贡献,满足可加性。
关键公式: 若组合方差为 σ²p = wᵀΣw,则第 i 个资产的成分风险贡献为 CCRi = wi × (Σw)i / σp,且 Σ CCRi = σp。
1.2 在投资组合管理中的价值
风险归因在投资组合管理中扮演着诊断工具和决策引擎的双重角色。其核心价值体现在以下五个方面:
| 价值维度 | 具体作用 | 应用场景 |
|---|---|---|
| 风险透明化 | 揭示风险来源,避免"黑箱"管理 | 向管理层/客户解释风险暴露 |
| 集中度监控 | 识别单一资产/因子过度集中 | 风险限额预警、压力测试 |
| 组合优化 | 指导权重调整以降低非系统性风险 | 再平衡、风险预算分配 |
| 绩效归因补充 | 区分"运气"与"能力"的风险调整后收益 | 基金经理考核、策略评估 |
| 动态风控 | 支持流式决策,实时跟踪风险变化 | 日内风控、高频调仓 |
实战提示: 在SQL实现中,风险归因通常以持仓快照表和协方差矩阵表为基础,通过窗口函数和矩阵运算完成逐层聚合。这是后续章节的核心技术路线。
1.3 与绩效归因的区别
风险归因与绩效归因是投资分析中互补但不相同的两个工具。绩效归因回答"收益从何而来",风险归因回答"风险从何而来"。两者在分析对象、方法论和输出结果上存在本质差异:
| 对比维度 | 风险归因 | 绩效归因 |
|---|---|---|
| 分析对象 | 风险(波动率、VaR、CVaR) | 收益(超额收益、绝对收益) |
| 核心问题 | 风险来自哪里? | 收益来自哪里? |
| 分解方法 | 协方差分解、边际贡献 | Brinson分解、因子回归 |
| 时间维度 | 前瞻性(基于历史数据预测) | 后视性(基于已实现数据) |
| 输出指标 | 风险贡献占比、风险预算偏差 | 选股收益、配置收益、交互收益 |
| 决策导向 | 风险控制、限额管理 | 业绩评价、归因问责 |
常见误区: 不要将风险归因与绩效归因混为一谈。风险归因关注事前风险暴露,绩效归因关注事后收益来源。在SQL实现中,风险归因需要协方差矩阵(历史窗口计算),而绩效归因只需要收益率序列(实际发生数据),两者的数据表结构和计算逻辑完全不同。
1.4 风险归因的数学基础
在进入SQL实现之前,需要明确风险归因的数学表达。假设组合有 N 个资产,权重向量 w = (w₁, w₂, ..., wN)ᵀ,协方差矩阵为 Σ:
组合方差:σ²_p = wᵀ Σ w = Σᵢ Σⱼ wᵢ wⱼ σᵢⱼ
第 i 个资产的边际风险贡献(MCR):
MCRᵢ = ∂σ_p / ∂wᵢ = (Σ w)ᵢ / σ_p
第 i 个资产的成分风险贡献(CCR):
CCRᵢ = wᵢ × MCRᵢ = wᵢ × (Σ w)ᵢ / σ_p
可加性验证:Σᵢ CCRᵢ = σ_p
在SQL中,上述计算通常通过窗口函数和自连接实现,核心步骤包括:
- 从持仓表获取权重向量 w
- 从协方差矩阵表获取 Σ 的上下三角元素
- 计算 Σw 向量(矩阵向量乘法)
- 逐资产计算 CCR 并汇总
SQL实现要点: 协方差矩阵通常以长格式存储(asset_i, asset_j, covariance),通过 GROUP BY 和 SUM(CASE WHEN) 实现矩阵乘法。这是后续第3-5章的核心技术细节。