对我来说,np.corrcoef返回一个矩阵似乎很奇怪。为什么corrcoef会返回一个矩阵?
correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)
[[ 1. -0.99598935]
[-0.99598935 1. ]]
有谁知道为什么是这样的话,是否可以在传统意义上只返回一个值?
对我来说,np.corrcoef返回一个矩阵似乎很奇怪。为什么corrcoef会返回一个矩阵?
correlation1 = corrcoef(Strategy1Returns,Strategy2Returns)
[[ 1. -0.99598935]
[-0.99598935 1. ]]
有谁知道为什么是这样的话,是否可以在传统意义上只返回一个值?
corrcoef
返回的归一化协方差矩阵。
协方差矩阵是矩阵
Cov(X, X) Cov(X, Y)
Cov(Y, X) Cov(Y, Y)
归一化,这将产生矩阵:
Corr(X, X) Corr(X, Y)
Corr(Y, X) Corr(Y, Y)
correlation1[0, 0 ]
是Strategy1Returns
和自身之间的相关性,它必须是1。你只是想correlation1[ 0, 1 ]
。
相关矩阵是表达任意有限数量变量之间相关性的标准方法。 Ñ数据向量的相关矩阵是对称Ñ×Ñ矩阵具有单位对角线。只有在N = 2的情况下,这个矩阵才有一个自由参数。
它允许您计算> 2个数据集的相关系数,例如,
>>> from numpy import *
>>> a = array([1,2,3,4,6,7,8,9])
>>> b = array([2,4,6,8,10,12,13,15])
>>> c = array([-1,-2,-2,-3,-4,-6,-7,-8])
>>> corrcoef([a,b,c])
array([[ 1. , 0.99535001, -0.9805214 ],
[ 0.99535001, 1. , -0.97172394],
[-0.9805214 , -0.97172394, 1. ]])
在这里,我们可以得到的相关系数,B(0.995),A,C(-0.981)和B,C(-0.972)在一次。双数据集案例只是N数据集类的特例。可能最好保持相同的返回类型。由于“单值”可以简单地用
>>> corrcoef(a,b)[1,0]
0.99535001355530017
没有什么大的理由去创建特例。
非常好的例子,它清楚地说明了CORRCOEF的基本功能(除了回答最初的问题之外) – Hiro 2017-06-14 19:48:24
考虑使用matplotlib.cbook件
例如:
import matplotlib.cbook as cbook
segments = cbook.pieces(np.arange(20), 3)
for s in segments:
print s
numpy的的相关成分的功能与工作要关联,并返回一个相关值2维数组。
你能从下面选择最好的答案吗? – Yank 2015-05-23 12:58:29