风险分解:把组合风险拆开看
风险预算的核心,说白了就是搞清楚一件事:组合的总风险到底是谁贡献的?
我刚开始做组合管理时,总觉得只要把资产配好,风险自然就分散了。直到有一次,我管理的组合在市场大跌时回撤远超预期——明明各资产看起来都很分散啊。后来一查才发现,某个看似安全的债券基金,其实和股票的相关性高得吓人。
嗯,从那以后,我养成了一个习惯:每次调仓前,必须做一次完整的风险分解。
1. 边际风险贡献:多投一块钱,风险变多少?
先问一个问题:如果你在组合里多投1块钱到某个资产,组合的总风险会增加多少?
这个增量,就是边际风险贡献(Marginal Risk Contribution, MRC)。
数学上,它是对组合风险函数求偏导:
MRC_i = ∂σ_p / ∂w_i
其中 σ_p 是组合标准差,w_i 是资产 i 的权重。
我个人习惯用矩阵形式来算,这样更直观:
import numpy as np
def marginal_risk_contribution(weights, cov_matrix):
"""
计算每个资产的边际风险贡献
weights: 资产权重向量
cov_matrix: 协方差矩阵
"""
portfolio_var = weights @ cov_matrix @ weights
portfolio_std = np.sqrt(portfolio_var)
# 边际风险贡献 = (协方差矩阵 @ 权重) / 组合标准差
mrc = (cov_matrix @ weights) / portfolio_std
return mrc
我在项目中遇到过一个问题:有些资产权重很小,但边际风险贡献却很大。这说明什么?说明这个资产虽然仓位轻,但它和组合里其他资产的相关性很高,一有风吹草动就会放大风险。
核心理解:边际风险贡献告诉你的是「增量风险」,而不是「存量风险」。它衡量的是最后一单位投资带来的风险变化。
2. 风险贡献:每个资产到底背了多少锅?
边际风险贡献是「边际」概念,而风险贡献(Risk Contribution, RC)是「总量」概念。它回答的是:组合总风险中,有多少百分比是由资产 i 引起的?
公式很简单:
RC_i = w_i × MRC_i
而且有一个漂亮的性质:所有资产的风险贡献之和,正好等于组合的总风险。
∑ RC_i = σ_p
这就像把一张大饼切成几块,每块的大小就是每个资产的风险贡献。你想想看,如果某个资产占了总风险的60%,那它就是这个组合的「风险大户」。
我习惯用百分比来展示,这样更直观:
def risk_contribution(weights, cov_matrix):
mrc = marginal_risk_contribution(weights, cov_matrix)
rc = weights * mrc
rc_pct = rc / rc.sum() * 100
return rc_pct
一个小技巧:我经常把风险贡献画成饼图或堆叠柱状图。一眼就能看出哪些资产是「风险黑洞」,哪些是「风险避风港」。
3. 一个完整的例子
假设我们有三个资产:股票、债券、黄金。权重分别是50%、30%、20%。协方差矩阵如下:
| 股票 | 债券 | 黄金 | |
|---|---|---|---|
| 股票 | 0.04 | 0.01 | 0.005 |
| 债券 | 0.01 | 0.01 | 0.002 |
| 黄金 | 0.005 | 0.002 | 0.0225 |
我们来算一下:
weights = np.array([0.5, 0.3, 0.2])
cov = np.array([[0.04, 0.01, 0.005],
[0.01, 0.01, 0.002],
[0.005, 0.002, 0.0225]])
rc_pct = risk_contribution(weights, cov)
print(f"股票风险贡献: {rc_pct[0]:.1f}%")
print(f"债券风险贡献: {rc_pct[1]:.1f}%")
print(f"黄金风险贡献: {rc_pct[2]:.1f}%")
结果可能会让你意外:股票虽然只占50%权重,但风险贡献可能高达70%以上。债券和黄金加起来才30%。
为什么会这样?因为股票的波动率大,而且和其他资产的相关性也高。这就是风险分解的价值——让你看到权重背后的真实风险分布。
我曾经踩过的坑:有一次我只看权重来调整组合,觉得债券配了40%应该很安全。结果风险分解后发现,债券的风险贡献其实只有15%,而某个另类资产虽然只占5%,风险贡献却高达25%。那次之后,我再也不敢忽视风险分解了。
4. 风险分解的核心逻辑图
下面这张图展示了风险分解的完整流程:
5. 实际应用中的几个要点
- 不要只看权重:权重大的资产不一定风险贡献大,反之亦然。我见过一个组合,某资产权重只有5%,但风险贡献超过20%。
- 关注边际变化:如果你打算加仓某个资产,先算一下它的边际风险贡献。如果太高,说明加仓会不成比例地增加风险。
- 动态调整:市场在变,协方差矩阵也在变。我建议至少每月做一次风险分解,尤其是在市场波动剧烈的时候。
我的个人习惯:每次调仓前,我会先跑一遍风险分解,看看当前的风险分布是否和我的风险预算一致。如果不一致,就调整权重,直到各资产的风险贡献达到目标比例。这就是风险预算的核心思想——不是控制权重,而是控制风险贡献。
好了,风险分解就讲到这里。记住一句话:你控制不了风险,除非你先分解它。
公众号:蓝海资料掘金营,微信deep3321