4. 协方差矩阵与相关性:多资产间的“关系网”

各位同学,咱们今天聊一个在组合投资里绕不开的话题——协方差矩阵与相关性。说白了,就是搞清楚你手里的几只股票、债券或者商品,它们之间到底是“同甘共苦”还是“各玩各的”。

我个人习惯把协方差矩阵看作是整个组合的“关系网”。你想想看,如果你买的两个资产总是同涨同跌,那分散风险的效果就大打折扣。反过来,如果一个涨一个跌,那组合的波动就会被平滑掉不少。嗯,这就是我们今天要深挖的核心。

4.1 为什么协方差矩阵这么重要?

我记得刚入行那会儿,有个老前辈跟我说:“小伙子,别光盯着单个资产的收益率,你得看它们怎么一起动。” 当时我还不理解,直到自己动手做了一个简单的双资产组合回测,才发现其中的门道。

假设你有两个资产A和B。单独看,A的波动率是20%,B是15%,看起来都还行。但如果A和B高度正相关(比如相关系数0.9),那组合的波动率可能还在17%左右,并没有显著降低。可如果它们负相关(比如-0.3),组合波动率可能直接降到10%以下。这就是相关性的魔力。

核心观点: 协方差矩阵量化了资产间的联动关系,是计算组合风险(方差)的基石。没有它,你算出来的风险就是“瞎子摸象”。

4.2 从协方差到相关性:标准化后的“亲密度”

协方差的值受资产自身波动率影响很大。比如股票A波动大,股票B波动小,它们之间的协方差可能看起来很大,但这不代表它们真的“很亲密”。这时候,相关性系数ρ就派上用场了。

公式很简单:

ρ_AB = Cov(A, B) / (σ_A * σ_B)

ρ的取值范围在-1到1之间。1代表完全正相关,-1代表完全负相关,0代表不相关。我在项目中遇到过最极端的例子是两只同行业的ETF,相关系数高达0.95,那基本就是“穿一条裤子”。

相关系数范围 含义 对组合风险的影响
0.7 ~ 1.0 强正相关 分散效果差,组合风险接近加权平均
0.3 ~ 0.7 中等正相关 有一定分散效果,但有限
-0.3 ~ 0.3 弱相关或不相关 分散效果较好,组合风险显著降低
-0.7 ~ -0.3 中等负相关 分散效果很好,能对冲部分风险
-1.0 ~ -0.7 强负相关 几乎可以完全对冲(现实中极少见)
避坑指南: 我曾经犯过一个错——直接用历史协方差矩阵做未来预测。结果市场风格一变,原本低相关的资产突然高度相关,组合回撤直接把我打懵了。记住:协方差矩阵是时变的,需要定期更新。

4.3 实战:用Python计算协方差矩阵

光说不练假把式。咱们直接上代码,看看怎么用Python算协方差矩阵和相关性矩阵。这里我习惯用pandas,因为它处理时间序列数据太方便了。

import pandas as pd
import numpy as np

# 假设我们有3只股票的历史收益率数据
# 数据格式:每列是一只股票,每行是一个时间点的收益率
data = {
    '股票A': [0.02, -0.01, 0.03, 0.01, -0.02],
    '股票B': [0.01, 0.02, -0.01, 0.03, 0.01],
    '股票C': [-0.01, 0.01, 0.02, -0.02, 0.03]
}
df = pd.DataFrame(data)

# 计算协方差矩阵
cov_matrix = df.cov()
print("协方差矩阵:")
print(cov_matrix)

# 计算相关性矩阵
corr_matrix = df.corr()
print("\n相关性矩阵:")
print(corr_matrix)

输出结果会告诉你每对资产之间的协方差和相关系数。比如股票A和股票B的协方差是正数,说明它们倾向于同向变动;如果是负数,那就是反向变动。

注意: 协方差矩阵必须是对称且半正定的。如果你算出来的矩阵不对称(比如因为数据缺失),那你的组合优化模型可能会报错。我建议用 np.linalg.eigvals() 检查一下特征值是否都非负。

4.4 知识体系:一张图看懂协方差与相关性

为了让你更直观地理解,我画了一张SVG图,把今天讲的核心逻辑串起来。

协方差矩阵与相关性:知识体系 多资产收益率数据 计算协方差矩阵 标准化为相关性 应用:组合风险计算、资产配置优化 输出结果 组合波动率 | 有效前沿 | 风险分解 对冲比例 | 风险预算

从这张图你可以看到,整个流程就是从原始收益率数据出发,先算协方差矩阵,再标准化成相关性矩阵,最后应用到组合风险计算和资产配置中。每一步都有它的意义,缺一不可。

4.5 相关性对组合风险的影响:一个简单例子

咱们用个具体数字来感受一下。假设你有两个资产,权重各50%。资产1的波动率是20%,资产2的波动率是15%。

  • 如果相关系数ρ = 0.9:组合波动率 ≈ 17.1%
  • 如果相关系数ρ = 0.0:组合波动率 ≈ 12.5%
  • 如果相关系数ρ = -0.5:组合波动率 ≈ 9.0%

看到了吧?同样的权重,仅仅因为相关性不同,组合风险可以差一倍。这就是为什么我们在做多资产配置时,一定要把相关性考虑进去。我个人的经验是,尽量找那些相关性低甚至负相关的资产类别,比如股票+债券、A股+美股、或者商品+债券。

一句话总结: 协方差矩阵告诉你资产间如何联动,相关性告诉你联动的强度。两者结合,你才能精准控制组合风险。

好了,今天的内容就到这里。记住,下次你看到别人给你推荐一个“低风险高收益”的组合,先别急着信,拿协方差矩阵算一算,看看里面的相关性是不是在“捣鬼”。


专注资料整理