相关系数是用来衡量两个变量间的线性关系,取值范围为-1~ 1。相关系数为正表示变量间正相关(一个增长,另一个也增长),为负则表示负相关(一个增加,则另一个减少),越接近于0则表示关系越弱。

两个观测值序列X与Y间的相关系数定义如下:

量化交易量在市场中的占比(Quantopian量化交易9)(1)

相关系数定义式

注:其中Cov表示协方差,std表示标准差

相关性 vs 协方差

相关性是协方差标准化后的形式,在部分场合下两者是可以互换的,但本质上还是不同的。

我们先来看看如何获取两个变量X,Y之间的协方差:

量化交易量在市场中的占比(Quantopian量化交易9)(2)

示例代码

可以看到这里通过'[0][1]‘来获取了最终的结果,这里就要引入协方差矩阵了,协方差矩阵包含了任意两元素的协方差,正对角线上表示一个元素与其自身的协方差(也就是其方差,COV(X,X)=var(X)),据此,相关系数的表达式又可有如下的表示:

相关系数定义式变换

相关系数就是协方差使用X与Y的标准差进行标准化的结果,对应于协方差矩阵,也就存在对应的相关系数矩阵。

示例

接下来我们通过构造数据来观察下相关系数矩阵:

第一步,我们构造一个存在线性关系的X与Y来看一看

量化交易量在市场中的占比(Quantopian量化交易9)(3)

协方差矩阵与相关系数矩阵

注:可以看到最终相关系数矩阵中元素全部为1

绘制出的图形中所有所有的店都在一条直线上

量化交易量在市场中的占比(Quantopian量化交易9)(4)

绘制图形

第二步,我们在X上加入人为的噪声数据,噪声数据我们通过np.random.normal()函数生成一个均值为0,标准差为0.1的正态分布序列,从散点图上可以看出,已经在线性的基础上发生了一些偏离

量化交易量在市场中的占比(Quantopian量化交易9)(5)

加入噪声数据后

此时,我们再计算一下相关系数矩阵:

量化交易量在市场中的占比(Quantopian量化交易9)(6)

引入噪声后相关系数矩阵

注:可以看到X与Y的相关系数已经从1下降为0.94

第三步,我们将噪声数据偏离程度再加大写,标准差由0.1调整为0.2,再来看看现在的散点图

量化交易量在市场中的占比(Quantopian量化交易9)(7)

加大噪声数据后散点图

可以看到线性关系变得更加不明显,再次来计算下相关系数矩阵

量化交易量在市场中的占比(Quantopian量化交易9)(8)

噪声加强后的相关系数矩阵

可以看到相关系数确实进一步降低了。

相关系数在金融中的应用

一旦我们从序列数据中找出了关联性,就可以利用其去预测未来的资产价格。通过苹果公司(AAPL)与半导体制造商泛林(LRCX)股票价格数据,可以得到其之间明显存在线性关系。

量化交易量在市场中的占比(Quantopian量化交易9)(9)

示例代码

绘制出得散点图也可看出明显的线性关系:

量化交易量在市场中的占比(Quantopian量化交易9)(10)

散点图

同时,在构建投资组合时,通常为了降低组合风险程度,保持组合收益的稳定性,需要引入非关联性资产。

相关性分析使用限制

相关性分析是金融分析中一个强有力的工具,但是其也有很多使用的限制

  1. 显著性

    很难严格地去断定相关性是否显著,尤其是变量不满足正态分布时。例如上文中苹果与泛林间相关系数很接近于1,可以认为在选定的时期内两者的股价线性关联很强,但是未来是否还会保持这种线性关系,不得而知。。我们如果引入标普500ETF的价格数据,可以发现苹果、泛林都与其有很强的相关性,所以只能说苹果与泛林间的线性关系略高于普通股票而已。

    量化交易量在市场中的占比(Quantopian量化交易9)(11)

    示例代码

  2. 非线性关系

    相关系数可以有效的检查两个变量间的线性关系强弱,但是对于非线性关系则不能很好的处理,例如一个变量会随另一个变量变化,但存在时间上的延迟,这块就需要专门的延时相关性分析去处理。

同时,相关性分析对于异常值还非常敏感,一旦出现异常值,会对最终结果造成很大的影响。

本篇就到这里,感谢阅读,欢迎订阅:)

,