相关系数热力图
cols=['沪深300','恒生指数','标普500','英国富时','法国CAC40','德国DAX','日经225','韩国KOSPI','澳大利亚标普200','印度孟买SENSEX','台湾加权']
index_data[cols].corr()

全球指数之间存在一定的相关性,同一地域的相关性非常明显,甚至高达0.98,如标准普尔和道琼斯指数。沪深300与全球其他市场指数的相关性均超过0.65,最高为0.77。
ax = plt.subplots(figsize=(12, 8))#画布大小
ax = sns.heatmap(index_data[cols].corr(),annot=True,cmap = "Reds");
#annot=True 表示显示系数
# 设置刻度字体大小
plt.xticks(fontsize=12);
plt.yticks(fontsize=12);

计算各指数之间的移动相关系数。
def cal_roll_cor(data=index_data,index1='沪深300', index2='标普500',period=120):
data=data.dropna()
cors=data[[index1,index2]].rolling(period).corr()
cors=cors.dropna().iloc[1::2,0]
cors=cors.reset_index()
cors=cors.set_index('日期')
cor=cors[index1]
#可视化结果
print(cor.describe())
cor.plot(figsize=(14,6),label=f'移动{period}日相关系数')
plt.title(f'{index1}与{index2}移动{period}日相关系数',size=15)
plt.axhline(cor.mean(), c='r',label=f'相关系数均值={cor.mean():.2f}')
plt.legend(loc=2)
plt.show()
return
cal_roll_cor()
count 1756.000000
mean 0.395825
std 0.504222
min -0.851314
25% 0.152758
50% 0.608515
75% 0.732023
max 0.950947
Name: 沪深300, dtype: float64

创业板指数与纳斯达克移动相关系数。
cal_roll_cor(data=index_data,index1='创业板指',index2='纳斯达克',period=120)
count 1756.000000
mean 0.429181
std 0.521487
min -0.896746
25% 0.290088
50% 0.649482
75% 0.778092
max 0.972854
Name: 创业板指, dtype: float64

