1、相关性基础:为什么资产配置要看相关性?协方差与相关系数的数学定义
做量化投资这些年,我见过太多人一上来就研究各种复杂的策略。但说实话,资产配置才是决定你收益曲线的核心。而相关性分析,就是资产配置的基石。
你想想看,如果你手里拿的全是同一类资产,比如全是科技股,那市场一波动,你的账户就像坐过山车。但如果你能搭配一些相关性低的资产,比如股票+债券+黄金,那整体波动就会平滑很多。这就是我们为什么要看相关性。
1.1 协方差:两个资产到底怎么走?
先聊协方差。它的数学定义很简单:
Cov(X, Y) = E[(X - μx)(Y - μy)]
说白了,就是看两个资产相对于各自均值的偏离程度。如果它们经常一起涨一起跌,协方差就是正的。如果一个涨一个跌,协方差就是负的。
我记得刚入行时,有个老交易员跟我说:「别只看协方差,它有个大问题——量纲不统一。」
什么意思?比如你拿茅台和工商银行算协方差,茅台的股价是几百块,工行才几块钱,算出来的协方差数值会被茅台的价格尺度主导。这其实是个坑。
1.2 相关系数:标准化后的相关性
为了解决量纲问题,我们引入了相关系数。它的公式是:
ρ(X, Y) = Cov(X, Y) / (σx * σy)
这个值被压缩在[-1, 1]之间。1代表完全正相关,-1代表完全负相关,0代表不相关。
我个人习惯用相关系数来做初步筛选。比如我要构建一个稳健组合,会先看各资产之间的相关系数矩阵,把那些相关系数超过0.7的资产挑出来,考虑是否要替换掉其中一个。
| 相关系数范围 | 相关性强度 | 配置建议 |
|---|---|---|
| 0.7 ~ 1.0 | 强正相关 | 避免同时重仓 |
| 0.3 ~ 0.7 | 中等正相关 | 可适度搭配 |
| -0.3 ~ 0.3 | 弱相关 | 适合分散配置 |
| -0.7 ~ -0.3 | 中等负相关 | 对冲效果明显 |
| -1.0 ~ -0.7 | 强负相关 | 优秀的对冲工具 |
1.3 实战中的坑:相关性会变
嗯,这里要注意。很多新手以为算出一个相关系数就能用一辈子。但现实是,相关性是时变的。
我做过一个测试:用滚动窗口计算沪深300和国债的相关系数。结果发现,在2015年股灾期间,它们的相关系数从-0.2直接跳到了0.6。为什么?因为市场恐慌时,所有资产都在被抛售,流动性危机让相关性趋近于1。
所以我的建议是:不要只看全样本的相关系数,要看滚动窗口的动态变化。至少用60个交易日的滚动窗口,观察相关性的稳定性。
1.4 用Python快速计算
理论讲完了,上点干货。这是我常用的计算代码:
import numpy as np
import pandas as pd
# 假设有两支资产的历史收益率数据
returns = pd.DataFrame({
'资产A': [0.02, -0.01, 0.03, 0.01, -0.02],
'资产B': [0.01, 0.02, -0.01, 0.03, 0.01]
})
# 计算协方差矩阵
cov_matrix = returns.cov()
print('协方差矩阵:')
print(cov_matrix)
# 计算相关系数矩阵
corr_matrix = returns.corr()
print('\n相关系数矩阵:')
print(corr_matrix)
# 滚动相关系数(60日窗口)
rolling_corr = returns['资产A'].rolling(60).corr(returns['资产B'])
print('\n滚动相关系数(最后5个值):')
print(rolling_corr.tail())
这段代码虽然简单,但我在实际项目中一直在用。特别是滚动相关系数那部分,能帮你及时发现相关性的结构性变化。
1.5 知识体系总览
为了让你更直观地理解本章的知识结构,我画了一张图:
这张图把本章的核心逻辑串起来了。从协方差和相关系数出发,最终落到实战应用上。你写代码时也可以按这个思路来:先算协方差,再看相关系数,最后做滚动分析。
- 协方差告诉你方向,相关系数告诉你强度
- 永远不要只看一个时间点的相关系数
- 滚动窗口分析是避坑的关键手段
好了,这一章就到这里。相关性分析是资产配置的起点,但绝不是终点。后面我们会深入探讨如何利用这些工具构建真正的投资组合。