风险分解:把组合风险拆开看

风险预算的核心,说白了就是搞清楚一件事:组合的总风险到底是谁贡献的?

我刚开始做组合管理时,总觉得只要把资产配好,风险自然就分散了。直到有一次,我管理的组合在市场大跌时回撤远超预期——明明各资产看起来都很分散啊。后来一查才发现,某个看似安全的债券基金,其实和股票的相关性高得吓人。

嗯,从那以后,我养成了一个习惯:每次调仓前,必须做一次完整的风险分解

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. 风险分解的核心逻辑图

下面这张图展示了风险分解的完整流程:

风险分解核心逻辑 资产权重 w_i 各资产配置比例 协方差矩阵 Σ 资产间波动与相关性 组合标准差 σ_p σ_p = √(w'Σw) 边际风险贡献 MRC_i MRC_i = ∂σ_p / ∂w_i 风险贡献 RC_i RC_i = w_i × MRC_i 输出:各资产风险贡献百分比 ∑ RC_i = σ_p,风险完全分解

5. 实际应用中的几个要点

  • 不要只看权重:权重大的资产不一定风险贡献大,反之亦然。我见过一个组合,某资产权重只有5%,但风险贡献超过20%。
  • 关注边际变化:如果你打算加仓某个资产,先算一下它的边际风险贡献。如果太高,说明加仓会不成比例地增加风险。
  • 动态调整:市场在变,协方差矩阵也在变。我建议至少每月做一次风险分解,尤其是在市场波动剧烈的时候。

我的个人习惯:每次调仓前,我会先跑一遍风险分解,看看当前的风险分布是否和我的风险预算一致。如果不一致,就调整权重,直到各资产的风险贡献达到目标比例。这就是风险预算的核心思想——不是控制权重,而是控制风险贡献

好了,风险分解就讲到这里。记住一句话:你控制不了风险,除非你先分解它


公众号:蓝海资料掘金营,微信deep3321